From 2077427227de9bf2627c819d82d2b951886796c8 Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Tue, 18 Mar 2014 10:28:27 +0000 Subject: [PATCH] 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 --- gm/imagefiltersgraph.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index 8885f0d..8390379 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 matrixCF(SkColorMatrixFilter::Create(matrix)); SkAutoTUnref matrixFilter(SkColorFilterImageFilter::Create(matrixCF)); - SimpleOffsetFilter offsetFilter(SkIntToScalar(10), SkIntToScalar(10), matrixFilter); + SkAutoTUnref offsetFilter( + SimpleOffsetFilter::Create(10.0f, 10.f, matrixFilter)); SkAutoTUnref arith(SkArithmeticMode::Create(0, SK_Scalar1, SK_Scalar1, 0)); SkAutoTUnref arithFilter( - SkXfermodeImageFilter::Create(arith, matrixFilter, &offsetFilter)); + SkXfermodeImageFilter::Create(arith, matrixFilter, offsetFilter)); SkPaint paint; paint.setImageFilter(arithFilter); -- 2.7.4