diff options
Diffstat (limited to 'src/gpu/ops/GrNonAAStrokeRectOp.cpp')
-rw-r--r-- | src/gpu/ops/GrNonAAStrokeRectOp.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/src/gpu/ops/GrNonAAStrokeRectOp.cpp b/src/gpu/ops/GrNonAAStrokeRectOp.cpp index 065f08a9ee..09eb656f10 100644 --- a/src/gpu/ops/GrNonAAStrokeRectOp.cpp +++ b/src/gpu/ops/GrNonAAStrokeRectOp.cpp @@ -62,14 +62,6 @@ public: return string; } - void computePipelineOptimizations(GrInitInvariantOutput* color, - GrInitInvariantOutput* coverage, - GrBatchToXPOverrides* overrides) const override { - // When this is called on a batch, there is only one geometry bundle - color->setKnownFourComponents(fColor); - coverage->setKnownSingleComponent(0xff); - } - static sk_sp<GrDrawOp> Make(GrColor color, const SkMatrix& viewMatrix, const SkRect& rect, const SkStrokeRec& stroke, bool snapToPixelCenters) { if (!allowed_stroke(stroke)) { @@ -108,15 +100,21 @@ public: private: NonAAStrokeRectOp() : INHERITED(ClassID()) {} + void getPipelineAnalysisInput(GrPipelineAnalysisDrawOpInput* input) const override { + input->pipelineColorInput()->setKnownFourComponents(fColor); + input->pipelineCoverageInput()->setKnownSingleComponent(0xFF); + } + void onPrepareDraws(Target* target) const override { sk_sp<GrGeometryProcessor> gp; { using namespace GrDefaultGeoProcFactory; Color color(fColor); - Coverage coverage(fOverrides.readsCoverage() ? Coverage::kSolid_Type - : Coverage::kNone_Type); - LocalCoords localCoords(fOverrides.readsLocalCoords() ? LocalCoords::kUsePosition_Type - : LocalCoords::kUnused_Type); + Coverage coverage(fOptimizations.readsCoverage() ? Coverage::kSolid_Type + : Coverage::kNone_Type); + LocalCoords localCoords(fOptimizations.readsLocalCoords() + ? LocalCoords::kUsePosition_Type + : LocalCoords::kUnused_Type); gp = GrDefaultGeoProcFactory::Make(color, coverage, localCoords, fViewMatrix); } @@ -161,9 +159,9 @@ private: target->draw(gp.get(), mesh); } - void initBatchTracker(const GrXPOverridesForBatch& overrides) override { - overrides.getOverrideColorIfSet(&fColor); - fOverrides = overrides; + void applyPipelineOptimizations(const GrPipelineOptimizations& optimizations) override { + optimizations.getOverrideColorIfSet(&fColor); + fOptimizations = optimizations; } bool onCombineIfPossible(GrOp* t, const GrCaps&) override { @@ -176,8 +174,7 @@ private: SkMatrix fViewMatrix; SkRect fRect; SkScalar fStrokeWidth; - - GrXPOverridesForBatch fOverrides; + GrPipelineOptimizations fOptimizations; const static int kVertsPerHairlineRect = 5; const static int kVertsPerStrokeRect = 10; |