aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/batches/GrDashLinePathRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/batches/GrDashLinePathRenderer.cpp')
-rw-r--r--src/gpu/batches/GrDashLinePathRenderer.cpp24
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());