diff options
author | reed <reed@google.com> | 2016-03-09 09:50:50 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-09 09:50:50 -0800 |
commit | 2ad1aa67c6894696cdd65ec56057f81031d1c24a (patch) | |
tree | 867b2bf372ee13336e3f0525a72d017025a97455 /gm/gammatext.cpp | |
parent | 7f229ed827d1dc5897acfa87d84b642ce34b678f (diff) |
partial switch over to sp usage of shaders
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1776973003
Review URL: https://codereview.chromium.org/1776973003
Diffstat (limited to 'gm/gammatext.cpp')
-rw-r--r-- | gm/gammatext.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp index 63acb40c13..e978b6bc05 100644 --- a/gm/gammatext.cpp +++ b/gm/gammatext.cpp @@ -11,12 +11,11 @@ #include "SkGradientShader.h" #include "SkTypeface.h" -static SkShader* make_heatGradient(const SkPoint pts[2]) { +static sk_sp<SkShader> make_heatGradient(const SkPoint pts[2]) { const SkColor bw[] = { SK_ColorBLACK, SK_ColorWHITE }; - return SkGradientShader::CreateLinear(pts, bw, nullptr, - SK_ARRAY_COUNT(bw), - SkShader::kClamp_TileMode); + return SkGradientShader::MakeLinear(pts, bw, nullptr, SK_ARRAY_COUNT(bw), + SkShader::kClamp_TileMode); } static bool setFont(SkPaint* paint, const char name[]) { @@ -50,12 +49,11 @@ protected: } static void drawGrad(SkCanvas* canvas) { - SkPoint pts[] = { { 0, 0 }, { 0, SkIntToScalar(HEIGHT) } }; - SkShader* s = make_heatGradient(pts); + const SkPoint pts[] = { { 0, 0 }, { 0, SkIntToScalar(HEIGHT) } }; canvas->clear(SK_ColorRED); SkPaint paint; - paint.setShader(s)->unref(); + paint.setShader(make_heatGradient(pts)); SkRect r = { 0, 0, SkIntToScalar(1024), SkIntToScalar(HEIGHT) }; canvas->drawRect(r, paint); } @@ -101,12 +99,12 @@ DEF_GM( return new GammaTextGM; ) ////////////////////////////////////////////////////////////////////////////// -static SkShader* make_gradient(SkColor c) { +static sk_sp<SkShader> make_gradient(SkColor c) { const SkPoint pts[] = { { 0, 0 }, { 240, 0 } }; SkColor colors[2]; colors[0] = c; colors[1] = SkColorSetA(c, 0); - return SkGradientShader::CreateLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode); + return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode); } static void set_face(SkPaint* paint) { @@ -114,37 +112,30 @@ static void set_face(SkPaint* paint) { SkSafeUnref(paint->setTypeface(face)); } -static void draw_pair(SkCanvas* canvas, SkPaint* paint, SkShader* shader) { +static void draw_pair(SkCanvas* canvas, SkPaint* paint, const sk_sp<SkShader>& shader) { const char text[] = "Now is the time for all good"; const size_t len = strlen(text); paint->setShader(nullptr); canvas->drawText(text, len, 10, 20, *paint); - paint->setShader(SkShader::CreateColorShader(paint->getColor()))->unref(); + paint->setShader(SkShader::MakeColorShader(paint->getColor())); canvas->drawText(text, len, 10, 40, *paint); paint->setShader(shader); canvas->drawText(text, len, 10, 60, *paint); } class GammaShaderTextGM : public skiagm::GM { - SkShader* fShaders[3]; + sk_sp<SkShader> fShaders[3]; SkColor fColors[3]; public: GammaShaderTextGM() { const SkColor colors[] = { SK_ColorBLACK, SK_ColorRED, SK_ColorBLUE }; for (size_t i = 0; i < SK_ARRAY_COUNT(fShaders); ++i) { - fShaders[i] = nullptr; fColors[i] = colors[i]; } } - ~GammaShaderTextGM() override { - for (size_t i = 0; i < SK_ARRAY_COUNT(fShaders); ++i) { - SkSafeUnref(fShaders[i]); - } - } - protected: SkString onShortName() override { return SkString("gammagradienttext"); |