Index: src/gpu/GrShape.cpp |
diff --git a/src/gpu/GrShape.cpp b/src/gpu/GrShape.cpp |
index 698ff48373cdf039c8ca81be298af885824140fa..65c982571d48bf7110bcce1a2d91883402703655 100644 |
--- a/src/gpu/GrShape.cpp |
+++ b/src/gpu/GrShape.cpp |
@@ -403,6 +403,16 @@ void GrShape::attemptToSimplifyRRect() { |
// Dashing ignores the inverseness (currently). skbug.com/5421 |
fRRectData.fInverted = false; |
} |
+ // Turn a stroke-and-filled miter rect into a filled rect. TODO: more rrect stroke shortcuts. |
+ if (!fStyle.hasPathEffect() && |
+ fStyle.strokeRec().getStyle() == SkStrokeRec::kStrokeAndFill_Style && |
+ fStyle.strokeRec().getJoin() == SkPaint::kMiter_Join && |
+ fStyle.strokeRec().getMiter() >= SK_ScalarSqrt2 && |
+ fRRectData.fRRect.isRect()) { |
+ SkScalar r = fStyle.strokeRec().getWidth() / 2; |
+ fRRectData.fRRect = SkRRect::MakeRect(fRRectData.fRRect.rect().makeOutset(r, r)); |
+ fStyle = GrStyle::SimpleFill(); |
+ } |
} |
void GrShape::attemptToSimplifyLine() { |