Index: src/core/SkClipStack.cpp |
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp |
index 863dc9a387d1cb2fb69094ec320e0317e85e8fee..515596a9693451f3a8bc05b932405ef20ac975b4 100644 |
--- a/src/core/SkClipStack.cpp |
+++ b/src/core/SkClipStack.cpp |
@@ -416,6 +416,19 @@ |
case kEmpty_Type: |
SkDEBUGFAIL("We shouldn't get here with an empty element."); |
break; |
+ } |
+ |
+ if (!fDoAA) { |
+ // Here we mimic a non-anti-aliased scanline system. If there is |
+ // no anti-aliasing we can integerize the bounding box to exclude |
+ // fractional parts that won't be rendered. |
+ // Note: the left edge is handled slightly differently below. We |
+ // are a bit more generous in the rounding since we don't want to |
+ // risk missing the left pixels when fLeft is very close to .5 |
+ fFiniteBound.set(SkScalarFloorToScalar(fFiniteBound.fLeft+0.45f), |
+ SkScalarRoundToScalar(fFiniteBound.fTop), |
+ SkScalarRoundToScalar(fFiniteBound.fRight), |
+ SkScalarRoundToScalar(fFiniteBound.fBottom)); |
} |
// Now determine the previous Element's bound information taking into |