From 73cb15351f33459e0c861a96135c634dec77ef9d Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Tue, 15 Apr 2014 15:48:36 +0000 Subject: Make sure SkDrawLooper objects can only be allocated on the heap. Make constructors of SkLayerDrawLooper and SkBlurDrawLooper non-public. Remove addLayer* methods from SkLayerDrawLooper. SkLayerDrawLooper::Builder is used to create new objects. Provide factory method for creating SkBlurDrawLooper. BUG=2141 R=scroggo@google.com, reed@google.com, djsollen@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/232913003 git-svn-id: http://skia.googlecode.com/svn/trunk@14200 2bbb7eff-a529-9590-31e7-b0007b416f81 --- gm/megalooper.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gm/megalooper.cpp') diff --git a/gm/megalooper.cpp b/gm/megalooper.cpp index 12ccf2db5f..e8255502a1 100644 --- a/gm/megalooper.cpp +++ b/gm/megalooper.cpp @@ -163,7 +163,7 @@ private: // Create a 1-tier drawlooper SkLayerDrawLooper* create1Looper(SkScalar xOff, SkScalar yOff, SkColor color) { - SkLayerDrawLooper* looper = new SkLayerDrawLooper; + SkLayerDrawLooper::Builder looperBuilder; SkLayerDrawLooper::LayerInfo info; info.fPaintBits = SkLayerDrawLooper::kColorFilter_Bit | @@ -172,14 +172,14 @@ private: info.fOffset.set(xOff, yOff); info.fPostTranslate = false; - SkPaint* paint = looper->addLayer(info); + SkPaint* paint = looperBuilder.addLayer(info); paint->setMaskFilter(this->createBlur())->unref(); SkColorFilter* cf = SkColorFilter::CreateModeFilter(color, SkXfermode::kSrcIn_Mode); paint->setColorFilter(cf)->unref(); - return looper; + return looperBuilder.detachLooper(); } void draw1x4(SkCanvas* canvas, SkScalar x, SkScalar y) { @@ -207,7 +207,7 @@ private: // Create a 4-tier draw looper SkLayerDrawLooper* create4Looper(SkScalar xOff, SkScalar yOff) { - SkLayerDrawLooper* looper = new SkLayerDrawLooper; + SkLayerDrawLooper::Builder looperBuilder; SkLayerDrawLooper::LayerInfo info; info.fPaintBits = SkLayerDrawLooper::kColorFilter_Bit | @@ -219,7 +219,7 @@ private: for (int i = 3; i >= 0; --i) { info.fOffset.set(xOff+gBlurOffsets[i].fX, yOff+gBlurOffsets[i].fY); - paint = looper->addLayer(info); + paint = looperBuilder.addLayer(info); paint->setMaskFilter(this->createBlur())->unref(); @@ -227,7 +227,7 @@ private: paint->setColorFilter(cf)->unref(); } - return looper; + return looperBuilder.detachLooper(); } typedef GM INHERITED; -- cgit v1.2.3