| Index: src/gpu/effects/GrDashingEffect.cpp
|
| diff --git a/src/gpu/effects/GrDashingEffect.cpp b/src/gpu/effects/GrDashingEffect.cpp
|
| index 8a7cb5edc4b0ca03afa4aceea0cb6278be99b594..ae375409cb8c54620d713957c640203e497ca527 100644
|
| --- a/src/gpu/effects/GrDashingEffect.cpp
|
| +++ b/src/gpu/effects/GrDashingEffect.cpp
|
| @@ -232,11 +232,11 @@ static void setup_dashed_rect_pos(const SkRect& rect, int idx, const SkMatrix& m
|
| * Bounding geometry is rendered and the effect computes coverage based on the fragment's
|
| * position relative to the dashed line.
|
| */
|
| -static GrGeometryProcessor* create_dash_gp(GrColor,
|
| - AAMode aaMode,
|
| - DashCap cap,
|
| - const SkMatrix& localMatrix,
|
| - bool usesLocalCoords);
|
| +static sk_sp<GrGeometryProcessor> make_dash_gp(GrColor,
|
| + AAMode aaMode,
|
| + DashCap cap,
|
| + const SkMatrix& localMatrix,
|
| + bool usesLocalCoords);
|
|
|
| class DashBatch : public GrVertexBatch {
|
| public:
|
| @@ -331,10 +331,10 @@ private:
|
| bool isRoundCap = SkPaint::kRound_Cap == cap;
|
| DashCap capType = isRoundCap ? kRound_DashCap : kNonRound_DashCap;
|
|
|
| - SkAutoTUnref<const GrGeometryProcessor> gp;
|
| + sk_sp<GrGeometryProcessor> gp;
|
| if (this->fullDash()) {
|
| - gp.reset(create_dash_gp(this->color(), this->aaMode(), capType, this->viewMatrix(),
|
| - this->usesLocalCoords()));
|
| + gp = make_dash_gp(this->color(), this->aaMode(), capType, this->viewMatrix(),
|
| + this->usesLocalCoords());
|
| } else {
|
| // Set up the vertex data for the line and start/end dashes
|
| using namespace GrDefaultGeoProcFactory;
|
| @@ -343,7 +343,7 @@ private:
|
| Coverage::kSolid_Type);
|
| LocalCoords localCoords(this->usesLocalCoords() ? LocalCoords::kUsePosition_Type :
|
| LocalCoords::kUnused_Type);
|
| - gp.reset(CreateForDeviceSpace(color, coverage, localCoords, this->viewMatrix()));
|
| + gp = MakeForDeviceSpace(color, coverage, localCoords, this->viewMatrix());
|
| }
|
|
|
| if (!gp) {
|
| @@ -622,7 +622,7 @@ private:
|
| rectIndex++;
|
| }
|
| SkASSERT(0 == (curVIdx % 4) && (curVIdx / 4) == totalRectCount);
|
| - helper.recordDraw(target, gp);
|
| + helper.recordDraw(target, gp.get());
|
| }
|
|
|
| bool onCombineIfPossible(GrBatch* t, const GrCaps& caps) override {
|
| @@ -757,10 +757,10 @@ class DashingCircleEffect : public GrGeometryProcessor {
|
| public:
|
| typedef SkPathEffect::DashInfo DashInfo;
|
|
|
| - static GrGeometryProcessor* Create(GrColor,
|
| - AAMode aaMode,
|
| - const SkMatrix& localMatrix,
|
| - bool usesLocalCoords);
|
| + static sk_sp<GrGeometryProcessor> Make(GrColor,
|
| + AAMode aaMode,
|
| + const SkMatrix& localMatrix,
|
| + bool usesLocalCoords);
|
|
|
| const char* name() const override { return "DashingCircleEffect"; }
|
|
|
| @@ -919,11 +919,12 @@ void GLDashingCircleEffect::GenKey(const GrGeometryProcessor& gp,
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|
| -GrGeometryProcessor* DashingCircleEffect::Create(GrColor color,
|
| - AAMode aaMode,
|
| - const SkMatrix& localMatrix,
|
| - bool usesLocalCoords) {
|
| - return new DashingCircleEffect(color, aaMode, localMatrix, usesLocalCoords);
|
| +sk_sp<GrGeometryProcessor> DashingCircleEffect::Make(GrColor color,
|
| + AAMode aaMode,
|
| + const SkMatrix& localMatrix,
|
| + bool usesLocalCoords) {
|
| + return sk_sp<GrGeometryProcessor>(
|
| + new DashingCircleEffect(color, aaMode, localMatrix, usesLocalCoords));
|
| }
|
|
|
| void DashingCircleEffect::getGLSLProcessorKey(const GrGLSLCaps& caps,
|
| @@ -952,11 +953,11 @@ DashingCircleEffect::DashingCircleEffect(GrColor color,
|
|
|
| GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DashingCircleEffect);
|
|
|
| -const GrGeometryProcessor* DashingCircleEffect::TestCreate(GrProcessorTestData* d) {
|
| +sk_sp<GrGeometryProcessor> DashingCircleEffect::TestCreate(GrProcessorTestData* d) {
|
| AAMode aaMode = static_cast<AAMode>(d->fRandom->nextULessThan(GrDashingEffect::kAAModeCnt));
|
| - return DashingCircleEffect::Create(GrRandomColor(d->fRandom),
|
| - aaMode, GrTest::TestMatrix(d->fRandom),
|
| - d->fRandom->nextBool());
|
| + return DashingCircleEffect::Make(GrRandomColor(d->fRandom),
|
| + aaMode, GrTest::TestMatrix(d->fRandom),
|
| + d->fRandom->nextBool());
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| @@ -976,10 +977,10 @@ class DashingLineEffect : public GrGeometryProcessor {
|
| public:
|
| typedef SkPathEffect::DashInfo DashInfo;
|
|
|
| - static GrGeometryProcessor* Create(GrColor,
|
| - AAMode aaMode,
|
| - const SkMatrix& localMatrix,
|
| - bool usesLocalCoords);
|
| + static sk_sp<GrGeometryProcessor> Make(GrColor,
|
| + AAMode aaMode,
|
| + const SkMatrix& localMatrix,
|
| + bool usesLocalCoords);
|
|
|
| const char* name() const override { return "DashingEffect"; }
|
|
|
| @@ -1151,11 +1152,12 @@ void GLDashingLineEffect::GenKey(const GrGeometryProcessor& gp,
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|
| -GrGeometryProcessor* DashingLineEffect::Create(GrColor color,
|
| - AAMode aaMode,
|
| - const SkMatrix& localMatrix,
|
| - bool usesLocalCoords) {
|
| - return new DashingLineEffect(color, aaMode, localMatrix, usesLocalCoords);
|
| +sk_sp<GrGeometryProcessor> DashingLineEffect::Make(GrColor color,
|
| + AAMode aaMode,
|
| + const SkMatrix& localMatrix,
|
| + bool usesLocalCoords) {
|
| + return sk_sp<GrGeometryProcessor>(
|
| + new DashingLineEffect(color, aaMode, localMatrix, usesLocalCoords));
|
| }
|
|
|
| void DashingLineEffect::getGLSLProcessorKey(const GrGLSLCaps& caps,
|
| @@ -1183,20 +1185,20 @@ DashingLineEffect::DashingLineEffect(GrColor color,
|
|
|
| GR_DEFINE_GEOMETRY_PROCESSOR_TEST(DashingLineEffect);
|
|
|
| -const GrGeometryProcessor* DashingLineEffect::TestCreate(GrProcessorTestData* d) {
|
| +sk_sp<GrGeometryProcessor> DashingLineEffect::TestCreate(GrProcessorTestData* d) {
|
| AAMode aaMode = static_cast<AAMode>(d->fRandom->nextULessThan(GrDashingEffect::kAAModeCnt));
|
| - return DashingLineEffect::Create(GrRandomColor(d->fRandom),
|
| - aaMode, GrTest::TestMatrix(d->fRandom),
|
| - d->fRandom->nextBool());
|
| + return DashingLineEffect::Make(GrRandomColor(d->fRandom),
|
| + aaMode, GrTest::TestMatrix(d->fRandom),
|
| + d->fRandom->nextBool());
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|
| -static GrGeometryProcessor* create_dash_gp(GrColor color,
|
| - AAMode aaMode,
|
| - DashCap cap,
|
| - const SkMatrix& viewMatrix,
|
| - bool usesLocalCoords) {
|
| +static sk_sp<GrGeometryProcessor> make_dash_gp(GrColor color,
|
| + AAMode aaMode,
|
| + DashCap cap,
|
| + const SkMatrix& viewMatrix,
|
| + bool usesLocalCoords) {
|
| SkMatrix invert;
|
| if (usesLocalCoords && !viewMatrix.invert(&invert)) {
|
| SkDebugf("Failed to invert\n");
|
| @@ -1205,9 +1207,9 @@ static GrGeometryProcessor* create_dash_gp(GrColor color,
|
|
|
| switch (cap) {
|
| case kRound_DashCap:
|
| - return DashingCircleEffect::Create(color, aaMode, invert, usesLocalCoords);
|
| + return DashingCircleEffect::Make(color, aaMode, invert, usesLocalCoords);
|
| case kNonRound_DashCap:
|
| - return DashingLineEffect::Create(color, aaMode, invert, usesLocalCoords);
|
| + return DashingLineEffect::Make(color, aaMode, invert, usesLocalCoords);
|
| }
|
| return nullptr;
|
| }
|
|
|