diff options
author | 2017-03-27 13:09:36 -0400 | |
---|---|---|
committer | 2017-03-27 17:45:29 +0000 | |
commit | c0b642ca48d58416409e555549434066f09692b7 (patch) | |
tree | 42de3fb562c64c5bd22f9f7622ba8ae699ad3e08 /src/gpu/ops | |
parent | 88f9c1eff96a12cfa42db5c238ed42623762d90c (diff) |
Split GrPipelineInput into separate color and coverage types, the latter of which is just an enum.
Assign names that indicate that they aren't just for the input phase since I plan to use them at the boundary between FPs and XPs as well.
Renamed GrProcOptInfo to GrColorFragmentProcessorAnalysis. This is now only used on the color side and the new name seems clearer to me.
Change GrMeshDrawOp::getFragmentProcessorAnalysisInputs to use the new color/coverage types directly rather than a class that has been reduced to simply bundling them together.
Change-Id: If93bae74c9d590486eecdf63f302418c96deab65
Reviewed-on: https://skia-review.googlesource.com/10161
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/ops')
26 files changed, 126 insertions, 110 deletions
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp index e316fecc5f..79259b4aea 100644 --- a/src/gpu/ops/GrAAConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp @@ -747,9 +747,10 @@ private: this->setTransformedBounds(path.getBounds(), viewMatrix, HasAABloat::kYes, IsZeroArea::kNo); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrAAFillRectOp.cpp b/src/gpu/ops/GrAAFillRectOp.cpp index 850a3c9739..c6aadb92ed 100644 --- a/src/gpu/ops/GrAAFillRectOp.cpp +++ b/src/gpu/ops/GrAAFillRectOp.cpp @@ -203,9 +203,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(this->first()->color()); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(this->first()->color()); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void onPrepareDraws(Target* target) const override { diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp index ec2610400f..494138d7b0 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp @@ -710,9 +710,10 @@ private: IsZeroArea::kYes); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp index bdec758eaf..c9add9d3e9 100644 --- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp @@ -172,9 +172,10 @@ private: this->setTransformedBounds(bounds, viewMatrix, HasAABloat::kYes, IsZeroArea::kNo); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fPaths[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fPaths[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrAAStrokeRectOp.cpp b/src/gpu/ops/GrAAStrokeRectOp.cpp index b684782f23..89739e6116 100644 --- a/src/gpu/ops/GrAAStrokeRectOp.cpp +++ b/src/gpu/ops/GrAAStrokeRectOp.cpp @@ -174,9 +174,10 @@ public: private: AAStrokeRectOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fRects[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fRects[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations&) override; void onPrepareDraws(Target*) const override; diff --git a/src/gpu/ops/GrAnalyticRectOp.cpp b/src/gpu/ops/GrAnalyticRectOp.cpp index 45e20f0dbc..87922cc60c 100644 --- a/src/gpu/ops/GrAnalyticRectOp.cpp +++ b/src/gpu/ops/GrAnalyticRectOp.cpp @@ -269,9 +269,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp index e723bd01f3..f8c5443854 100644 --- a/src/gpu/ops/GrAtlasTextOp.cpp +++ b/src/gpu/ops/GrAtlasTextOp.cpp @@ -46,24 +46,25 @@ SkString GrAtlasTextOp::dumpInfo() const { return str; } -void GrAtlasTextOp::getFragmentProcessorAnalysisInputs( - FragmentProcessorAnalysisInputs* input) const { +void GrAtlasTextOp::getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const { if (kColorBitmapMask_MaskType == fMaskType) { - input->colorInput()->setToUnknown(); + color->setToUnknown(); } else { - input->colorInput()->setToConstant(fColor); + color->setToConstant(fColor); } switch (fMaskType) { case kGrayscaleDistanceField_MaskType: case kGrayscaleCoverageMask_MaskType: - input->coverageInput()->setToUnknown(); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; break; case kLCDCoverageMask_MaskType: case kLCDDistanceField_MaskType: - input->coverageInput()->setToLCDCoverage(); + *coverage = GrPipelineAnalysisCoverage::kLCD; break; case kColorBitmapMask_MaskType: - input->coverageInput()->setToSolidCoverage(); + *coverage = GrPipelineAnalysisCoverage::kNone; + break; } } diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h index 699503a8cb..8c08544f7b 100644 --- a/src/gpu/ops/GrAtlasTextOp.h +++ b/src/gpu/ops/GrAtlasTextOp.h @@ -99,7 +99,8 @@ public: SkString dumpInfo() const override; private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs*) const override; + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor*, + GrPipelineAnalysisCoverage*) const override; void applyPipelineOptimizations(const GrPipelineOptimizations&) override; struct FlushInfo { diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp index 1372a8b466..9dfacded7f 100644 --- a/src/gpu/ops/GrDashOp.cpp +++ b/src/gpu/ops/GrDashOp.cpp @@ -296,9 +296,10 @@ private: this->setTransformedBounds(bounds, combinedMatrix, aaBloat, zeroArea); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp index 300090d40c..62c9d45439 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.cpp +++ b/src/gpu/ops/GrDefaultPathRenderer.cpp @@ -132,9 +132,11 @@ private: isHairline ? IsZeroArea::kYes : IsZeroArea::kNo); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToScalar(this->coverage()); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = this->coverage() == 0xff ? GrPipelineAnalysisCoverage::kNone + : GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrDrawAtlasOp.h b/src/gpu/ops/GrDrawAtlasOp.h index cde345ed8e..a39a7a92f2 100644 --- a/src/gpu/ops/GrDrawAtlasOp.h +++ b/src/gpu/ops/GrDrawAtlasOp.h @@ -39,13 +39,14 @@ private: GrDrawAtlasOp(GrColor color, const SkMatrix& viewMatrix, int spriteCount, const SkRSXform* xforms, const SkRect* rects, const SkColor* colors); - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { if (this->hasColors()) { - input->colorInput()->setToUnknown(); + color->setToUnknown(); } else { - input->colorInput()->setToConstant(fGeoData[0].fColor); + color->setToConstant(fGeoData[0].fColor); } - input->coverageInput()->setToSolidCoverage(); + *coverage = GrPipelineAnalysisCoverage::kNone; } void onPrepareDraws(Target*) const override; diff --git a/src/gpu/ops/GrDrawPathOp.h b/src/gpu/ops/GrDrawPathOp.h index 70a543f3e5..b1ce2dfe5a 100644 --- a/src/gpu/ops/GrDrawPathOp.h +++ b/src/gpu/ops/GrDrawPathOp.h @@ -43,8 +43,8 @@ protected: GrPipelineOptimizations initPipeline(const GrOpFlushState&, GrPipeline*); const GrProcessorSet::FragmentProcessorAnalysis& doFragmentProcessorAnalysis( const GrCaps& caps, const GrAppliedClip* clip) { - fProcessorSet.analyzeAndEliminateFragmentProcessors(&fAnalysis, fAnalysis.inputColor(), - GrColor_WHITE, clip, caps); + fProcessorSet.analyzeAndEliminateFragmentProcessors( + &fAnalysis, fAnalysis.inputColor(), GrPipelineAnalysisCoverage::kNone, clip, caps); return fAnalysis; } const GrProcessorSet::FragmentProcessorAnalysis& fragmentProcessorAnalysis() const { diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp index 7c59d61e74..d8f91fe946 100644 --- a/src/gpu/ops/GrDrawVerticesOp.cpp +++ b/src/gpu/ops/GrDrawVerticesOp.cpp @@ -75,13 +75,13 @@ GrDrawVerticesOp::GrDrawVerticesOp(sk_sp<SkVertices> vertices, GrPrimitiveType p } void GrDrawVerticesOp::getFragmentProcessorAnalysisInputs( - FragmentProcessorAnalysisInputs* input) const { + GrPipelineAnalysisColor* color, GrPipelineAnalysisCoverage* coverage) const { if (this->requiresPerVertexColors()) { - input->colorInput()->setToUnknown(); + color->setToUnknown(); } else { - input->colorInput()->setToConstant(fMeshes[0].fColor); + color->setToConstant(fMeshes[0].fColor); } - input->coverageInput()->setToSolidCoverage(); + *coverage = GrPipelineAnalysisCoverage::kNone; } void GrDrawVerticesOp::applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) { diff --git a/src/gpu/ops/GrDrawVerticesOp.h b/src/gpu/ops/GrDrawVerticesOp.h index f881d61440..176b552e09 100644 --- a/src/gpu/ops/GrDrawVerticesOp.h +++ b/src/gpu/ops/GrDrawVerticesOp.h @@ -70,7 +70,8 @@ private: GrRenderTargetContext::ColorArrayType, const SkMatrix& viewMatrix, uint32_t flags = 0); - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override; + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override; void applyPipelineOptimizations(const GrPipelineOptimizations&) override; void onPrepareDraws(Target*) const override; diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp index a1b758409a..598a83907d 100644 --- a/src/gpu/ops/GrLatticeOp.cpp +++ b/src/gpu/ops/GrLatticeOp.cpp @@ -61,9 +61,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToUnknown(); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToUnknown(); + *coverage = GrPipelineAnalysisCoverage::kNone; } void applyPipelineOptimizations(const GrPipelineOptimizations& analysioptimizations) override { diff --git a/src/gpu/ops/GrMSAAPathRenderer.cpp b/src/gpu/ops/GrMSAAPathRenderer.cpp index ccbd0e2452..4e7f0361bf 100644 --- a/src/gpu/ops/GrMSAAPathRenderer.cpp +++ b/src/gpu/ops/GrMSAAPathRenderer.cpp @@ -259,9 +259,10 @@ private: this->setBounds(devBounds, HasAABloat::kNo, IsZeroArea::kNo); } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fPaths[0].fColor); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fPaths[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kNone; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrMeshDrawOp.h b/src/gpu/ops/GrMeshDrawOp.h index 4cf7c52672..cbf1f62eb7 100644 --- a/src/gpu/ops/GrMeshDrawOp.h +++ b/src/gpu/ops/GrMeshDrawOp.h @@ -33,9 +33,10 @@ public: const GrProcessorSet& processors, const GrAppliedClip* appliedClip, const GrCaps& caps) const { - FragmentProcessorAnalysisInputs input; - this->getFragmentProcessorAnalysisInputs(&input); - analysis->init(*input.colorInput(), *input.coverageInput(), processors, appliedClip, caps); + GrPipelineAnalysisColor inputColor; + GrPipelineAnalysisCoverage inputCoverage; + this->getFragmentProcessorAnalysisInputs(&inputColor, &inputCoverage); + analysis->init(inputColor, inputCoverage, processors, appliedClip, caps); } void initPipeline(const GrPipeline::InitArgs& args) { @@ -98,27 +99,13 @@ protected: return &fPipeline; } - /** - * This describes aspects of the GrPrimitiveProcessor produced by a GrDrawOp that are used in - * pipeline analysis. - */ - class FragmentProcessorAnalysisInputs { - public: - FragmentProcessorAnalysisInputs() = default; - GrPipelineInput* colorInput() { return &fColorInput; } - GrPipelineInput* coverageInput() { return &fCoverageInput; } - - private: - GrPipelineInput fColorInput; - GrPipelineInput fCoverageInput; - }; - private: /** * Provides information about the GrPrimitiveProccesor color and coverage outputs which become * inputs to the first color and coverage fragment processors. */ - virtual void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs*) const = 0; + virtual void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor*, + GrPipelineAnalysisCoverage*) const = 0; /** * After GrPipeline analysis is complete this is called so that the op can use the analysis diff --git a/src/gpu/ops/GrNonAAFillRectOp.cpp b/src/gpu/ops/GrNonAAFillRectOp.cpp index a83da15006..ce4b21fada 100644 --- a/src/gpu/ops/GrNonAAFillRectOp.cpp +++ b/src/gpu/ops/GrNonAAFillRectOp.cpp @@ -110,9 +110,10 @@ public: private: NonAAFillRectOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fRects[0].fColor); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fRects[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kNone; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrNonAAFillRectPerspectiveOp.cpp b/src/gpu/ops/GrNonAAFillRectPerspectiveOp.cpp index 26a646952f..324ea43ccf 100644 --- a/src/gpu/ops/GrNonAAFillRectPerspectiveOp.cpp +++ b/src/gpu/ops/GrNonAAFillRectPerspectiveOp.cpp @@ -130,9 +130,10 @@ public: private: NonAAFillRectPerspectiveOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fRects[0].fColor); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fRects[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kNone; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrNonAAStrokeRectOp.cpp b/src/gpu/ops/GrNonAAStrokeRectOp.cpp index a4de594a69..2f63d96327 100644 --- a/src/gpu/ops/GrNonAAStrokeRectOp.cpp +++ b/src/gpu/ops/GrNonAAStrokeRectOp.cpp @@ -102,9 +102,10 @@ public: private: NonAAStrokeRectOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kNone; } void onPrepareDraws(Target* target) const override { diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp index dbab985a6c..83e783ff2f 100644 --- a/src/gpu/ops/GrOvalOpFactory.cpp +++ b/src/gpu/ops/GrOvalOpFactory.cpp @@ -805,9 +805,10 @@ public: private: CircleOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { @@ -1256,9 +1257,10 @@ public: private: EllipseOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { @@ -1470,9 +1472,10 @@ public: private: DIEllipseOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { @@ -1785,9 +1788,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { @@ -2148,9 +2152,10 @@ public: private: EllipticalRRectOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp index 32cb8e4555..0ebec98e8f 100644 --- a/src/gpu/ops/GrRegionOp.cpp +++ b/src/gpu/ops/GrRegionOp.cpp @@ -77,9 +77,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fRegions[0].fColor); - input->coverageInput()->setToSolidCoverage(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fRegions[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kNone; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp index 1381bc93b7..bc1a4cca0a 100644 --- a/src/gpu/ops/GrShadowRRectOp.cpp +++ b/src/gpu/ops/GrShadowRRectOp.cpp @@ -142,9 +142,10 @@ public: private: ShadowCircleOp() : INHERITED(ClassID()) {} - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fCircles[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fCircles[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { @@ -562,9 +563,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fGeoData[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fGeoData[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp index 94364a643b..8d3f7b73ef 100644 --- a/src/gpu/ops/GrSmallPathRenderer.cpp +++ b/src/gpu/ops/GrSmallPathRenderer.cpp @@ -199,9 +199,10 @@ private: } - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fShapes[0].fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fShapes[0].fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp index d1fd28adf3..914998878c 100644 --- a/src/gpu/ops/GrTessellatingPathRenderer.cpp +++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp @@ -180,9 +180,10 @@ public: } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { diff --git a/src/gpu/ops/GrTestMeshDrawOp.h b/src/gpu/ops/GrTestMeshDrawOp.h index 039f88d672..a4bf066a34 100644 --- a/src/gpu/ops/GrTestMeshDrawOp.h +++ b/src/gpu/ops/GrTestMeshDrawOp.h @@ -33,9 +33,10 @@ protected: bool usesLocalCoords() const { return fUsesLocalCoords; } private: - void getFragmentProcessorAnalysisInputs(FragmentProcessorAnalysisInputs* input) const override { - input->colorInput()->setToConstant(fColor); - input->coverageInput()->setToUnknown(); + void getFragmentProcessorAnalysisInputs(GrPipelineAnalysisColor* color, + GrPipelineAnalysisCoverage* coverage) const override { + color->setToConstant(fColor); + *coverage = GrPipelineAnalysisCoverage::kSingleChannel; } void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { |