From 1a9b9640843a64af8d9d90337ec3b3fea663196a Mon Sep 17 00:00:00 2001 From: reed Date: Sun, 13 Mar 2016 14:13:58 -0700 Subject: Reland of "more shader-->sp conversions (patchset #5 id:80001 of https://codereview.chromium.org/1789633002/ )" This reverts commit 9283d20afc27571f7a871d1bd1100dd5df584941. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1793303002 Review URL: https://codereview.chromium.org/1793303002 --- gm/modecolorfilters.cpp | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) (limited to 'gm/modecolorfilters.cpp') diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp index b5ede710f1..de6a18a41c 100644 --- a/gm/modecolorfilters.cpp +++ b/gm/modecolorfilters.cpp @@ -6,7 +6,6 @@ */ #include "gm.h" -#include "SkBitmapProcShader.h" #include "SkColorFilter.h" #include "SkGradientShader.h" @@ -16,27 +15,27 @@ namespace skiagm { // Using gradients because GPU doesn't currently have an implementation of SkColorShader (duh!) -static SkShader* make_color_shader(SkColor color) { +static sk_sp make_color_shader(SkColor color) { static const SkPoint kPts[] = {{0, 0}, {1, 1}}; SkColor colors[] = {color, color}; - return SkGradientShader::CreateLinear(kPts, colors, nullptr, 2, SkShader::kClamp_TileMode); + return SkGradientShader::MakeLinear(kPts, colors, nullptr, 2, SkShader::kClamp_TileMode); } -static SkShader* make_solid_shader() { +static sk_sp make_solid_shader() { return make_color_shader(SkColorSetARGB(0xFF, 0x42, 0x82, 0x21)); } -static SkShader* make_transparent_shader() { +static sk_sp make_transparent_shader() { return make_color_shader(SkColorSetARGB(0x80, 0x10, 0x70, 0x20)); } -static SkShader* make_trans_black_shader() { +static sk_sp make_trans_black_shader() { return make_color_shader(0x0); } // draws a background behind each test rect to see transparency -static SkShader* make_bg_shader(int checkSize) { +static sk_sp make_bg_shader(int checkSize) { SkBitmap bmp; bmp.allocN32Pixels(2 * checkSize, 2 * checkSize); SkCanvas canvas(bmp); @@ -49,7 +48,7 @@ static SkShader* make_bg_shader(int checkSize) { SkIntToScalar(checkSize), SkIntToScalar(checkSize)); canvas.drawRect(rect1, paint); canvas.drawRect(rect0, paint); - return new SkBitmapProcShader(bmp, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); + return SkShader::MakeBitmapShader(bmp, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); } class ModeColorFilterGM : public GM { @@ -59,15 +58,15 @@ public: } protected: - virtual SkString onShortName() { + SkString onShortName() override { return SkString("modecolorfilters"); } - virtual SkISize onISize() { + SkISize onISize() override { return SkISize::Make(WIDTH, HEIGHT); } - virtual void onDraw(SkCanvas* canvas) { + void onDraw(SkCanvas* canvas) override { // size of rect for each test case static const int kRectWidth = 20; static const int kRectHeight = 20; @@ -75,13 +74,13 @@ protected: static const int kCheckSize = 10; if (!fBmpShader) { - fBmpShader.reset(make_bg_shader(kCheckSize)); + fBmpShader = make_bg_shader(kCheckSize); } SkPaint bgPaint; bgPaint.setShader(fBmpShader); bgPaint.setXfermodeMode(SkXfermode::kSrc_Mode); - SkShader* shaders[] = { + sk_sp shaders[] = { nullptr, // use a paint color instead of a shader make_solid_shader(), make_transparent_shader(), @@ -146,14 +145,10 @@ protected: } } } - - for (size_t i = 0; i < SK_ARRAY_COUNT(shaders); ++i) { - SkSafeUnref(shaders[i]); - } } private: - SkAutoTUnref fBmpShader; + sk_sp fBmpShader; typedef GM INHERITED; }; -- cgit v1.2.3