diff options
author | reed <reed@google.com> | 2016-03-14 11:42:58 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-14 11:42:58 -0700 |
commit | 15c3a0e55bd9134dace0ace2fffb855a0f09542f (patch) | |
tree | d791775c24c83ab694f5fc57194ad63e4e56c074 /bench/GradientBench.cpp | |
parent | 1437c1eea8f40f7a43bfe6e80a8d3f6cd61a3643 (diff) |
Finish conversion to sk_sp<SkShader>
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1803763002
TBR=
Review URL: https://codereview.chromium.org/1803763002
Diffstat (limited to 'bench/GradientBench.cpp')
-rw-r--r-- | bench/GradientBench.cpp | 88 |
1 files changed, 41 insertions, 47 deletions
diff --git a/bench/GradientBench.cpp b/bench/GradientBench.cpp index 73014f7bae..21ebdce7ab 100644 --- a/bench/GradientBench.cpp +++ b/bench/GradientBench.cpp @@ -47,89 +47,87 @@ static const GradData gGradData[] = { }; /// Ignores scale -static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { const uint32_t flags = force4f ? SkLinearGradient::kForce4fContext_PrivateFlag : 0; - return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, - data.fCount, tm, flags, nullptr); + return SkGradientShader::MakeLinear(pts, data.fColors, data.fPos, + data.fCount, tm, flags, nullptr); } -static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeRadial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); - return SkGradientShader::CreateRadial(center, center.fX * scale, - data.fColors, - data.fPos, data.fCount, tm); + return SkGradientShader::MakeRadial(center, center.fX * scale, data.fColors, + data.fPos, data.fCount, tm); } /// Ignores scale -static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeSweep(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { 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); } /// Ignores scale -static SkShader* MakeConical(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeConical(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { 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(center1, (pts[1].fX - pts[0].fX) / 7, - center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm); + 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); } /// Ignores scale -static SkShader* MakeConicalZeroRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeConicalZeroRad(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { 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(center1, 0.0, - center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm); + return SkGradientShader::MakeTwoPointConical(center1, 0.0, + center0, (pts[1].fX - pts[0].fX) / 2, + data.fColors, data.fPos, data.fCount, tm); } /// Ignores scale -static SkShader* MakeConicalOutside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeConicalOutside(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { SkPoint center0, center1; SkScalar radius0 = (pts[1].fX - pts[0].fX) / 10; SkScalar radius1 = (pts[1].fX - pts[0].fX) / 3; center0.set(pts[0].fX + radius0, pts[0].fY + radius0); center1.set(pts[1].fX - radius1, pts[1].fY - radius1); - return SkGradientShader::CreateTwoPointConical(center0, radius0, - center1, radius1, - data.fColors, data.fPos, - data.fCount, tm); + return SkGradientShader::MakeTwoPointConical(center0, radius0, + center1, radius1, + data.fColors, data.fPos, + data.fCount, tm); } /// Ignores scale -static SkShader* MakeConicalOutsideZeroRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static sk_sp<SkShader> MakeConicalOutsideZeroRad(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f) { SkPoint center0, center1; SkScalar radius0 = (pts[1].fX - pts[0].fX) / 10; SkScalar radius1 = (pts[1].fX - pts[0].fX) / 3; center0.set(pts[0].fX + radius0, pts[0].fY + radius0); center1.set(pts[1].fX - radius1, pts[1].fY - radius1); - return SkGradientShader::CreateTwoPointConical(center0, 0.0, - center1, radius1, - data.fColors, data.fPos, - data.fCount, tm); + return SkGradientShader::MakeTwoPointConical(center0, 0.0, + center1, radius1, + data.fColors, data.fPos, + data.fCount, tm); } -typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f); +typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f); static const struct { GradMaker fMaker; @@ -213,9 +211,8 @@ public: fName.append("_4f"); } - SkAutoTUnref<SkShader> shader(MakeShader(gradType, data, tm, scale, force4f)); this->setupPaint(&fPaint); - fPaint.setShader(shader); + fPaint.setShader(MakeShader(gradType, data, tm, scale, force4f)); } GradientBench(GradType gradType, GradData data, bool dither, bool force4f = false) @@ -229,10 +226,8 @@ public: fName.appendf("_dither"); } - SkAutoTUnref<SkShader> shader( - MakeShader(gradType, data, SkShader::kClamp_TileMode, 1.0f, force4f)); this->setupPaint(&fPaint); - fPaint.setShader(shader); + fPaint.setShader(MakeShader(gradType, data, SkShader::kClamp_TileMode, 1.0f, force4f)); fPaint.setDither(dither); } @@ -263,8 +258,8 @@ protected: private: typedef Benchmark INHERITED; - SkShader* MakeShader(GradType gradType, GradData data, - SkShader::TileMode tm, float scale, bool force4f) { + sk_sp<SkShader> MakeShader(GradType gradType, GradData data, + SkShader::TileMode tm, float scale, bool force4f) { const SkPoint pts[2] = { { 0, 0 }, { SkIntToScalar(kSize), SkIntToScalar(kSize) } @@ -383,10 +378,9 @@ protected: SK_ColorBLACK, SkColorSetARGB(alpha, gray, gray, gray), SK_ColorWHITE }; - SkShader* s = SkGradientShader::CreateLinear(pts, colors, nullptr, + paint.setShader(SkGradientShader::MakeLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors), - SkShader::kClamp_TileMode); - paint.setShader(s)->unref(); + SkShader::kClamp_TileMode)); canvas->drawRect(r, paint); } } |