diff options
author | Chris Dalton <csmartdalton@google.com> | 2019-01-15 11:53:00 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2019-01-16 21:22:38 +0000 |
commit | 4b62aed9736f2f4c664e9ee947bd896c74739a59 (patch) | |
tree | 4de856d64b472b4af453ec37c8ba10a157970fc7 | |
parent | 61a16515cf8a47cc5ea0336feb0aecdc4f62cf3a (diff) | |
download | skqp-4b62aed9736f2f4c664e9ee947bd896c74739a59.tar.gz |
Return GrProcessorSet::Analysis from GrDrawOp::finalize
Bug: skia:8671
Change-Id: Ib35d1642659021419f408bf19b1b0dc0066e8df2
Reviewed-on: https://skia-review.googlesource.com/c/184160
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
42 files changed, 121 insertions, 132 deletions
diff --git a/bench/VertexColorSpaceBench.cpp b/bench/VertexColorSpaceBench.cpp index 164a2b4ade..c00a8065bf 100644 --- a/bench/VertexColorSpaceBench.cpp +++ b/bench/VertexColorSpaceBench.cpp @@ -151,8 +151,8 @@ public: return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } private: diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index ff4ea00ec5..c3e4c71b30 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -28,10 +28,9 @@ class BezierTestOp : public GrMeshDrawOp { public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - auto analysis = fProcessorSet.finalize(fColor, GrProcessorAnalysisCoverage::kSingleChannel, - clip, false, caps, &fColor); - return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fProcessorSet.finalize(fColor, GrProcessorAnalysisCoverage::kSingleChannel, clip, + false, caps, &fColor); } void visitProxies(const VisitProxyFunc& func, VisitorType) const override { diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp index 7769c7e9e8..df1dcf1e55 100644 --- a/gm/clockwise.cpp +++ b/gm/clockwise.cpp @@ -104,8 +104,8 @@ private: const char* name() const override { return "ClockwiseTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override { diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 22aa69dab8..62d95d3191 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -57,10 +57,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - auto analysis = fProcessors.finalize(fColor, GrProcessorAnalysisCoverage::kNone, clip, - false, caps, &fColor); - return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fProcessors.finalize(fColor, GrProcessorAnalysisCoverage::kNone, clip, false, caps, + &fColor); } private: diff --git a/gm/fwidth_squircle.cpp b/gm/fwidth_squircle.cpp index 4c565cbac3..0d140e9619 100644 --- a/gm/fwidth_squircle.cpp +++ b/gm/fwidth_squircle.cpp @@ -129,8 +129,8 @@ private: const char* name() const override { return "ClockwiseTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* flushState, const SkRect& chainBounds) override { diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp index 9ba67e62c4..b2c546d4bb 100644 --- a/samplecode/SampleCCPRGeometry.cpp +++ b/samplecode/SampleCCPRGeometry.cpp @@ -90,8 +90,8 @@ public: private: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState*, const SkRect& chainBounds) override; diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp index ed300607d4..e6c59c7b93 100644 --- a/src/gpu/GrRenderTargetContext.cpp +++ b/src/gpu/GrRenderTargetContext.cpp @@ -1912,7 +1912,8 @@ void GrRenderTargetContext::addDrawOp(const GrClip& clip, std::unique_ptr<GrDraw } GrXferProcessor::DstProxy dstProxy; - if (GrDrawOp::RequiresDstTexture::kYes == op->finalize(*this->caps(), &appliedClip)) { + GrProcessorSet::Analysis processorAnalysis = op->finalize(*this->caps(), &appliedClip); + if (processorAnalysis.requiresDstTexture()) { if (!this->setupDstProxy(this->asRenderTargetProxy(), clip, *op, &dstProxy)) { fContext->contextPriv().opMemoryPool()->release(std::move(op)); return; diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.cpp b/src/gpu/ccpr/GrCCDrawPathsOp.cpp index 13b21d079e..0d01849bb6 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp +++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp @@ -138,13 +138,12 @@ GrCCDrawPathsOp::SingleDraw::SingleDraw(const SkMatrix& m, const GrShape& shape, #endif } -GrDrawOp::RequiresDstTexture GrCCDrawPathsOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip) { +GrProcessorSet::Analysis GrCCDrawPathsOp::finalize(const GrCaps& caps, const GrAppliedClip* clip) { SkASSERT(1 == fNumDraws); // There should only be one single path draw in this Op right now. return fDraws.head().finalize(caps, clip, &fProcessors); } -GrDrawOp::RequiresDstTexture GrCCDrawPathsOp::SingleDraw::finalize( +GrProcessorSet::Analysis GrCCDrawPathsOp::SingleDraw::finalize( const GrCaps& caps, const GrAppliedClip* clip, GrProcessorSet* processors) { const GrProcessorSet::Analysis& analysis = processors->finalize( fColor, GrProcessorAnalysisCoverage::kSingleChannel, clip, false, caps, @@ -178,7 +177,7 @@ GrDrawOp::RequiresDstTexture GrCCDrawPathsOp::SingleDraw::finalize( fColor = fColor * coverage; } - return RequiresDstTexture(analysis.requiresDstTexture()); + return analysis; } GrOp::CombineResult GrCCDrawPathsOp::onCombineIfPossible(GrOp* op, const GrCaps&) { diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.h b/src/gpu/ccpr/GrCCDrawPathsOp.h index 82e05ae47c..fef4eadabb 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.h +++ b/src/gpu/ccpr/GrCCDrawPathsOp.h @@ -34,7 +34,7 @@ public: const char* name() const override { return "GrCCDrawPathsOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override; CombineResult onCombineIfPossible(GrOp*, const GrCaps&) override; void visitProxies(const VisitProxyFunc& fn, VisitorType) const override { fProcessors.visitProxies(fn); @@ -89,7 +89,7 @@ private: const SkPMColor4f&); // See the corresponding methods in GrCCDrawPathsOp. - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, GrProcessorSet*); + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*, GrProcessorSet*); void accountForOwnPath(GrCCPathCache*, GrOnFlushResourceProvider*, GrCCPerFlushResourceSpecs*); void setupResources(GrCCPathCache*, GrOnFlushResourceProvider*, GrCCPerFlushResources*, diff --git a/src/gpu/ccpr/GrCCPerFlushResources.cpp b/src/gpu/ccpr/GrCCPerFlushResources.cpp index 5d4ca94217..6be4f64418 100644 --- a/src/gpu/ccpr/GrCCPerFlushResources.cpp +++ b/src/gpu/ccpr/GrCCPerFlushResources.cpp @@ -29,8 +29,8 @@ namespace { class AtlasOp : public GrDrawOp { public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } CombineResult onCombineIfPossible(GrOp* other, const GrCaps&) override { // We will only make multiple copy ops if they have different source proxies. diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp index 6b8f6c67c3..8d7316e0cd 100644 --- a/src/gpu/ops/GrAAConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp @@ -707,9 +707,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - &fPaths.back().fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fPaths.back().fColor); } private: diff --git a/src/gpu/ops/GrAAFillRRectOp.cpp b/src/gpu/ops/GrAAFillRRectOp.cpp index 28854145ba..513c15ba2b 100644 --- a/src/gpu/ops/GrAAFillRRectOp.cpp +++ b/src/gpu/ops/GrAAFillRRectOp.cpp @@ -79,8 +79,7 @@ GrAAFillRRectOp::GrAAFillRRectOp(const GrShaderCaps& shaderCaps, const SkMatrix& // We will write the color and local rect attribs during finalize(). } -GrDrawOp::RequiresDstTexture GrAAFillRRectOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip) { +GrProcessorSet::Analysis GrAAFillRRectOp::finalize(const GrCaps& caps, const GrAppliedClip* clip) { SkASSERT(1 == fInstanceCount); SkPMColor4f overrideColor; @@ -97,7 +96,7 @@ GrDrawOp::RequiresDstTexture GrAAFillRRectOp::finalize(const GrCaps& caps, } fInstanceStride = fInstanceData.count(); - return RequiresDstTexture(analysis.requiresDstTexture()); + return analysis; } GrDrawOp::CombineResult GrAAFillRRectOp::onCombineIfPossible(GrOp* op, const GrCaps&) { diff --git a/src/gpu/ops/GrAAFillRRectOp.h b/src/gpu/ops/GrAAFillRRectOp.h index b1428cfb0c..b934fb01cb 100644 --- a/src/gpu/ops/GrAAFillRRectOp.h +++ b/src/gpu/ops/GrAAFillRRectOp.h @@ -19,7 +19,7 @@ public: const char* name() const override { return "GrAAFillRRectOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override; CombineResult onCombineIfPossible(GrOp*, const GrCaps&) override; void visitProxies(const VisitProxyFunc& fn, VisitorType) const override { fProcessors.visitProxies(fn); diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp index e03ce3fff9..052e98f2dd 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp @@ -839,9 +839,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - &fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fColor); } private: diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp index b007245b43..f15bbc899c 100644 --- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp @@ -187,9 +187,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - &fPaths.back().fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fPaths.back().fColor); } private: diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp index 976ab6feaf..08afa4b8d2 100644 --- a/src/gpu/ops/GrAtlasTextOp.cpp +++ b/src/gpu/ops/GrAtlasTextOp.cpp @@ -140,8 +140,7 @@ GrDrawOp::FixedFunctionFlags GrAtlasTextOp::fixedFunctionFlags() const { return FixedFunctionFlags::kNone; } -GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip) { +GrProcessorSet::Analysis GrAtlasTextOp::finalize(const GrCaps& caps, const GrAppliedClip* clip) { GrProcessorAnalysisCoverage coverage; GrProcessorAnalysisColor color; if (kColorBitmapMask_MaskType == fMaskType) { @@ -169,7 +168,7 @@ GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps, fCanCombineOnTouchOrOverlap = !analysis.requiresDstTexture() && !(fProcessors.xferProcessor() && fProcessors.xferProcessor()->xferBarrierType(caps)); - return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; + return analysis; } static void clip_quads(const SkIRect& clipRect, char* currVertex, const char* blobVertices, diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h index 6d31197969..41bd9dc997 100644 --- a/src/gpu/ops/GrAtlasTextOp.h +++ b/src/gpu/ops/GrAtlasTextOp.h @@ -75,7 +75,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override; enum MaskType { kGrayscaleCoverageMask_MaskType, diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp index 7204869c40..89214dc6ef 100644 --- a/src/gpu/ops/GrDashOp.cpp +++ b/src/gpu/ops/GrDashOp.cpp @@ -257,7 +257,7 @@ public: return flags; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage coverage; if (AAMode::kNone == fAAMode && !clip->numClipCoverageFragmentProcessors()) { coverage = GrProcessorAnalysisCoverage::kNone; @@ -269,7 +269,7 @@ public: (fProcessorSet.xferProcessor() && fProcessorSet.xferProcessor()->xferBarrierType(caps)); fUsesLocalCoords = analysis.usesLocalCoords(); - return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; + return analysis; } private: diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp index 54e98f16c0..d62d22a817 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.cpp +++ b/src/gpu/ops/GrDefaultPathRenderer.cpp @@ -392,11 +392,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage gpCoverage = this->coverage() == 0xFF ? GrProcessorAnalysisCoverage::kNone : GrProcessorAnalysisCoverage::kSingleChannel; - return fHelper.xpRequiresDstTexture(caps, clip, gpCoverage, &fColor); + return fHelper.finalizeProcessors(caps, clip, gpCoverage, &fColor); } private: diff --git a/src/gpu/ops/GrDrawAtlasOp.cpp b/src/gpu/ops/GrDrawAtlasOp.cpp index e19bdb6883..fdabd6456d 100644 --- a/src/gpu/ops/GrDrawAtlasOp.cpp +++ b/src/gpu/ops/GrDrawAtlasOp.cpp @@ -182,16 +182,15 @@ GrDrawOp::FixedFunctionFlags GrDrawAtlasOp::fixedFunctionFlags() const { return fHelper.fixedFunctionFlags(); } -GrDrawOp::RequiresDstTexture GrDrawAtlasOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip) { +GrProcessorSet::Analysis GrDrawAtlasOp::finalize(const GrCaps& caps, const GrAppliedClip* clip) { GrProcessorAnalysisColor gpColor; if (this->hasColors()) { gpColor.setToUnknown(); } else { gpColor.setToConstant(fColor); } - auto result = fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, - &gpColor); + auto result = fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kNone, + &gpColor); if (gpColor.isConstant(&fColor)) { fHasColors = false; } diff --git a/src/gpu/ops/GrDrawAtlasOp.h b/src/gpu/ops/GrDrawAtlasOp.h index 9a5576a76a..92820e9d6f 100644 --- a/src/gpu/ops/GrDrawAtlasOp.h +++ b/src/gpu/ops/GrDrawAtlasOp.h @@ -48,7 +48,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override; private: void onPrepareDraws(Target*) override; diff --git a/src/gpu/ops/GrDrawOp.h b/src/gpu/ops/GrDrawOp.h index b6077e1539..da541327de 100644 --- a/src/gpu/ops/GrDrawOp.h +++ b/src/gpu/ops/GrDrawOp.h @@ -36,7 +36,6 @@ public: GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(FixedFunctionFlags); virtual FixedFunctionFlags fixedFunctionFlags() const = 0; - enum class RequiresDstTexture : bool { kNo = false, kYes = true }; /** * This is called after the GrAppliedClip has been computed and just prior to recording the op * or combining it with a previously recorded op. The op should convert any proxies or resources @@ -44,7 +43,7 @@ public: * at this time the op must report whether a copy of the destination (or destination texture * itself) needs to be provided to the GrXferProcessor when this op executes. */ - virtual RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) = 0; + virtual GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) = 0; #ifdef SK_DEBUG bool fAddDrawOpCalled = false; diff --git a/src/gpu/ops/GrDrawPathOp.h b/src/gpu/ops/GrDrawPathOp.h index 7f2115db74..8f67104829 100644 --- a/src/gpu/ops/GrDrawPathOp.h +++ b/src/gpu/ops/GrDrawPathOp.h @@ -29,9 +29,8 @@ protected: } return FixedFunctionFlags::kUsesStencil; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return this->doProcessorAnalysis(caps, clip).requiresDstTexture() - ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return this->doProcessorAnalysis(caps, clip); } void visitProxies(const VisitProxyFunc& func, VisitorType) const override { diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp index 195f4b3a61..3a4219da3f 100644 --- a/src/gpu/ops/GrDrawVerticesOp.cpp +++ b/src/gpu/ops/GrDrawVerticesOp.cpp @@ -129,16 +129,15 @@ GrDrawOp::FixedFunctionFlags GrDrawVerticesOp::fixedFunctionFlags() const { return fHelper.fixedFunctionFlags(); } -GrDrawOp::RequiresDstTexture GrDrawVerticesOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip) { +GrProcessorSet::Analysis GrDrawVerticesOp::finalize(const GrCaps& caps, const GrAppliedClip* clip) { GrProcessorAnalysisColor gpColor; if (this->requiresPerVertexColors()) { gpColor.setToUnknown(); } else { gpColor.setToConstant(fMeshes.front().fColor); } - auto result = fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, - &gpColor); + auto result = fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kNone, + &gpColor); if (gpColor.isConstant(&fMeshes.front().fColor)) { fMeshes.front().fIgnoreColors = true; fFlags &= ~kRequiresPerVertexColors_Flag; diff --git a/src/gpu/ops/GrDrawVerticesOp.h b/src/gpu/ops/GrDrawVerticesOp.h index d160dee473..6ecdf0ca50 100644 --- a/src/gpu/ops/GrDrawVerticesOp.h +++ b/src/gpu/ops/GrDrawVerticesOp.h @@ -61,7 +61,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override; private: enum class ColorArrayType { diff --git a/src/gpu/ops/GrFillRectOp.cpp b/src/gpu/ops/GrFillRectOp.cpp index 0ff0322ab9..d784e96636 100644 --- a/src/gpu/ops/GrFillRectOp.cpp +++ b/src/gpu/ops/GrFillRectOp.cpp @@ -121,7 +121,7 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { // Initialize aggregate color analysis with the first quad's color (which always exists) SkASSERT(this->quadCount() > 0); GrProcessorAnalysisColor quadColors(fDeviceQuads.metadata(0).fColor); @@ -141,7 +141,7 @@ public: GrProcessorAnalysisCoverage coverage = fHelper.aaType() == GrAAType::kCoverage ? GrProcessorAnalysisCoverage::kSingleChannel : GrProcessorAnalysisCoverage::kNone; - auto result = fHelper.xpRequiresDstTexture(caps, clip, coverage, &quadColors); + auto result = fHelper.finalizeProcessors(caps, clip, coverage, &quadColors); // If there is a constant color after analysis, that means all of the quads should be set // to the same color (even if they started out with different colors). SkPMColor4f colorOverride; diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp index 68b15bc849..154a03923c 100644 --- a/src/gpu/ops/GrLatticeOp.cpp +++ b/src/gpu/ops/GrLatticeOp.cpp @@ -193,12 +193,12 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { auto opaque = fPatches[0].fColor.isOpaque() && GrPixelConfigIsOpaque(fProxy->config()) ? GrProcessorAnalysisColor::Opaque::kYes : GrProcessorAnalysisColor::Opaque::kNo; auto analysisColor = GrProcessorAnalysisColor(opaque); - auto result = fHelper.xpRequiresDstTexture( + auto result = fHelper.finalizeProcessors( caps, clip, GrProcessorAnalysisCoverage::kNone, &analysisColor); analysisColor.isConstant(&fPatches[0].fColor); return result; diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp index 7e2a9c807f..feeef4f6eb 100644 --- a/src/gpu/ops/GrOvalOpFactory.cpp +++ b/src/gpu/ops/GrOvalOpFactory.cpp @@ -1146,10 +1146,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fCircles.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -1472,10 +1472,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fCircles.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -1751,10 +1751,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fEllipses.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -1972,10 +1972,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fEllipses.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -2287,10 +2287,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fRRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -2622,10 +2622,10 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkPMColor4f* color = &fRRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - color); + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp index 356f3a7fef..e57b62bd90 100644 --- a/src/gpu/ops/GrRegionOp.cpp +++ b/src/gpu/ops/GrRegionOp.cpp @@ -86,9 +86,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, - &fRegions[0].fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kNone, + &fRegions[0].fColor); } private: diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp index f3444ef108..c7ef699cb5 100644 --- a/src/gpu/ops/GrShadowRRectOp.cpp +++ b/src/gpu/ops/GrShadowRRectOp.cpp @@ -255,8 +255,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } private: diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp index f8a7763971..446d313aa0 100644 --- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp +++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp @@ -69,7 +69,7 @@ bool GrSimpleMeshDrawOpHelper::isCompatible(const GrSimpleMeshDrawOpHelper& that return result; } -GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( +GrProcessorSet::Analysis GrSimpleMeshDrawOpHelper::finalizeProcessors( const GrCaps& caps, const GrAppliedClip* clip, GrProcessorAnalysisCoverage geometryCoverage, GrProcessorAnalysisColor* geometryColor) { SkDEBUGCODE(fDidAnalysis = true); @@ -94,15 +94,14 @@ GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( fRequiresDstTexture = analysis.requiresDstTexture(); fUsesLocalCoords = analysis.usesLocalCoords(); fCompatibleWithAlphaAsCoveage = analysis.isCompatibleWithCoverageAsAlpha(); - return analysis.requiresDstTexture() ? GrDrawOp::RequiresDstTexture::kYes - : GrDrawOp::RequiresDstTexture::kNo; + return analysis; } -GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( +GrProcessorSet::Analysis GrSimpleMeshDrawOpHelper::finalizeProcessors( const GrCaps& caps, const GrAppliedClip* clip, GrProcessorAnalysisCoverage geometryCoverage, SkPMColor4f* geometryColor) { GrProcessorAnalysisColor color = *geometryColor; - auto result = this->xpRequiresDstTexture(caps, clip, geometryCoverage, &color); + auto result = this->finalizeProcessors(caps, clip, geometryCoverage, &color); color.isConstant(geometryColor); return result; } diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h index 25cdb86076..88f56e6b2e 100644 --- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h +++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h @@ -68,18 +68,18 @@ public: * this may be set to a known color in which case the op must output this * color from its geometry processor instead. */ - GrDrawOp::RequiresDstTexture xpRequiresDstTexture(const GrCaps& caps, const GrAppliedClip* clip, - GrProcessorAnalysisCoverage geometryCoverage, - GrProcessorAnalysisColor* geometryColor); + GrProcessorSet::Analysis finalizeProcessors(const GrCaps& caps, const GrAppliedClip*, + GrProcessorAnalysisCoverage geometryCoverage, + GrProcessorAnalysisColor* geometryColor); /** * Version of above that can be used by ops that have a constant color geometry processor * output. The op passes this color as 'geometryColor' and after return if 'geometryColor' has * changed the op must override its geometry processor color output with the new color. */ - GrDrawOp::RequiresDstTexture xpRequiresDstTexture(const GrCaps&, const GrAppliedClip*, - GrProcessorAnalysisCoverage geometryCoverage, - SkPMColor4f* geometryColor); + GrProcessorSet::Analysis finalizeProcessors(const GrCaps&, const GrAppliedClip*, + GrProcessorAnalysisCoverage geometryCoverage, + SkPMColor4f* geometryColor); bool isTrivial() const { return fProcessors == nullptr; @@ -173,7 +173,7 @@ public: using GrSimpleMeshDrawOpHelper::aaType; using GrSimpleMeshDrawOpHelper::setAAType; using GrSimpleMeshDrawOpHelper::isTrivial; - using GrSimpleMeshDrawOpHelper::xpRequiresDstTexture; + using GrSimpleMeshDrawOpHelper::finalizeProcessors; using GrSimpleMeshDrawOpHelper::usesLocalCoords; using GrSimpleMeshDrawOpHelper::compatibleWithAlphaAsCoverage; diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp index acb82af450..ea27e7b9ad 100644 --- a/src/gpu/ops/GrSmallPathRenderer.cpp +++ b/src/gpu/ops/GrSmallPathRenderer.cpp @@ -297,9 +297,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - &fShapes.front().fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fShapes.front().fColor); } private: diff --git a/src/gpu/ops/GrStrokeRectOp.cpp b/src/gpu/ops/GrStrokeRectOp.cpp index 250c46ba59..541c8a532a 100644 --- a/src/gpu/ops/GrStrokeRectOp.cpp +++ b/src/gpu/ops/GrStrokeRectOp.cpp @@ -162,9 +162,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, - &fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kNone, &fColor); } private: @@ -405,9 +404,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { - return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, - &fRects.back().fColor); + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.finalizeProcessors(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fRects.back().fColor); } private: diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp index 39031e2d2d..3690c7c6e6 100644 --- a/src/gpu/ops/GrTessellatingPathRenderer.cpp +++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp @@ -224,11 +224,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage coverage = fAntiAlias ? GrProcessorAnalysisCoverage::kSingleChannel : GrProcessorAnalysisCoverage::kNone; - return fHelper.xpRequiresDstTexture(caps, clip, coverage, &fColor); + return fHelper.finalizeProcessors(caps, clip, coverage, &fColor); } private: diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp index 1e49f5fcf0..e83b43589f 100644 --- a/src/gpu/ops/GrTextureOp.cpp +++ b/src/gpu/ops/GrTextureOp.cpp @@ -186,14 +186,14 @@ public: } #endif - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkASSERT(!fFinalized); fFinalized = true; for (unsigned p = 0; p < fProxyCnt; ++p) { fProxies[p].fProxy->addPendingRead(); fProxies[p].fProxy->unref(); } - return RequiresDstTexture::kNo; + return GrProcessorSet::EmptySetAnalysis(); } FixedFunctionFlags fixedFunctionFlags() const override { diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp index 93b7983a72..3648514071 100644 --- a/tests/GrMeshTest.cpp +++ b/tests/GrMeshTest.cpp @@ -280,8 +280,8 @@ private: const char* name() const override { return "GrMeshTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* state, const SkRect& chainBounds) override { diff --git a/tests/GrPipelineDynamicStateTest.cpp b/tests/GrPipelineDynamicStateTest.cpp index bd57141dbf..c5044811a9 100644 --- a/tests/GrPipelineDynamicStateTest.cpp +++ b/tests/GrPipelineDynamicStateTest.cpp @@ -131,8 +131,8 @@ private: const char* name() const override { return "GrPipelineDynamicStateTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* state, const SkRect& chainBounds) override { diff --git a/tests/LazyProxyTest.cpp b/tests/LazyProxyTest.cpp index eb2520d114..88bfd9a695 100644 --- a/tests/LazyProxyTest.cpp +++ b/tests/LazyProxyTest.cpp @@ -108,8 +108,8 @@ public: const char* name() const override { return "LazyProxyTest::Op"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} @@ -339,8 +339,8 @@ private: const char* name() const override { return "LazyFailedInstantiationTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* state, const SkRect& chainBounds) override { @@ -414,8 +414,8 @@ private: const char* name() const override { return "LazyDeinstantiateTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } void onPrepare(GrOpFlushState*) override {} void onExecute(GrOpFlushState* state, const SkRect& chainBounds) override {} diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp index 805be6a855..d23b04702c 100644 --- a/tests/OnFlushCallbackTest.cpp +++ b/tests/OnFlushCallbackTest.cpp @@ -72,14 +72,14 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip*) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip*) override { // Set the color to unknown because the subclass may change the color later. GrProcessorAnalysisColor gpColor; gpColor.setToUnknown(); // We ignore the clip so pass this rather than the GrAppliedClip param. static GrAppliedClip kNoClip; - return fHelper.xpRequiresDstTexture(caps, &kNoClip, GrProcessorAnalysisCoverage::kNone, - &gpColor); + return fHelper.finalizeProcessors(caps, &kNoClip, GrProcessorAnalysisCoverage::kNone, + &gpColor); } protected: diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp index 268927e51d..7f7d8cdb3c 100644 --- a/tests/PrimitiveProcessorTest.cpp +++ b/tests/PrimitiveProcessorTest.cpp @@ -42,8 +42,8 @@ public: return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { - return RequiresDstTexture::kNo; + GrProcessorSet::Analysis finalize(const GrCaps&, const GrAppliedClip*) override { + return GrProcessorSet::EmptySetAnalysis(); } private: diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp index 33350154c4..dde1f11ac5 100644 --- a/tests/ProcessorTest.cpp +++ b/tests/ProcessorTest.cpp @@ -45,12 +45,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + GrProcessorSet::Analysis finalize(const GrCaps& caps, const GrAppliedClip* clip) override { static constexpr GrProcessorAnalysisColor kUnknownColor; SkPMColor4f overrideColor; - fProcessors.finalize(kUnknownColor, GrProcessorAnalysisCoverage::kNone, clip, false, caps, - &overrideColor); - return RequiresDstTexture::kNo; + return fProcessors.finalize(kUnknownColor, GrProcessorAnalysisCoverage::kNone, clip, false, + caps, &overrideColor); } private: |