Reland of "switch patheffects over to sk_sp (patchset #5 id:80001 of https://codereview.chromium.org/1813553005/ )"
This reverts commit f28ad894272018fd2855e3f77ea1236ea0cce1c0.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1813123003
TBR=
Review URL: https://codereview.chromium.org/1813123003
diff --git a/gm/arcto.cpp b/gm/arcto.cpp
index 584fca3..fcbc3d5 100644
--- a/gm/arcto.cpp
+++ b/gm/arcto.cpp
@@ -223,6 +223,6 @@
SkScalar length = meas.getLength();
SkScalar intervals[] = {0, length };
int intervalCount = (int) SK_ARRAY_COUNT(intervals);
- p.setPathEffect(SkDashPathEffect::Create(intervals, intervalCount, 0))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, 0));
canvas->drawPath(path, p);
}
diff --git a/gm/bug530095.cpp b/gm/bug530095.cpp
index 76f6bc8..fa88c01 100644
--- a/gm/bug530095.cpp
+++ b/gm/bug530095.cpp
@@ -20,13 +20,13 @@
paint.setStrokeWidth(26);
SkScalar intervals[] = {700, 700 };
int intervalCount = (int) SK_ARRAY_COUNT(intervals);
- paint.setPathEffect(SkDashPathEffect::Create(intervals, intervalCount, -40))->unref();
+ paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, -40));
canvas->drawPath(path1, paint);
paint.setStrokeWidth(0.26f);
SkScalar smIntervals[] = {7, 7 };
int smIntervalCount = (int) SK_ARRAY_COUNT(smIntervals);
- paint.setPathEffect(SkDashPathEffect::Create(smIntervals, smIntervalCount, -0.40f))->unref();
+ paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, -0.40f));
canvas->save();
canvas->scale(100, 100);
canvas->translate(4, 0);
@@ -34,14 +34,14 @@
canvas->restore();
paint.setStrokeWidth(26);
- paint.setPathEffect(SkDashPathEffect::Create(intervals, intervalCount, 0))->unref();
+ paint.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, 0));
canvas->save();
canvas->translate(0, 400);
canvas->drawPath(path1, paint);
canvas->restore();
paint.setStrokeWidth(0.26f);
- paint.setPathEffect(SkDashPathEffect::Create(smIntervals, smIntervalCount, 0))->unref();
+ paint.setPathEffect(SkDashPathEffect::Make(smIntervals, smIntervalCount, 0));
canvas->scale(100, 100);
canvas->translate(4, 4);
canvas->drawPath(path2, paint);
@@ -54,8 +54,7 @@
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeCap(SkPaint::kRound_Cap);
p.setStrokeWidth(10);
- SkScalar intervals[] = { 100, 100 };
- SkPathEffect* dash = SkDashPathEffect::Create(intervals, SK_ARRAY_COUNT(intervals), 100);
- p.setPathEffect(dash)->unref();
+ const SkScalar intervals[] = { 100, 100 };
+ p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 100));
canvas->drawLine(20, 20, 120, 20, p);
}
diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp
index cddd913..a02c7d0 100644
--- a/gm/dashcircle.cpp
+++ b/gm/dashcircle.cpp
@@ -68,7 +68,7 @@
for (int index = 0; index < dashExample.length; ++index) {
intervals[index] = dashExample.pattern[index] * dashLength;
}
- p.setPathEffect(SkDashPathEffect::Create(intervals, intervalCount, 0))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, intervalCount, 0));
canvas->drawPath(circle, p);
canvas->translate(0, radius * 2 + 50);
}
diff --git a/gm/dashcubics.cpp b/gm/dashcubics.cpp
index 1773303..7736f2b 100644
--- a/gm/dashcubics.cpp
+++ b/gm/dashcubics.cpp
@@ -14,26 +14,24 @@
/*
* Inspired by http://code.google.com/p/chromium/issues/detail?id=112145
*/
-static void flower(SkCanvas* canvas, const SkPath& path,
- SkScalar intervals[2], SkPaint::Join join) {
- SkPathEffect* pe = SkDashPathEffect::Create(intervals, 2, 0);
+static void flower(SkCanvas* canvas, const SkPath& path, SkScalar intervals[2],
+ SkPaint::Join join) {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStyle(SkPaint::kStroke_Style);
+ paint.setStrokeJoin(join);
+ paint.setStrokeWidth(42);
+ canvas->drawPath(path, paint);
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setStyle(SkPaint::kStroke_Style);
- paint.setStrokeJoin(join);
- paint.setStrokeWidth(42);
- canvas->drawPath(path, paint);
+ paint.setColor(SK_ColorRED);
+ paint.setStrokeWidth(21);
+ paint.setPathEffect(SkDashPathEffect::Make(intervals, 2, 0));
+ canvas->drawPath(path, paint);
- paint.setColor(SK_ColorRED);
- paint.setStrokeWidth(21);
- paint.setPathEffect(pe)->unref();
- canvas->drawPath(path, paint);
-
- paint.setColor(SK_ColorGREEN);
- paint.setPathEffect(nullptr);
- paint.setStrokeWidth(0);
- canvas->drawPath(path, paint);
+ paint.setColor(SK_ColorGREEN);
+ paint.setPathEffect(nullptr);
+ paint.setStrokeWidth(0);
+ canvas->drawPath(path, paint);
}
DEF_SIMPLE_GM(dashcubics, canvas, 860, 700) {
diff --git a/gm/dashing.cpp b/gm/dashing.cpp
index c728d15..6cb1dea 100644
--- a/gm/dashing.cpp
+++ b/gm/dashing.cpp
@@ -21,8 +21,7 @@
SkIntToScalar(off),
};
- SkAutoTUnref<SkPathEffect> effect(SkDashPathEffect::Create(intervals, 2, phase));
- p.setPathEffect(effect);
+ p.setPathEffect(SkDashPathEffect::Make(intervals, 2, phase));
canvas->drawLine(startX, startY, finalX, finalY, p);
}
@@ -175,7 +174,7 @@
vals[i] = SkIntToScalar(*intervals++);
}
SkScalar phase = vals[0] / 2;
- paint.setPathEffect(SkDashPathEffect::Create(vals, count, phase))->unref();
+ paint.setPathEffect(SkDashPathEffect::Make(vals, count, phase));
for (size_t x = 0; x < SK_ARRAY_COUNT(gProc); ++x) {
SkPath path;
@@ -223,7 +222,7 @@
SkScalar intervals[2] = { dashLength, dashLength };
- p.setPathEffect(SkDashPathEffect::Create(intervals, 2, phase))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, 2, phase));
SkPoint pts[2];
@@ -499,7 +498,7 @@
p.setStyle(SkPaint::kStroke_Style);
p.setStrokeWidth(1);
const SkScalar intervals[] = { 1, 1 };
- p.setPathEffect(SkDashPathEffect::Create(intervals, SK_ARRAY_COUNT(intervals), 0))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
canvas->drawPath(lines, p);
}
@@ -510,7 +509,7 @@
p.setStrokeWidth(80);
const SkScalar intervals[] = { 2, 2 };
- p.setPathEffect(SkDashPathEffect::Create(intervals, SK_ARRAY_COUNT(intervals), 0))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
canvas->drawRect(SkRect::MakeXYWH(-10000, 100, 20000, 20), p);
}
@@ -540,7 +539,7 @@
p.setARGB(0xff, 0xbb, 0x00, 0x00);
sk_tool_utils::set_portable_typeface(&p);
const SkScalar intervals[] = { 12, 12 };
- p.setPathEffect(SkDashPathEffect::Create(intervals, SK_ARRAY_COUNT(intervals), 0))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), 0));
canvas->drawText("Sausages", 8, 10, 90, p);
canvas->drawLine(8, 120, 456, 120, p);
}
diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp
index de3644c..dbda7c3 100644
--- a/gm/pathcontourstart.cpp
+++ b/gm/pathcontourstart.cpp
@@ -26,14 +26,11 @@
intervals.push_back(len);
}
- SkAutoTUnref<SkPathEffect> effect(
- SkDashPathEffect::Create(intervals.begin(), intervals.count(), 0));
-
fDashPaint.setAntiAlias(true);
fDashPaint.setStyle(SkPaint::kStroke_Style);
fDashPaint.setStrokeWidth(6);
fDashPaint.setColor(0xff008000);
- fDashPaint.setPathEffect(effect);
+ fDashPaint.setPathEffect(SkDashPathEffect::Make(intervals.begin(), intervals.count(), 0));
fPointsPaint.setColor(0xff800000);
fPointsPaint.setStrokeWidth(3);
diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp
index 517d02e..9821b3a 100644
--- a/gm/patheffects.cpp
+++ b/gm/patheffects.cpp
@@ -17,15 +17,14 @@
static void compose_pe(SkPaint* paint) {
SkPathEffect* pe = paint->getPathEffect();
- SkPathEffect* corner = SkCornerPathEffect::Create(25);
- SkPathEffect* compose;
+ sk_sp<SkPathEffect> corner = SkCornerPathEffect::Make(25);
+ sk_sp<SkPathEffect> compose;
if (pe) {
- compose = SkComposePathEffect::Create(pe, corner);
- corner->unref();
+ compose = SkComposePathEffect::Make(sk_ref_sp(pe), corner);
} else {
compose = corner;
}
- paint->setPathEffect(compose)->unref();
+ paint->setPathEffect(compose);
}
static void hair_pe(SkPaint* paint) {
@@ -45,8 +44,7 @@
static void dash_pe(SkPaint* paint) {
SkScalar inter[] = { 20, 10, 10, 10 };
paint->setStrokeWidth(12);
- paint->setPathEffect(SkDashPathEffect::Create(inter, SK_ARRAY_COUNT(inter),
- 0))->unref();
+ paint->setPathEffect(SkDashPathEffect::Make(inter, SK_ARRAY_COUNT(inter), 0));
compose_pe(paint);
}
@@ -69,8 +67,8 @@
path.offset(SkIntToScalar(-6), 0);
scale(&path, 1.5f);
- paint->setPathEffect(SkPath1DPathEffect::Create(path, SkIntToScalar(21), 0,
- SkPath1DPathEffect::kRotate_Style))->unref();
+ paint->setPathEffect(SkPath1DPathEffect::Make(path, SkIntToScalar(21), 0,
+ SkPath1DPathEffect::kRotate_Style));
compose_pe(paint);
}
@@ -83,21 +81,21 @@
}
static void discrete_pe(SkPaint* paint) {
- paint->setPathEffect(SkDiscretePathEffect::Create(10, 4))->unref();
+ paint->setPathEffect(SkDiscretePathEffect::Make(10, 4));
}
-static SkPathEffect* MakeTileEffect() {
+static sk_sp<SkPathEffect> MakeTileEffect() {
SkMatrix m;
m.setScale(SkIntToScalar(12), SkIntToScalar(12));
SkPath path;
path.addCircle(0, 0, SkIntToScalar(5));
- return SkPath2DPathEffect::Create(m, path);
+ return SkPath2DPathEffect::Make(m, path);
}
static void tile_pe(SkPaint* paint) {
- paint->setPathEffect(MakeTileEffect())->unref();
+ paint->setPathEffect(MakeTileEffect());
}
static const PE_Proc gPE2[] = { fill_pe, discrete_pe, tile_pe };
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 261db9c..f64a876 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -128,7 +128,7 @@
canvas->drawPath(fMoveZfPath, strokePaint);
dashPaint = strokePaint;
const SkScalar intervals[] = { 0, 10 };
- dashPaint.setPathEffect(SkDashPathEffect::Create(intervals, 2, 0))->unref();
+ dashPaint.setPathEffect(SkDashPathEffect::Make(intervals, 2, 0));
SkPath fillPath;
dashPaint.getFillPath(fDashedfPath, &fillPath);
canvas->translate(0, 20);
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index d0a9882..b247d8a 100644
--- a/gm/stroketext.cpp
+++ b/gm/stroketext.cpp
@@ -55,7 +55,7 @@
canvas->translate(200, 0);
SkPaint p(paint);
- p.setPathEffect(SkDashPathEffect::Create(intervals, SK_ARRAY_COUNT(intervals), phase))->unref();
+ p.setPathEffect(SkDashPathEffect::Make(intervals, SK_ARRAY_COUNT(intervals), phase));
draw_text_stroked(canvas, p, 10);
}
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index 8d462c9..d544902 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -66,18 +66,18 @@
paint->setMaskFilter(mf)->unref();
}
-static SkPathEffect* make_tile_effect() {
+static sk_sp<SkPathEffect> make_tile_effect() {
SkMatrix m;
m.setScale(1.f, 1.f);
SkPath path;
path.addCircle(0, 0, SkIntToScalar(5));
- return SkPath2DPathEffect::Create(m, path);
+ return SkPath2DPathEffect::Make(m, path);
}
static void path_effect(SkPaint* paint) {
- paint->setPathEffect(make_tile_effect())->unref();
+ paint->setPathEffect(make_tile_effect());
}
static sk_sp<SkShader> make_shader(const SkRect& bounds) {
diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp
index 6ad3d23..aa3d375 100644
--- a/gm/texteffects.cpp
+++ b/gm/texteffects.cpp
@@ -77,7 +77,7 @@
static void r5(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) {
rastBuilder->addLayer(p);
- p.setPathEffect(SkDiscretePathEffect::Create(SK_Scalar1*4, SK_Scalar1*3))->unref();
+ p.setPathEffect(SkDiscretePathEffect::Make(SK_Scalar1*4, SK_Scalar1*3));
p.setXfermodeMode(SkXfermode::kSrcOut_Mode);
rastBuilder->addLayer(p);
}
@@ -95,17 +95,17 @@
#include "Sk2DPathEffect.h"
-static SkPathEffect* MakeDotEffect(SkScalar radius, const SkMatrix& matrix) {
+static sk_sp<SkPathEffect> MakeDotEffect(SkScalar radius, const SkMatrix& matrix) {
SkPath path;
path.addCircle(0, 0, radius);
- return SkPath2DPathEffect::Create(matrix, path);
+ return SkPath2DPathEffect::Make(matrix, path);
}
static void r7(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) {
SkMatrix lattice;
lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0);
lattice.postSkew(SK_Scalar1/3, 0, 0, 0);
- p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice))->unref();
+ p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice));
rastBuilder->addLayer(p);
}
@@ -115,7 +115,7 @@
SkMatrix lattice;
lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0);
lattice.postSkew(SK_Scalar1/3, 0, 0, 0);
- p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice))->unref();
+ p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice));
p.setXfermodeMode(SkXfermode::kClear_Mode);
rastBuilder->addLayer(p);
@@ -132,7 +132,7 @@
SkMatrix lattice;
lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0);
lattice.postRotate(SkIntToScalar(30), 0, 0);
- p.setPathEffect(SkLine2DPathEffect::Create(SK_Scalar1*2, lattice))->unref();
+ p.setPathEffect(SkLine2DPathEffect::Make(SK_Scalar1*2, lattice));
p.setXfermodeMode(SkXfermode::kClear_Mode);
rastBuilder->addLayer(p);