aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-18 10:28:27 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-18 10:28:27 +0000
commit2077427227de9bf2627c819d82d2b951886796c8 (patch)
tree8dffebe6486e9d9bd9fae8bf3e3b63d67eb16848 /gm
parenta1dfa0cf05b06674175916e0226ba57be7eeadf4 (diff)
Put SimpleOffsetFilter on heap.
Effects want to live on the heap! BUG=skia: R=senorblanco@chromium.org, dominikg@chromium.org, scroggo@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/203273002 git-svn-id: http://skia.googlecode.com/svn/trunk@13848 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm')
-rw-r--r--gm/imagefiltersgraph.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index 8885f0d231..83903792d4 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -26,8 +26,9 @@
// perform a draw and this one does.
class SimpleOffsetFilter : public SkImageFilter {
public:
- SimpleOffsetFilter(SkScalar dx, SkScalar dy, SkImageFilter* input)
- : SkImageFilter(input), fDX(dx), fDY(dy) {}
+ static SkImageFilter* Create(SkScalar dx, SkScalar dy, SkImageFilter* input) {
+ return SkNEW_ARGS(SimpleOffsetFilter, (dx, dy, input));
+ }
virtual bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx,
SkBitmap* dst, SkIPoint* offset) const SK_OVERRIDE {
@@ -70,6 +71,9 @@ protected:
}
private:
+ SimpleOffsetFilter(SkScalar dx, SkScalar dy, SkImageFilter* input)
+ : SkImageFilter(input), fDX(dx), fDY(dy) {}
+
SkScalar fDX, fDY;
};
@@ -157,11 +161,12 @@ protected:
0, 0, 0, 0.5f, 0 };
SkAutoTUnref<SkColorMatrixFilter> matrixCF(SkColorMatrixFilter::Create(matrix));
SkAutoTUnref<SkImageFilter> matrixFilter(SkColorFilterImageFilter::Create(matrixCF));
- SimpleOffsetFilter offsetFilter(SkIntToScalar(10), SkIntToScalar(10), matrixFilter);
+ SkAutoTUnref<SkImageFilter> offsetFilter(
+ SimpleOffsetFilter::Create(10.0f, 10.f, matrixFilter));
SkAutoTUnref<SkXfermode> arith(SkArithmeticMode::Create(0, SK_Scalar1, SK_Scalar1, 0));
SkAutoTUnref<SkXfermodeImageFilter> arithFilter(
- SkXfermodeImageFilter::Create(arith, matrixFilter, &offsetFilter));
+ SkXfermodeImageFilter::Create(arith, matrixFilter, offsetFilter));
SkPaint paint;
paint.setImageFilter(arithFilter);