| Index: gm/imagefiltersbase.cpp
|
| diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
|
| index e2e92356e09f49e0777032e82a3c3d115ebc0d4b..ebbd8956a553c4cc7a8e8711767741f4ae7722c8 100644
|
| --- a/gm/imagefiltersbase.cpp
|
| +++ b/gm/imagefiltersbase.cpp
|
| @@ -106,9 +106,9 @@ void IdentityImageFilter::toString(SkString* str) const {
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -static void draw_paint(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_paint(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| - paint.setImageFilter(imf);
|
| + paint.setImageFilter(std::move(imf));
|
| paint.setColor(SK_ColorGREEN);
|
| canvas->save();
|
| canvas->clipRect(r);
|
| @@ -116,7 +116,7 @@ static void draw_paint(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| canvas->restore();
|
| }
|
|
|
| -static void draw_line(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_line(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| paint.setColor(SK_ColorBLUE);
|
| paint.setImageFilter(imf);
|
| @@ -124,7 +124,7 @@ static void draw_line(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| canvas->drawLine(r.fLeft, r.fTop, r.fRight, r.fBottom, paint);
|
| }
|
|
|
| -static void draw_rect(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_rect(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| paint.setColor(SK_ColorYELLOW);
|
| paint.setImageFilter(imf);
|
| @@ -133,7 +133,7 @@ static void draw_rect(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| canvas->drawRect(rr, paint);
|
| }
|
|
|
| -static void draw_path(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_path(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| paint.setColor(SK_ColorMAGENTA);
|
| paint.setImageFilter(imf);
|
| @@ -141,7 +141,7 @@ static void draw_path(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| canvas->drawCircle(r.centerX(), r.centerY(), r.width()*2/5, paint);
|
| }
|
|
|
| -static void draw_text(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_text(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| paint.setImageFilter(imf);
|
| paint.setColor(SK_ColorCYAN);
|
| @@ -152,9 +152,9 @@ static void draw_text(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| canvas->drawText("Text", 4, r.centerX(), r.centerY(), paint);
|
| }
|
|
|
| -static void draw_bitmap(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {
|
| +static void draw_bitmap(SkCanvas* canvas, const SkRect& r, sk_sp<SkImageFilter> imf) {
|
| SkPaint paint;
|
| - paint.setImageFilter(imf);
|
| + paint.setImageFilter(std::move(imf));
|
|
|
| SkIRect bounds;
|
| r.roundOut(&bounds);
|
| @@ -189,21 +189,22 @@ protected:
|
| }
|
|
|
| void onDraw(SkCanvas* canvas) override {
|
| - void (*drawProc[])(SkCanvas*, const SkRect&, SkImageFilter*) = {
|
| + void (*drawProc[])(SkCanvas*, const SkRect&, sk_sp<SkImageFilter>) = {
|
| draw_paint,
|
| draw_line, draw_rect, draw_path, draw_text,
|
| draw_bitmap,
|
| };
|
|
|
| auto cf = SkColorFilter::MakeModeFilter(SK_ColorRED, SkXfermode::kSrcIn_Mode);
|
| - SkImageFilter* filters[] = {
|
| + sk_sp<SkImageFilter> filters[] = {
|
| nullptr,
|
| - IdentityImageFilter::Make(nullptr).release(),
|
| - FailImageFilter::Make().release(),
|
| - SkColorFilterImageFilter::Create(cf.get()),
|
| - SkBlurImageFilter::Make(12.0f, 0.0f, nullptr).release(),
|
| - SkDropShadowImageFilter::Create(10.0f, 5.0f, 3.0f, 3.0f, SK_ColorBLUE,
|
| - SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode),
|
| + IdentityImageFilter::Make(nullptr),
|
| + FailImageFilter::Make(),
|
| + SkColorFilterImageFilter::Make(std::move(cf), nullptr),
|
| + SkBlurImageFilter::Make(12.0f, 0.0f, nullptr),
|
| + sk_sp<SkImageFilter>(SkDropShadowImageFilter::Create(
|
| + 10.0f, 5.0f, 3.0f, 3.0f, SK_ColorBLUE,
|
| + SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode)),
|
| };
|
|
|
| SkRect r = SkRect::MakeWH(SkIntToScalar(64), SkIntToScalar(64));
|
| @@ -223,10 +224,6 @@ protected:
|
| canvas->restore();
|
| canvas->translate(DX, 0);
|
| }
|
| -
|
| - for(size_t j = 0; j < SK_ARRAY_COUNT(filters); ++j) {
|
| - SkSafeUnref(filters[j]);
|
| - }
|
| }
|
|
|
| private:
|
|
|