diff options
Diffstat (limited to 'core/SkDraw.cpp')
-rw-r--r-- | core/SkDraw.cpp | 7 |
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; |