diff options
author | 2017-09-07 18:33:08 +0000 | |
---|---|---|
committer | 2017-09-07 18:33:22 +0000 | |
commit | e5ede4b138e84d05d63c9ab7f426884dc9b4d926 (patch) | |
tree | dfbaa75e3d7d3e5e70deed7585419ce2610e9978 /src/gpu/ops | |
parent | b3e39f67599adf418215652fe714d3883dd5fd88 (diff) |
Revert "Improve GrPathRendererChain heuristics"
This reverts commit 60f42494f5d45c38e260ce089cdddfb600f799b2.
Reason for revert: breaking gold
Original change's description:
> Improve GrPathRendererChain heuristics
>
> Changes GrPathRenderer::canDrawPath to return a 'CanDrawPath' enum,
> which contains a new kAsBackup value that means "I'm better than SW,
> but give the path renderers below me a chance first."
>
> Bug: skia:
> Change-Id: I45aac5462ca1bc0bc839eb1c315db9493901a07e
> Reviewed-on: https://skia-review.googlesource.com/42222
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
TBR=jvanverth@google.com,bsalomon@google.com,brianosman@google.com,csmartdalton@google.com,senorblanco@google.com
Change-Id: I46020dbd56b6f6b88668894285b9b7b80f89b9a2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/43780
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/gpu/ops')
-rw-r--r-- | src/gpu/ops/GrAAConvexPathRenderer.cpp | 12 | ||||
-rw-r--r-- | src/gpu/ops/GrAAConvexPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrAAHairLinePathRenderer.cpp | 13 | ||||
-rw-r--r-- | src/gpu/ops/GrAAHairLinePathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp | 31 | ||||
-rw-r--r-- | src/gpu/ops/GrAALinearizingConvexPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrDashLinePathRenderer.cpp | 12 | ||||
-rw-r--r-- | src/gpu/ops/GrDashLinePathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrDefaultPathRenderer.cpp | 13 | ||||
-rw-r--r-- | src/gpu/ops/GrDefaultPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrMSAAPathRenderer.cpp | 9 | ||||
-rw-r--r-- | src/gpu/ops/GrMSAAPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrSmallPathRenderer.cpp | 21 | ||||
-rw-r--r-- | src/gpu/ops/GrSmallPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrStencilAndCoverPathRenderer.cpp | 12 | ||||
-rw-r--r-- | src/gpu/ops/GrStencilAndCoverPathRenderer.h | 2 | ||||
-rw-r--r-- | src/gpu/ops/GrTessellatingPathRenderer.cpp | 26 | ||||
-rw-r--r-- | src/gpu/ops/GrTessellatingPathRenderer.h | 2 |
18 files changed, 66 insertions, 101 deletions
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp index 0fe74433ff..425dbae148 100644 --- a/src/gpu/ops/GrAAConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp @@ -665,14 +665,10 @@ sk_sp<GrGeometryProcessor> QuadEdgeEffect::TestCreate(GrProcessorTestData* d) { /////////////////////////////////////////////////////////////////////////////// -GrPathRenderer::CanDrawPath -GrAAConvexPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { - if (args.fCaps->shaderCaps()->shaderDerivativeSupport() && - (GrAAType::kCoverage == args.fAAType) && args.fShape->style().isSimpleFill() && - !args.fShape->inverseFilled() && args.fShape->knownToBeConvex()) { - return CanDrawPath::kYes; - } - return CanDrawPath::kNo; +bool GrAAConvexPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { + return (args.fCaps->shaderCaps()->shaderDerivativeSupport() && + (GrAAType::kCoverage == args.fAAType) && args.fShape->style().isSimpleFill() && + !args.fShape->inverseFilled() && args.fShape->knownToBeConvex()); } // extract the result vertices and indices from the GrAAConvexTessellator diff --git a/src/gpu/ops/GrAAConvexPathRenderer.h b/src/gpu/ops/GrAAConvexPathRenderer.h index a31d6b9593..420ca60139 100644 --- a/src/gpu/ops/GrAAConvexPathRenderer.h +++ b/src/gpu/ops/GrAAConvexPathRenderer.h @@ -15,7 +15,7 @@ public: GrAAConvexPathRenderer(); private: - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; }; diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp index ba72eacd7e..e00ca3fd5d 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp @@ -677,27 +677,26 @@ static void add_line(const SkPoint p[2], /////////////////////////////////////////////////////////////////////////////// -GrPathRenderer::CanDrawPath -GrAAHairLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrAAHairLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { if (GrAAType::kCoverage != args.fAAType) { - return CanDrawPath::kNo; + return false; } if (!IsStrokeHairlineOrEquivalent(args.fShape->style(), *args.fViewMatrix, nullptr)) { - return CanDrawPath::kNo; + return false; } // We don't currently handle dashing in this class though perhaps we should. if (args.fShape->style().pathEffect()) { - return CanDrawPath::kNo; + return false; } if (SkPath::kLine_SegmentMask == args.fShape->segmentMask() || args.fCaps->shaderCaps()->shaderDerivativeSupport()) { - return CanDrawPath::kYes; + return true; } - return CanDrawPath::kNo; + return false; } template <class VertexType> diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.h b/src/gpu/ops/GrAAHairLinePathRenderer.h index b52d5e9959..e2406a5c01 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.h +++ b/src/gpu/ops/GrAAHairLinePathRenderer.h @@ -19,7 +19,7 @@ public: typedef SkTArray<float, true> FloatArray; private: - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp index d206951ce4..c1fd4f7e65 100644 --- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp @@ -34,46 +34,39 @@ GrAALinearizingConvexPathRenderer::GrAALinearizingConvexPathRenderer() { /////////////////////////////////////////////////////////////////////////////// -GrPathRenderer::CanDrawPath -GrAALinearizingConvexPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrAALinearizingConvexPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { if (GrAAType::kCoverage != args.fAAType) { - return CanDrawPath::kNo; + return false; } if (!args.fShape->knownToBeConvex()) { - return CanDrawPath::kNo; + return false; } if (args.fShape->style().pathEffect()) { - return CanDrawPath::kNo; + return false; } if (args.fShape->inverseFilled()) { - return CanDrawPath::kNo; + return false; } if (args.fShape->bounds().width() <= 0 && args.fShape->bounds().height() <= 0) { // Stroked zero length lines should draw, but this PR doesn't handle that case - return CanDrawPath::kNo; + return false; } const SkStrokeRec& stroke = args.fShape->style().strokeRec(); if (stroke.getStyle() == SkStrokeRec::kStroke_Style || stroke.getStyle() == SkStrokeRec::kStrokeAndFill_Style) { if (!args.fViewMatrix->isSimilarity()) { - return CanDrawPath::kNo; + return false; } SkScalar strokeWidth = args.fViewMatrix->getMaxScale() * stroke.getWidth(); if (strokeWidth < 1.0f && stroke.getStyle() == SkStrokeRec::kStroke_Style) { - return CanDrawPath::kNo; - } - if (strokeWidth > kMaxStrokeWidth || - !args.fShape->knownToBeClosed() || - stroke.getJoin() == SkPaint::Join::kRound_Join) { - return CanDrawPath::kNo; + return false; } - return CanDrawPath::kYes; - } - if (stroke.getStyle() != SkStrokeRec::kFill_Style) { - return CanDrawPath::kNo; + return strokeWidth <= kMaxStrokeWidth && + args.fShape->knownToBeClosed() && + stroke.getJoin() != SkPaint::Join::kRound_Join; } - return CanDrawPath::kYes; + return stroke.getStyle() == SkStrokeRec::kFill_Style; } // extract the result vertices and indices from the GrAAConvexTessellator diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.h b/src/gpu/ops/GrAALinearizingConvexPathRenderer.h index 4fdcb12a26..afee5db4d4 100644 --- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.h +++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.h @@ -15,7 +15,7 @@ public: GrAALinearizingConvexPathRenderer(); private: - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; }; diff --git a/src/gpu/ops/GrDashLinePathRenderer.cpp b/src/gpu/ops/GrDashLinePathRenderer.cpp index 73c2b3e8f2..38d486c79f 100644 --- a/src/gpu/ops/GrDashLinePathRenderer.cpp +++ b/src/gpu/ops/GrDashLinePathRenderer.cpp @@ -12,22 +12,18 @@ #include "ops/GrDashOp.h" #include "ops/GrMeshDrawOp.h" -GrPathRenderer::CanDrawPath -GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { SkPoint pts[2]; bool inverted; if (args.fShape->style().isDashed() && args.fShape->asLine(pts, &inverted)) { if (args.fAAType == GrAAType::kMixedSamples) { - return CanDrawPath::kNo; + return false; } // We should never have an inverse dashed case. SkASSERT(!inverted); - if (!GrDashOp::CanDrawDashLine(pts, args.fShape->style(), *args.fViewMatrix)) { - return CanDrawPath::kNo; - } - return CanDrawPath::kYes; + return GrDashOp::CanDrawDashLine(pts, args.fShape->style(), *args.fViewMatrix); } - return CanDrawPath::kNo; + return false; } bool GrDashLinePathRenderer::onDrawPath(const DrawPathArgs& args) { diff --git a/src/gpu/ops/GrDashLinePathRenderer.h b/src/gpu/ops/GrDashLinePathRenderer.h index 23227bc824..11abf99396 100644 --- a/src/gpu/ops/GrDashLinePathRenderer.h +++ b/src/gpu/ops/GrDashLinePathRenderer.h @@ -14,7 +14,7 @@ class GrGpu; class GrDashLinePathRenderer : public GrPathRenderer { private: - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; StencilSupport onGetStencilSupport(const GrShape&) const override { return kNoSupport_StencilSupport; diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp index 9741781013..e3b48a8db9 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.cpp +++ b/src/gpu/ops/GrDefaultPathRenderer.cpp @@ -609,20 +609,15 @@ bool GrDefaultPathRenderer::internalDrawPath(GrRenderTargetContext* renderTarget return true; } -GrPathRenderer::CanDrawPath -GrDefaultPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrDefaultPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { bool isHairline = IsStrokeHairlineOrEquivalent(args.fShape->style(), *args.fViewMatrix, nullptr); // If we aren't a single_pass_shape or hairline, we require stencil buffers. if (!(single_pass_shape(*args.fShape) || isHairline) && args.fCaps->avoidStencilBuffers()) { - return CanDrawPath::kNo; + return false; } // This can draw any path with any simple fill style but doesn't do coverage-based antialiasing. - if (GrAAType::kCoverage == args.fAAType || - (!args.fShape->style().isSimpleFill() && !isHairline)) { - return CanDrawPath::kNo; - } - // This is the fallback renderer for when a path is too complicated for the others to draw. - return CanDrawPath::kAsBackup; + return GrAAType::kCoverage != args.fAAType && + (args.fShape->style().isSimpleFill() || isHairline); } bool GrDefaultPathRenderer::onDrawPath(const DrawPathArgs& args) { diff --git a/src/gpu/ops/GrDefaultPathRenderer.h b/src/gpu/ops/GrDefaultPathRenderer.h index f7d98190c2..7f7ab2a5e0 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.h +++ b/src/gpu/ops/GrDefaultPathRenderer.h @@ -23,7 +23,7 @@ public: private: StencilSupport onGetStencilSupport(const GrShape&) const override; - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; diff --git a/src/gpu/ops/GrMSAAPathRenderer.cpp b/src/gpu/ops/GrMSAAPathRenderer.cpp index b80a811430..ef19367f61 100644 --- a/src/gpu/ops/GrMSAAPathRenderer.cpp +++ b/src/gpu/ops/GrMSAAPathRenderer.cpp @@ -682,18 +682,15 @@ bool GrMSAAPathRenderer::internalDrawPath(GrRenderTargetContext* renderTargetCon return true; } -GrPathRenderer::CanDrawPath GrMSAAPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrMSAAPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { // If we aren't a single_pass_shape, we require stencil buffers. if (!single_pass_shape(*args.fShape) && args.fCaps->avoidStencilBuffers()) { - return CanDrawPath::kNo; + return false; } // This path renderer only fills and relies on MSAA for antialiasing. Stroked shapes are // handled by passing on the original shape and letting the caller compute the stroked shape // which will have a fill style. - if (!args.fShape->style().isSimpleFill() || GrAAType::kCoverage == args.fAAType) { - return CanDrawPath::kNo; - } - return CanDrawPath::kYes; + return args.fShape->style().isSimpleFill() && (GrAAType::kCoverage != args.fAAType); } bool GrMSAAPathRenderer::onDrawPath(const DrawPathArgs& args) { diff --git a/src/gpu/ops/GrMSAAPathRenderer.h b/src/gpu/ops/GrMSAAPathRenderer.h index 1353867f16..13d3e15a7e 100644 --- a/src/gpu/ops/GrMSAAPathRenderer.h +++ b/src/gpu/ops/GrMSAAPathRenderer.h @@ -15,7 +15,7 @@ class SK_API GrMSAAPathRenderer : public GrPathRenderer { private: StencilSupport onGetStencilSupport(const GrShape&) const override; - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp index 1b0648615d..cfdf8734c9 100644 --- a/src/gpu/ops/GrSmallPathRenderer.cpp +++ b/src/gpu/ops/GrSmallPathRenderer.cpp @@ -81,30 +81,30 @@ GrSmallPathRenderer::~GrSmallPathRenderer() { } //////////////////////////////////////////////////////////////////////////////// -GrPathRenderer::CanDrawPath GrSmallPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrSmallPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { if (!args.fCaps->shaderCaps()->shaderDerivativeSupport()) { - return CanDrawPath::kNo; + return false; } // If the shape has no key then we won't get any reuse. if (!args.fShape->hasUnstyledKey()) { - return CanDrawPath::kNo; + return false; } // This only supports filled paths, however, the caller may apply the style to make a filled // path and try again. if (!args.fShape->style().isSimpleFill()) { - return CanDrawPath::kNo; + return false; } // This does non-inverse coverage-based antialiased fills. if (GrAAType::kCoverage != args.fAAType) { - return CanDrawPath::kNo; + return false; } // TODO: Support inverse fill if (args.fShape->inverseFilled()) { - return CanDrawPath::kNo; + return false; } // currently don't support perspective if (args.fViewMatrix->hasPerspective()) { - return CanDrawPath::kNo; + return false; } // Only support paths with bounds within kMaxDim by kMaxDim, @@ -112,18 +112,15 @@ GrPathRenderer::CanDrawPath GrSmallPathRenderer::onCanDrawPath(const CanDrawPath // The goal is to accelerate rendering of lots of small paths that may be scaling. SkScalar scaleFactors[2]; if (!args.fViewMatrix->getMinMaxScales(scaleFactors)) { - return CanDrawPath::kNo; + return false; } SkRect bounds = args.fShape->styledBounds(); SkScalar minDim = SkMinScalar(bounds.width(), bounds.height()); SkScalar maxDim = SkMaxScalar(bounds.width(), bounds.height()); SkScalar minSize = minDim * SkScalarAbs(scaleFactors[0]); SkScalar maxSize = maxDim * SkScalarAbs(scaleFactors[1]); - if (maxDim > kMaxDim || kMinSize > minSize || maxSize > kMaxSize) { - return CanDrawPath::kNo; - } - return CanDrawPath::kYes; + return maxDim <= kMaxDim && kMinSize <= minSize && maxSize <= kMaxSize; } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/gpu/ops/GrSmallPathRenderer.h b/src/gpu/ops/GrSmallPathRenderer.h index b958baa843..d10c4baa86 100644 --- a/src/gpu/ops/GrSmallPathRenderer.h +++ b/src/gpu/ops/GrSmallPathRenderer.h @@ -31,7 +31,7 @@ private: return GrPathRenderer::kNoSupport_StencilSupport; } - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; diff --git a/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp b/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp index 3179ebacc8..4d86efdc0e 100644 --- a/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp +++ b/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp @@ -31,22 +31,18 @@ GrStencilAndCoverPathRenderer::GrStencilAndCoverPathRenderer(GrResourceProvider* : fResourceProvider(resourceProvider) { } -GrPathRenderer::CanDrawPath -GrStencilAndCoverPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { +bool GrStencilAndCoverPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { // GrPath doesn't support hairline paths. An arbitrary path effect could produce a hairline // path. if (args.fShape->style().strokeRec().isHairlineStyle() || args.fShape->style().hasNonDashPathEffect()) { - return CanDrawPath::kNo; + return false; } if (args.fHasUserStencilSettings) { - return CanDrawPath::kNo; + return false; } // doesn't do per-path AA, relies on the target having MSAA. - if (GrAAType::kCoverage == args.fAAType) { - return CanDrawPath::kNo; - } - return CanDrawPath::kYes; + return (GrAAType::kCoverage != args.fAAType); } static GrPath* get_gr_path(GrResourceProvider* resourceProvider, const GrShape& shape) { diff --git a/src/gpu/ops/GrStencilAndCoverPathRenderer.h b/src/gpu/ops/GrStencilAndCoverPathRenderer.h index dda0157a5c..c896e61545 100644 --- a/src/gpu/ops/GrStencilAndCoverPathRenderer.h +++ b/src/gpu/ops/GrStencilAndCoverPathRenderer.h @@ -28,7 +28,7 @@ private: return GrPathRenderer::kStencilOnly_StencilSupport; } - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs&) const override; bool onDrawPath(const DrawPathArgs&) override; diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp index 2db4ffcd0d..641a037bbe 100644 --- a/src/gpu/ops/GrTessellatingPathRenderer.cpp +++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp @@ -132,31 +132,27 @@ private: GrTessellatingPathRenderer::GrTessellatingPathRenderer() { } -GrPathRenderer::CanDrawPath -GrTessellatingPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { - // This path renderer can draw fill styles, and can do screenspace antialiasing via a one-pixel - // coverage ramp. It can do convex and concave paths, but we'll give simpler algorithms a chance - // to draw the convex ones first. We pass on paths that have styles, though they may come back - // around after applying the styling information to the geometry to create a filled path. In the - // non-AA case, We skip paths that don't have a key since the real advantage of this path +bool GrTessellatingPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { + // This path renderer can draw fill styles, and can do screenspace antialiasing via a + // one-pixel coverage ramp. It can do convex and concave paths, but we'll leave the convex + // ones to simpler algorithms. We pass on paths that have styles, though they may come back + // around after applying the styling information to the geometry to create a filled path. In + // the non-AA case, We skip paths thta don't have a key since the real advantage of this path // renderer comes from caching the tessellated geometry. In the AA case, we do not cache, so we // accept paths without keys. - if (!args.fShape->style().isSimpleFill()) { - return CanDrawPath::kNo; + if (!args.fShape->style().isSimpleFill() || args.fShape->knownToBeConvex()) { + return false; } if (GrAAType::kCoverage == args.fAAType) { SkPath path; args.fShape->asPath(&path); if (path.countVerbs() > 10) { - return CanDrawPath::kNo; + return false; } } else if (!args.fShape->hasUnstyledKey()) { - return CanDrawPath::kNo; - } - if (args.fShape->knownToBeConvex()) { - return CanDrawPath::kAsBackup; + return false; } - return CanDrawPath::kYes; + return true; } namespace { diff --git a/src/gpu/ops/GrTessellatingPathRenderer.h b/src/gpu/ops/GrTessellatingPathRenderer.h index 7dd50fc6eb..d5f2c7af9b 100644 --- a/src/gpu/ops/GrTessellatingPathRenderer.h +++ b/src/gpu/ops/GrTessellatingPathRenderer.h @@ -19,7 +19,7 @@ public: GrTessellatingPathRenderer(); private: - CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; + bool onCanDrawPath(const CanDrawPathArgs& ) const override; StencilSupport onGetStencilSupport(const GrShape&) const override { return GrPathRenderer::kNoSupport_StencilSupport; |