Index: src/core/SkDraw.cpp |
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp |
index c4f5f74eefb93ea0ca539e28b079d4e4125c4149..ee2e1125ea2003603cd8e95073d5e0c963e7e2dd 100644 |
--- a/src/core/SkDraw.cpp |
+++ b/src/core/SkDraw.cpp |
@@ -1119,6 +1119,13 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint, |
SkAutoBlitterChoose blitter(*fBitmap, *fMatrix, *paint, drawCoverage); |
+ // make sure the path will not be inverse-stroked. hairlineStroke + fill = fill, |
+ // they can be inverse-filled. |
+ if (devPathPtr->isInverseFillType() && (SkPaint::kStroke_Style == paint->getStyle() || |
+ (SkPaint::kStrokeAndFill_Style == paint->getStyle() && paint->getStrokeWidth() > 0))) { |
+ devPathPtr->toggleInverseFillType(); |
+ } |
+ |
if (paint->getMaskFilter()) { |
SkPaint::Style style = doFill ? SkPaint::kFill_Style : |
SkPaint::kStroke_Style; |