Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index 830d06b2ebd31fe0c023748f9179c82ffc40cc5e..091c4a899e401595fe26c4fa7f5053391d02e2cd 100755 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -726,6 +726,11 @@ static void setStrokeRectStrip(SkPoint verts[10], SkRect rect, |
verts[9] = verts[1]; |
} |
+static inline bool is_irect(const SkRect& r) { |
+ return SkScalarIsInt(r.fLeft) && SkScalarIsInt(r.fTop) && |
+ SkScalarIsInt(r.fRight) && SkScalarIsInt(r.fBottom); |
+} |
+ |
static bool apply_aa_to_rect(GrDrawTarget* target, |
const SkRect& rect, |
SkScalar strokeWidth, |
@@ -759,6 +764,9 @@ static bool apply_aa_to_rect(GrDrawTarget* target, |
#endif |
combinedMatrix.mapRect(devBoundRect, rect); |
+ if (strokeWidth < 0) { |
+ return !is_irect(*devBoundRect); |
+ } |
return true; |
} |