summaryrefslogtreecommitdiff
path: root/core/SkDraw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/SkDraw.cpp')
-rw-r--r--core/SkDraw.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/SkDraw.cpp b/core/SkDraw.cpp
index c4f5f74e..ee2e1125 100644
--- a/core/SkDraw.cpp
+++ b/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;