diff options
author | Robert Phillips <robertphillips@google.com> | 2018-06-12 10:11:12 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-12 14:43:03 +0000 |
commit | 7c525e62d405d57ae7a7742cf607b9770a83a0ab (patch) | |
tree | 8dabe9ed08bddd398b8fac935decaf2743f5a6f7 /gm/convexpolyeffect.cpp | |
parent | 7deacf4833dcdb6c1101a18a2b46a8c516a96f9a (diff) |
Plumb GrContext everywhere
There is no good way to split the monster CL up. This breaks out
the GrContext plumbing but doesn't use it.
Change-Id: I90856d428d372bcec3f8821e6364667b367927d4
Reviewed-on: https://skia-review.googlesource.com/133382
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'gm/convexpolyeffect.cpp')
-rw-r--r-- | gm/convexpolyeffect.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index fa48e7bb88..8f8d1b4d50 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -11,6 +11,7 @@ #include "GrContext.h" #include "GrDefaultGeoProcFactory.h" +#include "GrMemoryPool.h" #include "GrOpFlushState.h" #include "GrPathUtils.h" #include "GrRenderTargetContextPriv.h" @@ -41,7 +42,9 @@ class PolyBoundsOp : public GrMeshDrawOp { public: DEFINE_OP_CLASS_ID - static std::unique_ptr<GrDrawOp> Make(GrPaint&& paint, const SkRect& rect) { + static std::unique_ptr<GrDrawOp> Make(GrContext* context, + GrPaint&& paint, + const SkRect& rect) { return std::unique_ptr<GrDrawOp>(new PolyBoundsOp(std::move(paint), rect)); } @@ -61,6 +64,8 @@ public: } private: + friend class ::GrOpMemoryPool; // for ctor + PolyBoundsOp(GrPaint&& paint, const SkRect& rect) : INHERITED(ClassID()) , fColor(paint.getColor()) @@ -181,6 +186,11 @@ protected: return; } + GrContext* context = canvas->getGrContext(); + if (!context) { + return; + } + SkScalar y = 0; constexpr SkScalar kDX = 12.f; for (PathList::Iter iter(fPaths, PathList::Iter::kHead_IterStart); @@ -206,7 +216,7 @@ protected: grPaint.addCoverageFragmentProcessor(std::move(fp)); std::unique_ptr<GrDrawOp> op = - PolyBoundsOp::Make(std::move(grPaint), p.getBounds()); + PolyBoundsOp::Make(context, std::move(grPaint), p.getBounds()); renderTargetContext->priv().testingOnly_addDrawOp(std::move(op)); x += SkScalarCeilToScalar(path->getBounds().width() + kDX); @@ -245,7 +255,8 @@ protected: grPaint.setXPFactory(GrPorterDuffXPFactory::Get(SkBlendMode::kSrc)); grPaint.addCoverageFragmentProcessor(std::move(fp)); - std::unique_ptr<GrDrawOp> op = PolyBoundsOp::Make(std::move(grPaint), rect); + std::unique_ptr<GrDrawOp> op = PolyBoundsOp::Make(context, std::move(grPaint), + rect); renderTargetContext->priv().testingOnly_addDrawOp(std::move(op)); x += SkScalarCeilToScalar(rect.width() + kDX); |