diff options
Diffstat (limited to 'src/gpu/batches/GrDefaultPathRenderer.cpp')
-rw-r--r-- | src/gpu/batches/GrDefaultPathRenderer.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/gpu/batches/GrDefaultPathRenderer.cpp b/src/gpu/batches/GrDefaultPathRenderer.cpp index 0b688c5305..f3f9e73155 100644 --- a/src/gpu/batches/GrDefaultPathRenderer.cpp +++ b/src/gpu/batches/GrDefaultPathRenderer.cpp @@ -424,13 +424,11 @@ private: bool GrDefaultPathRenderer::internalDrawPath(GrRenderTargetContext* renderTargetContext, const GrPaint& paint, - GrAAType aaType, const GrUserStencilSettings& userStencilSettings, const GrClip& clip, const SkMatrix& viewMatrix, const GrShape& shape, bool stencilOnly) { - SkASSERT(GrAAType::kCoverage != aaType); SkPath path; shape.asPath(&path); @@ -569,20 +567,23 @@ bool GrDefaultPathRenderer::internalDrawPath(GrRenderTargetContext* renderTarget &localMatrix)); SkASSERT(GrDrawFace::kBoth == drawFace[p]); - GrPipelineBuilder pipelineBuilder(paint, aaType); + GrPipelineBuilder pipelineBuilder(paint, renderTargetContext->mustUseHWAA(paint)); pipelineBuilder.setDrawFace(drawFace[p]); pipelineBuilder.setUserStencil(passes[p]); + renderTargetContext->addDrawOp(pipelineBuilder, clip, batch.get()); } else { sk_sp<GrDrawOp> batch(new DefaultPathBatch(paint.getColor(), path, srcSpaceTol, newCoverage, viewMatrix, isHairline, devBounds)); - GrPipelineBuilder pipelineBuilder(paint, aaType); + + GrPipelineBuilder pipelineBuilder(paint, renderTargetContext->mustUseHWAA(paint)); pipelineBuilder.setDrawFace(drawFace[p]); pipelineBuilder.setUserStencil(passes[p]); if (passCount > 1) { pipelineBuilder.setDisableColorXPFactory(); } + renderTargetContext->addDrawOp(pipelineBuilder, clip, batch.get()); } } @@ -590,8 +591,8 @@ bool GrDefaultPathRenderer::internalDrawPath(GrRenderTargetContext* renderTarget } bool GrDefaultPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { - // This can draw any path with any simple fill style but doesn't do coverage-based antialiasing. - return GrAAType::kCoverage != args.fAAType && + // this class can draw any path with any simple fill style but doesn't do any anti-aliasing. + return !args.fAntiAlias && (args.fShape->style().isSimpleFill() || IsStrokeHairlineOrEquivalent(args.fShape->style(), *args.fViewMatrix, nullptr)); } @@ -601,7 +602,6 @@ bool GrDefaultPathRenderer::onDrawPath(const DrawPathArgs& args) { "GrDefaultPathRenderer::onDrawPath"); return this->internalDrawPath(args.fRenderTargetContext, *args.fPaint, - args.fAAType, *args.fUserStencilSettings, *args.fClip, *args.fViewMatrix, @@ -616,10 +616,10 @@ void GrDefaultPathRenderer::onStencilPath(const StencilPathArgs& args) { GrPaint paint; paint.setXPFactory(GrDisableColorXPFactory::Make()); + paint.setAntiAlias(args.fIsAA); - this->internalDrawPath(args.fRenderTargetContext, paint, args.fAAType, - GrUserStencilSettings::kUnused, *args.fClip, *args.fViewMatrix, - *args.fShape, true); + this->internalDrawPath(args.fRenderTargetContext, paint, GrUserStencilSettings::kUnused, + *args.fClip, *args.fViewMatrix, *args.fShape, true); } /////////////////////////////////////////////////////////////////////////////////////////////////// |