diff options
Diffstat (limited to 'src/gpu/batches/GrAAHairLinePathRenderer.cpp')
-rw-r--r-- | src/gpu/batches/GrAAHairLinePathRenderer.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/gpu/batches/GrAAHairLinePathRenderer.cpp b/src/gpu/batches/GrAAHairLinePathRenderer.cpp index effd8c3b0f..db4bbdfdb3 100644 --- a/src/gpu/batches/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/batches/GrAAHairLinePathRenderer.cpp @@ -618,7 +618,12 @@ bool GrAAHairLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const return false; } - if (!IsStrokeHairlineOrEquivalent(*args.fStroke, *args.fViewMatrix, nullptr)) { + if (!IsStrokeHairlineOrEquivalent(*args.fStyle, *args.fViewMatrix, nullptr)) { + return false; + } + + // We don't currently handle dashing in this class though perhaps we should. + if (args.fStyle->pathEffect()) { return false; } @@ -939,11 +944,11 @@ void AAHairlineBatch::onPrepareDraws(Target* target) const { static GrDrawBatch* create_hairline_batch(GrColor color, const SkMatrix& viewMatrix, const SkPath& path, - const GrStrokeInfo& stroke, + const GrStyle& style, const SkIRect& devClipBounds) { SkScalar hairlineCoverage; uint8_t newCoverage = 0xff; - if (GrPathRenderer::IsStrokeHairlineOrEquivalent(stroke, viewMatrix, &hairlineCoverage)) { + if (GrPathRenderer::IsStrokeHairlineOrEquivalent(style, viewMatrix, &hairlineCoverage)) { newCoverage = SkScalarRoundToInt(hairlineCoverage * 0xff); } @@ -964,7 +969,7 @@ bool GrAAHairLinePathRenderer::onDrawPath(const DrawPathArgs& args) { args.fPipelineBuilder->clip().getConservativeBounds(rt->width(), rt->height(), &devClipBounds); SkAutoTUnref<GrDrawBatch> batch(create_hairline_batch(args.fColor, *args.fViewMatrix, *args.fPath, - *args.fStroke, devClipBounds)); + *args.fStyle, devClipBounds)); args.fTarget->drawBatch(*args.fPipelineBuilder, batch); return true; @@ -977,11 +982,10 @@ bool GrAAHairLinePathRenderer::onDrawPath(const DrawPathArgs& args) { DRAW_BATCH_TEST_DEFINE(AAHairlineBatch) { GrColor color = GrRandomColor(random); SkMatrix viewMatrix = GrTest::TestMatrix(random); - GrStrokeInfo stroke(SkStrokeRec::kHairline_InitStyle); SkPath path = GrTest::TestPath(random); SkIRect devClipBounds; devClipBounds.setEmpty(); - return create_hairline_batch(color, viewMatrix, path, stroke, devClipBounds); + return create_hairline_batch(color, viewMatrix, path, GrStyle::SimpleHairline(), devClipBounds); } #endif |