| Index: samplecode/SampleGradients.cpp
|
| diff --git a/samplecode/SampleGradients.cpp b/samplecode/SampleGradients.cpp
|
| index 2d6f7d4bb1dfb7f5b163f7e22b0a517ab2b323da..5e9450e84ded5194b84f7f977ae8e5ad3b60a175 100644
|
| --- a/samplecode/SampleGradients.cpp
|
| +++ b/samplecode/SampleGradients.cpp
|
| @@ -10,10 +10,10 @@
|
| #include "SkCanvas.h"
|
| #include "SkGradientShader.h"
|
|
|
| -static SkShader* setgrad(const SkRect& r, SkColor c0, SkColor c1) {
|
| +static sk_sp<SkShader> setgrad(const SkRect& r, SkColor c0, SkColor c1) {
|
| SkColor colors[] = { c0, c1 };
|
| SkPoint pts[] = { { r.fLeft, r.fTop }, { r.fRight, r.fTop } };
|
| - return SkGradientShader::CreateLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode);
|
| + return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode);
|
| }
|
|
|
| static void test_alphagradients(SkCanvas* canvas) {
|
| @@ -23,17 +23,17 @@ static void test_alphagradients(SkCanvas* canvas) {
|
| SkPaint p, p2;
|
| p2.setStyle(SkPaint::kStroke_Style);
|
|
|
| - p.setShader(setgrad(r, 0xFF00FF00, 0x0000FF00))->unref();
|
| + p.setShader(setgrad(r, 0xFF00FF00, 0x0000FF00));
|
| canvas->drawRect(r, p);
|
| canvas->drawRect(r, p2);
|
|
|
| r.offset(0, r.height() + SkIntToScalar(4));
|
| - p.setShader(setgrad(r, 0xFF00FF00, 0x00000000))->unref();
|
| + p.setShader(setgrad(r, 0xFF00FF00, 0x00000000));
|
| canvas->drawRect(r, p);
|
| canvas->drawRect(r, p2);
|
|
|
| r.offset(0, r.height() + SkIntToScalar(4));
|
| - p.setShader(setgrad(r, 0xFF00FF00, 0x00FF0000))->unref();
|
| + p.setShader(setgrad(r, 0xFF00FF00, 0x00FF0000));
|
| canvas->drawRect(r, p);
|
| canvas->drawRect(r, p2);
|
| }
|
| @@ -63,49 +63,49 @@ static const GradData gGradData[] = {
|
| { 5, gColors, gPos2 }
|
| };
|
|
|
| -static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| - return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, data.fCount, tm);
|
| +static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| + return SkGradientShader::MakeLinear(pts, data.fColors, data.fPos, data.fCount, tm);
|
| }
|
|
|
| -static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| +static sk_sp<SkShader> MakeRadial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| SkPoint center;
|
| center.set(SkScalarAve(pts[0].fX, pts[1].fX),
|
| SkScalarAve(pts[0].fY, pts[1].fY));
|
| - return SkGradientShader::CreateRadial(center, center.fX, data.fColors,
|
| - data.fPos, data.fCount, tm);
|
| + return SkGradientShader::MakeRadial(center, center.fX, data.fColors,
|
| + data.fPos, data.fCount, tm);
|
| }
|
|
|
| -static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| +static sk_sp<SkShader> MakeSweep(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| SkPoint center;
|
| center.set(SkScalarAve(pts[0].fX, pts[1].fX),
|
| SkScalarAve(pts[0].fY, pts[1].fY));
|
| - return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount);
|
| + return SkGradientShader::MakeSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount);
|
| }
|
|
|
| -static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| +static sk_sp<SkShader> Make2Conical(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) {
|
| SkPoint center0, center1;
|
| center0.set(SkScalarAve(pts[0].fX, pts[1].fX),
|
| SkScalarAve(pts[0].fY, pts[1].fY));
|
| center1.set(SkScalarInterp(pts[0].fX, pts[1].fX, SkIntToScalar(3)/5),
|
| SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4));
|
| - return SkGradientShader::CreateTwoPointConical(
|
| + return SkGradientShader::MakeTwoPointConical(
|
| center1, (pts[1].fX - pts[0].fX) / 7,
|
| center0, (pts[1].fX - pts[0].fX) / 2,
|
| data.fColors, data.fPos, data.fCount, tm);
|
| }
|
|
|
| -static SkShader* Make2ConicalConcentric(const SkPoint pts[2], const GradData& data,
|
| +static sk_sp<SkShader> Make2ConicalConcentric(const SkPoint pts[2], const GradData& data,
|
| SkShader::TileMode tm) {
|
| SkPoint center;
|
| center.set(SkScalarAve(pts[0].fX, pts[1].fX),
|
| SkScalarAve(pts[0].fY, pts[1].fY));
|
| - return SkGradientShader::CreateTwoPointConical(
|
| + return SkGradientShader::MakeTwoPointConical(
|
| center, (pts[1].fX - pts[0].fX) / 7,
|
| center, (pts[1].fX - pts[0].fX) / 2,
|
| data.fColors, data.fPos, data.fCount, tm);
|
| }
|
|
|
| -typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm);
|
| +typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm);
|
|
|
| static const GradMaker gGradMakers[] = {
|
| MakeLinear, MakeRadial, MakeSweep, Make2Conical, Make2ConicalConcentric
|
| @@ -120,8 +120,7 @@ public:
|
| }
|
|
|
| protected:
|
| - // overrides from SkEventSink
|
| - virtual bool onQuery(SkEvent* evt) {
|
| + bool onQuery(SkEvent* evt) override {
|
| if (SampleCode::TitleQ(*evt)) {
|
| SampleCode::TitleR(evt, "Gradients");
|
| return true;
|
| @@ -129,7 +128,7 @@ protected:
|
| return this->INHERITED::onQuery(evt);
|
| }
|
|
|
| - virtual void onDrawContent(SkCanvas* canvas) {
|
| + void onDrawContent(SkCanvas* canvas) override {
|
| SkPoint pts[2] = {
|
| { 0, 0 },
|
| { SkIntToScalar(100), SkIntToScalar(100) }
|
| @@ -146,9 +145,7 @@ protected:
|
| for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) {
|
| canvas->save();
|
| for (size_t j = 0; j < SK_ARRAY_COUNT(gGradMakers); j++) {
|
| - SkShader* shader;
|
| - shader = gGradMakers[j](pts, gGradData[i], (SkShader::TileMode)tm);
|
| - paint.setShader(shader)->unref();
|
| + paint.setShader(gGradMakers[j](pts, gGradData[i], (SkShader::TileMode)tm));
|
| canvas->drawRect(r, paint);
|
| canvas->translate(0, SkIntToScalar(120));
|
| }
|
|
|