Index: src/core/SkDraw.cpp |
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp |
index e1a49d39b4a582265dda15c430ffbf95578bc297..afa2c9dda95265f8f8fd5f0810681d2bfa3846b8 100644 |
--- a/src/core/SkDraw.cpp |
+++ b/src/core/SkDraw.cpp |
@@ -1132,9 +1132,23 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint, |
} |
} else { // hairline |
if (paint->isAntiAlias()) { |
+ if (SkPaint::kButt_Cap == paint->getStrokeCap()) { |
+ proc = SkScan::AntiHairPath; |
+ } else { |
+ proc = SkScan::AntiHairCapPath; |
+ } |
+#ifdef SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS |
proc = SkScan::AntiHairPath; |
+#endif |
} else { |
- proc = SkScan::HairPath; |
+ if (SkPaint::kButt_Cap == paint->getStrokeCap()) { |
+ proc = SkScan::HairPath; |
+ } else { |
+ proc = SkScan::HairCapPath; |
+ } |
+#ifdef SK_SUPPORT_LEGACY_HAIR_IGNORES_CAPS |
+ proc = SkScan::AntiHairPath; |
+#endif |
} |
} |
proc(*devPathPtr, *fRC, blitter); |