| Index: gm/imagefiltersclipped.cpp
|
| diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
|
| index b24ca5af727a6493b8c4472685712a64fa226424..f2434112fa0a752785ed3ffe1665f95e0ec113d0 100644
|
| --- a/gm/imagefiltersclipped.cpp
|
| +++ b/gm/imagefiltersclipped.cpp
|
| @@ -43,11 +43,11 @@ static sk_sp<SkImage> make_gradient_circle(int width, int height) {
|
| return surface->makeImageSnapshot();
|
| }
|
|
|
| -static void draw_clipped_filter(SkCanvas* canvas, SkImageFilter* filter, size_t i,
|
| +static void draw_clipped_filter(SkCanvas* canvas, sk_sp<SkImageFilter> filter, size_t i,
|
| const SkRect& primBounds, const SkRect& clipBounds) {
|
| SkPaint paint;
|
| paint.setColor(SK_ColorWHITE);
|
| - paint.setImageFilter(filter);
|
| + paint.setImageFilter(std::move(filter));
|
| paint.setAntiAlias(true);
|
| canvas->save();
|
| canvas->clipRect(clipBounds);
|
| @@ -93,23 +93,25 @@ protected:
|
| resizeMatrix.setScale(RESIZE_FACTOR_X, RESIZE_FACTOR_Y);
|
| SkPoint3 pointLocation = SkPoint3::Make(32, 32, SkIntToScalar(10));
|
|
|
| - SkImageFilter* filters[] = {
|
| - SkBlurImageFilter::Make(SkIntToScalar(12), SkIntToScalar(12), nullptr).release(),
|
| - SkDropShadowImageFilter::Make(SkIntToScalar(10), SkIntToScalar(10),
|
| - SkIntToScalar(3), SkIntToScalar(3), SK_ColorGREEN,
|
| - SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode,
|
| - nullptr).release(),
|
| - SkDisplacementMapEffect::Create(SkDisplacementMapEffect::kR_ChannelSelectorType,
|
| + sk_sp<SkImageFilter> filters[] = {
|
| + SkBlurImageFilter::Make(SkIntToScalar(12), SkIntToScalar(12), nullptr),
|
| + SkDropShadowImageFilter::Make(
|
| + SkIntToScalar(10), SkIntToScalar(10),
|
| + SkIntToScalar(3), SkIntToScalar(3), SK_ColorGREEN,
|
| + SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode,
|
| + nullptr),
|
| + sk_sp<SkImageFilter>(SkDisplacementMapEffect::Create(
|
| + SkDisplacementMapEffect::kR_ChannelSelectorType,
|
| SkDisplacementMapEffect::kR_ChannelSelectorType,
|
| SkIntToScalar(12),
|
| gradient.get(),
|
| - checkerboard.get()),
|
| - SkDilateImageFilter::Make(2, 2, checkerboard).release(),
|
| - SkErodeImageFilter::Make(2, 2, checkerboard).release(),
|
| - SkOffsetImageFilter::Make(SkIntToScalar(-16), SkIntToScalar(32), nullptr).release(),
|
| - SkImageFilter::MakeMatrixFilter(resizeMatrix, kNone_SkFilterQuality, nullptr).release(),
|
| - SkLightingImageFilter::CreatePointLitDiffuse(pointLocation, SK_ColorWHITE, SK_Scalar1,
|
| - SkIntToScalar(2), checkerboard.get()),
|
| + checkerboard.get())),
|
| + SkDilateImageFilter::Make(2, 2, checkerboard),
|
| + SkErodeImageFilter::Make(2, 2, checkerboard),
|
| + SkOffsetImageFilter::Make(SkIntToScalar(-16), SkIntToScalar(32), nullptr),
|
| + SkImageFilter::MakeMatrixFilter(resizeMatrix, kNone_SkFilterQuality, nullptr),
|
| + SkLightingImageFilter::MakePointLitDiffuse(pointLocation, SK_ColorWHITE, SK_Scalar1,
|
| + SkIntToScalar(2), checkerboard),
|
|
|
| };
|
|
|
| @@ -131,10 +133,6 @@ protected:
|
| }
|
| canvas->restore();
|
|
|
| - for (size_t i = 0; i < SK_ARRAY_COUNT(filters); ++i) {
|
| - SkSafeUnref(filters[i]);
|
| - }
|
| -
|
| SkPaint noisePaint;
|
| noisePaint.setShader(SkPerlinNoiseShader::MakeFractalNoise(0.1f, 0.05f, 1, 0));
|
|
|
| @@ -142,7 +140,7 @@ protected:
|
| canvas->translate(SK_ARRAY_COUNT(filters)*(r.width() + margin), 0);
|
| for (int xOffset = 0; xOffset < 80; xOffset += 16) {
|
| bounds.fLeft = SkIntToScalar(xOffset);
|
| - draw_clipped_filter(canvas, rectFilter.get(), 0, r, bounds);
|
| + draw_clipped_filter(canvas, rectFilter, 0, r, bounds);
|
| canvas->translate(0, r.height() + margin);
|
| }
|
| }
|
|
|