diff options
author | reed <reed@google.com> | 2016-03-14 11:53:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-14 11:53:07 -0700 |
commit | 106e10ddff5d473dc81dd1ce8ade615585ea609b (patch) | |
tree | 4cdbff97b6e2bf856dff2875ff2c8a818f9b27ea /bench | |
parent | 15c3a0e55bd9134dace0ace2fffb855a0f09542f (diff) |
Revert of Finish conversion to sk_sp<SkShader> (patchset #2 id:20001 of https://codereview.chromium.org/1803763002/ )
Reason for revert:
need to update cmake build example
Original issue's description:
> 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=
>
> Committed: https://skia.googlesource.com/skia/+/15c3a0e55bd9134dace0ace2fffb855a0f09542f
TBR=
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1798133003
Diffstat (limited to 'bench')
-rw-r--r-- | bench/AlternatingColorPatternBench.cpp | 21 | ||||
-rw-r--r-- | bench/ColorCubeBench.cpp | 8 | ||||
-rw-r--r-- | bench/GameBench.cpp | 6 | ||||
-rw-r--r-- | bench/GradientBench.cpp | 88 | ||||
-rw-r--r-- | bench/ImageFilterCollapse.cpp | 6 | ||||
-rw-r--r-- | bench/PatchBench.cpp | 9 | ||||
-rw-r--r-- | bench/PatchGridBench.cpp | 9 | ||||
-rw-r--r-- | bench/RectBench.cpp | 6 | ||||
-rw-r--r-- | bench/RepeatTileBench.cpp | 7 | ||||
-rw-r--r-- | bench/TileBench.cpp | 3 |
10 files changed, 92 insertions, 71 deletions
diff --git a/bench/AlternatingColorPatternBench.cpp b/bench/AlternatingColorPatternBench.cpp index 147dc3607b..b7285d6e3b 100644 --- a/bench/AlternatingColorPatternBench.cpp +++ b/bench/AlternatingColorPatternBench.cpp @@ -51,11 +51,11 @@ static void makebm(SkBitmap* bm, int w, int h) { SkPaint paint; - paint.setShader(SkGradientShader::MakeLinear(kPts0, kColors0, kPos, SK_ARRAY_COUNT(kColors0), - SkShader::kClamp_TileMode)); + paint.setShader(SkGradientShader::CreateLinear(kPts0, kColors0, kPos, + SK_ARRAY_COUNT(kColors0), SkShader::kClamp_TileMode))->unref(); canvas.drawPaint(paint); - paint.setShader(SkGradientShader::MakeLinear(kPts1, kColors1, kPos, SK_ARRAY_COUNT(kColors1), - SkShader::kClamp_TileMode)); + paint.setShader(SkGradientShader::CreateLinear(kPts1, kColors1, kPos, + SK_ARRAY_COUNT(kColors1), SkShader::kClamp_TileMode))->unref(); canvas.drawPaint(paint); } @@ -80,12 +80,12 @@ public: NY = 5, NUM_DRAWS = NX * NY, }; - sk_sp<SkShader> fBmShader; + SkShader* fBmShader; SkPath fPaths[NUM_DRAWS]; SkRect fRects[NUM_DRAWS]; SkColor fColors[NUM_DRAWS]; - sk_sp<SkShader> fShaders[NUM_DRAWS]; + SkShader* fShaders[NUM_DRAWS]; SkString fName; ColorPatternData fPattern1; @@ -94,7 +94,8 @@ public: SkBitmap fBmp; - AlternatingColorPatternBench(ColorPattern pattern1, ColorPattern pattern2, DrawType drawType) { + AlternatingColorPatternBench(ColorPattern pattern1, ColorPattern pattern2, DrawType drawType) + : fBmShader(nullptr) { fPattern1 = gColorPatterns[pattern1]; fPattern2 = gColorPatterns[pattern2]; fName.printf("colorPattern_%s_%s_%s", @@ -103,6 +104,10 @@ public: fDrawType = drawType; } + virtual ~AlternatingColorPatternBench() { + SkSafeUnref(fBmShader); + } + protected: const char* onGetName() override { return fName.c_str(); @@ -112,7 +117,7 @@ protected: int w = 40; int h = 40; makebm(&fBmp, w, h); - fBmShader = SkShader::MakeBitmapShader(fBmp, + fBmShader = SkShader::CreateBitmapShader(fBmp, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); int offset = 2; diff --git a/bench/ColorCubeBench.cpp b/bench/ColorCubeBench.cpp index 9f6bd001ff..6c5a16d6a2 100644 --- a/bench/ColorCubeBench.cpp +++ b/bench/ColorCubeBench.cpp @@ -48,13 +48,13 @@ protected: } private: - static sk_sp<SkShader> MakeLinear(const SkISize& size) { + static SkShader* MakeLinear(const SkISize& size) { const SkPoint pts[2] = { { 0, 0 }, { SkIntToScalar(size.width()), SkIntToScalar(size.height()) } }; static const SkColor colors[] = { SK_ColorYELLOW, SK_ColorBLUE }; - return SkGradientShader::MakeLinear( + return SkGradientShader::CreateLinear( pts, colors, nullptr, 2, SkShader::kRepeat_TileMode, 0, &SkMatrix::I()); } @@ -64,9 +64,11 @@ private: canvas.clear(0x00000000); SkPaint paint; paint.setAntiAlias(true); - paint.setShader(MakeLinear(fSize)); + SkShader* shader = MakeLinear(fSize); + paint.setShader(shader); SkRect r = { 0, 0, SkIntToScalar(fSize.width()), SkIntToScalar(fSize.height()) }; canvas.drawRect(r, paint); + shader->unref(); } void makeCubeData() { diff --git a/bench/GameBench.cpp b/bench/GameBench.cpp index 84da73eeca..823f5b07c9 100644 --- a/bench/GameBench.cpp +++ b/bench/GameBench.cpp @@ -139,9 +139,9 @@ protected: SkPaint p2; // for drawVertices path p2.setColor(0xFF000000); p2.setFilterQuality(kLow_SkFilterQuality); - p2.setShader(SkShader::MakeBitmapShader(fAtlas, - SkShader::kClamp_TileMode, - SkShader::kClamp_TileMode)); + p2.setShader(SkShader::CreateBitmapShader(fAtlas, + SkShader::kClamp_TileMode, + SkShader::kClamp_TileMode))->unref(); for (int i = 0; i < loops; ++i, ++fNumSaved) { if (0 == i % kNumBeforeClear) { diff --git a/bench/GradientBench.cpp b/bench/GradientBench.cpp index 21ebdce7ab..73014f7bae 100644 --- a/bench/GradientBench.cpp +++ b/bench/GradientBench.cpp @@ -47,87 +47,89 @@ static const GradData gGradData[] = { }; /// Ignores scale -static sk_sp<SkShader> MakeLinear(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeLinear(pts, data.fColors, data.fPos, - data.fCount, tm, flags, nullptr); + return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, + data.fCount, tm, flags, nullptr); } -static sk_sp<SkShader> MakeRadial(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeRadial(center, center.fX * scale, data.fColors, - data.fPos, data.fCount, tm); + return SkGradientShader::CreateRadial(center, center.fX * scale, + data.fColors, + data.fPos, data.fCount, tm); } /// Ignores scale -static sk_sp<SkShader> MakeSweep(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount); + return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, + data.fPos, data.fCount); } /// Ignores scale -static sk_sp<SkShader> MakeConical(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeTwoPointConical(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::CreateTwoPointConical(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 sk_sp<SkShader> MakeConicalZeroRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeTwoPointConical(center1, 0.0, - center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm); + return SkGradientShader::CreateTwoPointConical(center1, 0.0, + center0, (pts[1].fX - pts[0].fX) / 2, + data.fColors, data.fPos, data.fCount, tm); } /// Ignores scale -static sk_sp<SkShader> MakeConicalOutside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeTwoPointConical(center0, radius0, - center1, radius1, - data.fColors, data.fPos, - data.fCount, tm); + return SkGradientShader::CreateTwoPointConical(center0, radius0, + center1, radius1, + data.fColors, data.fPos, + data.fCount, tm); } /// Ignores scale -static sk_sp<SkShader> MakeConicalOutsideZeroRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f) { +static 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::MakeTwoPointConical(center0, 0.0, - center1, radius1, - data.fColors, data.fPos, - data.fCount, tm); + return SkGradientShader::CreateTwoPointConical(center0, 0.0, + center1, radius1, + data.fColors, data.fPos, + data.fCount, tm); } -typedef sk_sp<SkShader> (*GradMaker)(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, float scale, bool force4f); +typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, float scale, bool force4f); static const struct { GradMaker fMaker; @@ -211,8 +213,9 @@ public: fName.append("_4f"); } + SkAutoTUnref<SkShader> shader(MakeShader(gradType, data, tm, scale, force4f)); this->setupPaint(&fPaint); - fPaint.setShader(MakeShader(gradType, data, tm, scale, force4f)); + fPaint.setShader(shader); } GradientBench(GradType gradType, GradData data, bool dither, bool force4f = false) @@ -226,8 +229,10 @@ public: fName.appendf("_dither"); } + SkAutoTUnref<SkShader> shader( + MakeShader(gradType, data, SkShader::kClamp_TileMode, 1.0f, force4f)); this->setupPaint(&fPaint); - fPaint.setShader(MakeShader(gradType, data, SkShader::kClamp_TileMode, 1.0f, force4f)); + fPaint.setShader(shader); fPaint.setDither(dither); } @@ -258,8 +263,8 @@ protected: private: typedef Benchmark INHERITED; - sk_sp<SkShader> MakeShader(GradType gradType, GradData data, - SkShader::TileMode tm, float scale, bool force4f) { + SkShader* MakeShader(GradType gradType, GradData data, + SkShader::TileMode tm, float scale, bool force4f) { const SkPoint pts[2] = { { 0, 0 }, { SkIntToScalar(kSize), SkIntToScalar(kSize) } @@ -378,9 +383,10 @@ protected: SK_ColorBLACK, SkColorSetARGB(alpha, gray, gray, gray), SK_ColorWHITE }; - paint.setShader(SkGradientShader::MakeLinear(pts, colors, nullptr, + SkShader* s = SkGradientShader::CreateLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors), - SkShader::kClamp_TileMode)); + SkShader::kClamp_TileMode); + paint.setShader(s)->unref(); canvas->drawRect(r, paint); } } diff --git a/bench/ImageFilterCollapse.cpp b/bench/ImageFilterCollapse.cpp index bd3f80fefb..2a2fa3a7d4 100644 --- a/bench/ImageFilterCollapse.cpp +++ b/bench/ImageFilterCollapse.cpp @@ -66,8 +66,10 @@ private: SK_ColorBLACK, SK_ColorGREEN, SK_ColorCYAN, SK_ColorRED, 0, SK_ColorBLUE, SK_ColorWHITE }; - paint.setShader(SkGradientShader::MakeLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors), - SkShader::kClamp_TileMode)); + SkAutoTUnref<SkShader> shader(SkGradientShader::CreateLinear( + pts, colors, nullptr, SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode + )); + paint.setShader(shader); canvas.drawPaint(paint); } }; diff --git a/bench/PatchBench.cpp b/bench/PatchBench.cpp index 5d7451a0c4..6f51b4593a 100644 --- a/bench/PatchBench.cpp +++ b/bench/PatchBench.cpp @@ -69,15 +69,16 @@ public: } // override this method to change the shader - virtual sk_sp<SkShader> createShader() { + virtual SkShader* createShader() { const SkColor colors[] = { SK_ColorRED, SK_ColorCYAN, SK_ColorGREEN, SK_ColorWHITE, SK_ColorMAGENTA, SK_ColorBLUE, SK_ColorYELLOW, }; const SkPoint pts[] = { { 200.f / 4.f, 0.f }, { 3.f * 200.f / 4, 200.f } }; - return SkGradientShader::MakeLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors), - SkShader::kMirror_TileMode); + return SkGradientShader::CreateLinear(pts, colors, nullptr, + SK_ARRAY_COUNT(colors), + SkShader::kMirror_TileMode); } protected: @@ -114,7 +115,7 @@ protected: switch (fVertexMode) { case kTexCoords_VertexMode: case kBoth_VertexMode: - fPaint.setShader(this->createShader()); + fPaint.setShader(this->createShader())->unref(); break; default: fPaint.setShader(nullptr); diff --git a/bench/PatchGridBench.cpp b/bench/PatchGridBench.cpp index 83e2932edc..ef785320df 100644 --- a/bench/PatchGridBench.cpp +++ b/bench/PatchGridBench.cpp @@ -150,15 +150,16 @@ public: } // override this method to change the shader - sk_sp<SkShader> createShader() { + SkShader* createShader() { const SkColor colors[] = { SK_ColorRED, SK_ColorCYAN, SK_ColorGREEN, SK_ColorWHITE, SK_ColorMAGENTA, SK_ColorBLUE, SK_ColorYELLOW, }; const SkPoint pts[] = { { 200.f / 4.f, 0.f }, { 3.f * 200.f / 4, 200.f } }; - return SkGradientShader::MakeLinear(pts, colors, nullptr, SK_ARRAY_COUNT(colors), - SkShader::kMirror_TileMode); + return SkGradientShader::CreateLinear(pts, colors, nullptr, + SK_ARRAY_COUNT(colors), + SkShader::kMirror_TileMode); } protected: @@ -204,7 +205,7 @@ protected: switch (fVertexMode) { case kTexCoords_VertexMode: case kBoth_VertexMode: - fPaint.setShader(createShader()); + fPaint.setShader(createShader())->unref(); break; default: fPaint.setShader(nullptr); diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp index 5bd5640eea..a700b369e4 100644 --- a/bench/RectBench.cpp +++ b/bench/RectBench.cpp @@ -238,8 +238,10 @@ protected: srcBM.allocN32Pixels(10, 1); srcBM.eraseColor(0xFF00FF00); - paint.setShader(SkShader::MakeBitmapShader(srcBM, SkShader::kClamp_TileMode, - SkShader::kClamp_TileMode)); + SkShader* s; + s = SkShader::CreateBitmapShader(srcBM, SkShader::kClamp_TileMode, + SkShader::kClamp_TileMode); + paint.setShader(s)->unref(); } for (int loop = 0; loop < loops; loop++) { for (size_t i = 0; i < sizes; i++) { diff --git a/bench/RepeatTileBench.cpp b/bench/RepeatTileBench.cpp index 452c2c0079..39830bf90f 100644 --- a/bench/RepeatTileBench.cpp +++ b/bench/RepeatTileBench.cpp @@ -120,9 +120,10 @@ protected: fBitmap = tmp; } - fPaint.setShader(SkShader::MakeBitmapShader(fBitmap, - SkShader::kRepeat_TileMode, - SkShader::kRepeat_TileMode)); + SkShader* s = SkShader::CreateBitmapShader(fBitmap, + SkShader::kRepeat_TileMode, + SkShader::kRepeat_TileMode); + fPaint.setShader(s)->unref(); } diff --git a/bench/TileBench.cpp b/bench/TileBench.cpp index 47e79c78d4..6b91ada0c3 100644 --- a/bench/TileBench.cpp +++ b/bench/TileBench.cpp @@ -53,7 +53,8 @@ public: create_gradient(&bm); - fPaint.setShader(SkShader::MakeBitmapShader(bm, xTile, yTile)); + SkShader* s = SkShader::CreateBitmapShader(bm, xTile, yTile); + fPaint.setShader(s)->unref(); fName.printf("constXTile_"); |