Remove ref counting from GrOp.
Instead use std::unique_ptr to manage GrOp lifetime.
Change-Id: Ic1dc1e0ffd7254c3994221f498677af5bbf66a71
Reviewed-on: https://skia-review.googlesource.com/6479
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index e529ded..07fc977 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -34,9 +34,10 @@
const char* name() const override { return "BezierCubicOrConicTestOp"; }
- static sk_sp<GrDrawOp> Make(sk_sp<GrGeometryProcessor> gp, const SkRect& bounds, GrColor color,
- const SkScalar klmEqs[9], SkScalar sign) {
- return sk_sp<GrDrawOp>(new BezierCubicOrConicTestOp(gp, bounds, color, klmEqs, sign));
+ static std::unique_ptr<GrDrawOp> Make(sk_sp<GrGeometryProcessor> gp, const SkRect& bounds,
+ GrColor color, const SkScalar klmEqs[9], SkScalar sign) {
+ return std::unique_ptr<GrDrawOp>(
+ new BezierCubicOrConicTestOp(gp, bounds, color, klmEqs, sign));
}
private:
@@ -194,7 +195,7 @@
GrPaint grPaint;
grPaint.setXPFactory(GrPorterDuffXPFactory::Make(SkBlendMode::kSrc));
- sk_sp<GrDrawOp> op =
+ std::unique_ptr<GrDrawOp> op =
BezierCubicOrConicTestOp::Make(gp, bounds, color, klmEqs, klmSigns[c]);
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
@@ -327,7 +328,7 @@
GrPaint grPaint;
grPaint.setXPFactory(GrPorterDuffXPFactory::Make(SkBlendMode::kSrc));
- sk_sp<GrDrawOp> op =
+ std::unique_ptr<GrDrawOp> op =
BezierCubicOrConicTestOp::Make(gp, bounds, color, klmEqs, 1.f);
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
@@ -393,9 +394,9 @@
DEFINE_OP_CLASS_ID
const char* name() const override { return "BezierQuadTestOp"; }
- static sk_sp<GrDrawOp> Make(sk_sp<GrGeometryProcessor> gp, const SkRect& bounds, GrColor color,
- const GrPathUtils::QuadUVMatrix& devToUV) {
- return sk_sp<GrDrawOp>(new BezierQuadTestOp(gp, bounds, color, devToUV));
+ static std::unique_ptr<GrDrawOp> Make(sk_sp<GrGeometryProcessor> gp, const SkRect& bounds,
+ GrColor color, const GrPathUtils::QuadUVMatrix& devToUV) {
+ return std::unique_ptr<GrDrawOp>(new BezierQuadTestOp(gp, bounds, color, devToUV));
}
private:
@@ -543,7 +544,8 @@
GrPathUtils::QuadUVMatrix DevToUV(pts);
- sk_sp<GrDrawOp> op = BezierQuadTestOp::Make(gp, bounds, color, DevToUV);
+ std::unique_ptr<GrDrawOp> op =
+ BezierQuadTestOp::Make(gp, bounds, color, DevToUV);
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index 372858e..21e49eb 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -87,8 +87,8 @@
SkRect bounds = testBounds;
bounds.offset(SkIntToScalar(x), SkIntToScalar(y));
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(0xff000000, SkMatrix::I(),
- bounds, nullptr, nullptr));
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ 0xff000000, SkMatrix::I(), bounds, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
}
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index 0e3c56f..0fe476f 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -109,7 +109,7 @@
grPaint.addColorFragmentProcessor(std::move(fp));
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
grPaint.getColor(), viewMatrix, renderRect, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index d6decb9..2c8e660 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -46,8 +46,8 @@
const char* name() const override { return "PolyBoundsOp"; }
- static sk_sp<GrDrawOp> Make(const SkRect& rect, GrColor color) {
- return sk_sp<GrDrawOp>(new PolyBoundsOp(rect, color));
+ static std::unique_ptr<GrDrawOp> Make(const SkRect& rect, GrColor color) {
+ return std::unique_ptr<GrDrawOp>(new PolyBoundsOp(rect, color));
}
private:
@@ -185,7 +185,7 @@
grPaint.setXPFactory(GrPorterDuffXPFactory::Make(SkBlendMode::kSrc));
grPaint.addCoverageFragmentProcessor(std::move(fp));
- sk_sp<GrDrawOp> op = PolyBoundsOp::Make(p.getBounds(), 0xff000000);
+ std::unique_ptr<GrDrawOp> op = PolyBoundsOp::Make(p.getBounds(), 0xff000000);
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
@@ -225,7 +225,7 @@
grPaint.setXPFactory(GrPorterDuffXPFactory::Make(SkBlendMode::kSrc));
grPaint.addCoverageFragmentProcessor(std::move(fp));
- sk_sp<GrDrawOp> op = PolyBoundsOp::Make(rect, 0xff000000);
+ std::unique_ptr<GrDrawOp> op = PolyBoundsOp::Make(rect, 0xff000000);
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 4649a68..a051801 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -115,7 +115,7 @@
SkRect bounds = rrect.getBounds();
bounds.outset(2.f, 2.f);
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
0xff000000, SkMatrix::I(), bounds, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint,
GrAAType::kNone,
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index cf7ec41..9ff694d 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -126,7 +126,7 @@
const SkMatrix viewMatrix = SkMatrix::MakeTrans(x, y);
grPaint.addColorFragmentProcessor(std::move(fp));
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
GrColor_WHITE, viewMatrix, renderRect, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index 32c20d2..ab04a9d 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -123,7 +123,7 @@
SkMatrix viewMatrix;
viewMatrix.setTranslate(x, y);
grPaint.addColorFragmentProcessor(std::move(fp));
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
GrColor_WHITE, viewMatrix, renderRect, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
@@ -236,8 +236,8 @@
SkMatrix viewMatrix;
viewMatrix.setTranslate(x, y);
grPaint.addColorFragmentProcessor(fp);
- sk_sp<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(GrColor_WHITE, viewMatrix,
- renderRect, nullptr, nullptr));
+ std::unique_ptr<GrDrawOp> op(GrRectOpFactory::MakeNonAAFill(
+ GrColor_WHITE, viewMatrix, renderRect, nullptr, nullptr));
renderTargetContext->priv().testingOnly_addDrawOp(grPaint, GrAAType::kNone,
std::move(op));
}