Index: src/core/SkDraw.cpp |
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp |
index e1a49d39b4a582265dda15c430ffbf95578bc297..6c7d38aee9eac9ae80110b13a2f4e0123e1ba969 100644 |
--- a/src/core/SkDraw.cpp |
+++ b/src/core/SkDraw.cpp |
@@ -1132,9 +1132,41 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint, |
} |
} else { // hairline |
if (paint->isAntiAlias()) { |
+ switch (paint->getStrokeCap()) { |
+ case SkPaint::kButt_Cap: |
+ proc = SkScan::AntiHairPath; |
+ break; |
+ case SkPaint::kSquare_Cap: |
+ proc = SkScan::AntiHairSquarePath; |
+ break; |
+ case SkPaint::kRound_Cap: |
+ proc = SkScan::AntiHairRoundPath; |
+ break; |
+ default: |
+ proc SK_INIT_TO_AVOID_WARNING; |
+ SkDEBUGFAIL("unknown paint cap type"); |
+ } |
+#ifdef SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS |
proc = SkScan::AntiHairPath; |
+#endif |
} else { |
+ switch (paint->getStrokeCap()) { |
+ case SkPaint::kButt_Cap: |
+ proc = SkScan::HairPath; |
+ break; |
+ case SkPaint::kSquare_Cap: |
+ proc = SkScan::HairSquarePath; |
+ break; |
+ case SkPaint::kRound_Cap: |
+ proc = SkScan::HairRoundPath; |
+ break; |
+ default: |
+ proc SK_INIT_TO_AVOID_WARNING; |
+ SkDEBUGFAIL("unknown paint cap type"); |
+ } |
+#ifdef SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS |
proc = SkScan::HairPath; |
+#endif |
} |
} |
proc(*devPathPtr, *fRC, blitter); |