diff options
Diffstat (limited to 'src/gpu/batches/GrDashLinePathRenderer.cpp')
-rw-r--r-- | src/gpu/batches/GrDashLinePathRenderer.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/gpu/batches/GrDashLinePathRenderer.cpp b/src/gpu/batches/GrDashLinePathRenderer.cpp index d2a420d4be..0c00f18816 100644 --- a/src/gpu/batches/GrDashLinePathRenderer.cpp +++ b/src/gpu/batches/GrDashLinePathRenderer.cpp @@ -26,16 +26,18 @@ bool GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const { bool GrDashLinePathRenderer::onDrawPath(const DrawPathArgs& args) { GR_AUDIT_TRAIL_AUTO_FRAME(args.fRenderTargetContext->auditTrail(), "GrDashLinePathRenderer::onDrawPath"); - bool useHWAA = args.fRenderTargetContext->isUnifiedMultisampled(); - GrDashingEffect::AAMode aaMode; - if (useHWAA) { - // We ignore args.fAntiAlias here and force anti aliasing when using MSAA. Otherwise, - // we can wind up with external edges antialiased and internal edges unantialiased. - aaMode = GrDashingEffect::AAMode::kCoverageWithMSAA; - } else if (args.fAntiAlias) { - aaMode = GrDashingEffect::AAMode::kCoverage; - } else { - aaMode = GrDashingEffect::AAMode::kNone; + GrDashingEffect::AAMode aaMode = GrDashingEffect::AAMode::kNone; + switch (args.fAAType) { + case GrAAType::kNone: + break; + case GrAAType::kCoverage: + aaMode = GrDashingEffect::AAMode::kCoverage; + break; + case GrAAType::kHW: + // In this mode we will use aa between dashes but the outer border uses MSAA. Otherwise, + // we can wind up with external edges antialiased and internal edges unantialiased. + aaMode = GrDashingEffect::AAMode::kCoverageWithMSAA; + break; } SkPoint pts[2]; SkAssertResult(args.fShape->asLine(pts, nullptr)); @@ -48,7 +50,7 @@ bool GrDashLinePathRenderer::onDrawPath(const DrawPathArgs& args) { return false; } - GrPipelineBuilder pipelineBuilder(*args.fPaint, useHWAA); + GrPipelineBuilder pipelineBuilder(*args.fPaint, args.fAAType); pipelineBuilder.setUserStencil(args.fUserStencilSettings); args.fRenderTargetContext->addDrawOp(pipelineBuilder, *args.fClip, batch.get()); |