Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Unified Diff: src/core/SkDraw.cpp

Issue 183683010: fix the error that path is inversed for stroke and strokeAndFill styles (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix the error when path inversed for StrokeAndFill style Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/core/SkDraw.cpp
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 7eb0be6b6b229a04ece584a747e5bdfaeecebd79..517c800cb43364e65378a09f633c15f98ff55aa1 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -1118,6 +1118,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;
« no previous file with comments | « src/core/SkCanvas.cpp ('k') | src/gpu/GrContext.cpp » ('j') | src/gpu/GrContext.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698