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
diff --git a/bench/RectoriBench.cpp b/bench/RectoriBench.cpp
index ee79ca9..87f5fee 100644
--- a/bench/RectoriBench.cpp
+++ b/bench/RectoriBench.cpp
@@ -71,7 +71,7 @@
};
SkLayerDrawLooper* createLooper(SkScalar xOff, SkScalar sigma) {
- SkLayerDrawLooper* looper = new SkLayerDrawLooper;
+ SkLayerDrawLooper::Builder looperBuilder;
//-----------------------------------------------
SkLayerDrawLooper::LayerInfo info;
@@ -83,7 +83,7 @@
info.fOffset.set(xOff, 0);
info.fPostTranslate = false;
- SkPaint* paint = looper->addLayer(info);
+ SkPaint* paint = looperBuilder.addLayer(info);
SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
sigma,
@@ -94,8 +94,8 @@
info.fPaintBits = 0;
info.fOffset.set(0, 0);
- paint = looper->addLayer(info);
- return looper;
+ paint = looperBuilder.addLayer(info);
+ return looperBuilder.detachLooper();
}
typedef SkBenchmark INHERITED;