aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/gammatext.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-03-09 09:50:50 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-09 09:50:50 -0800
commit2ad1aa67c6894696cdd65ec56057f81031d1c24a (patch)
tree867b2bf372ee13336e3f0525a72d017025a97455 /gm/gammatext.cpp
parent7f229ed827d1dc5897acfa87d84b642ce34b678f (diff)
partial switch over to sp usage of shaders
Diffstat (limited to 'gm/gammatext.cpp')
-rw-r--r--gm/gammatext.cpp29
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");