if we are extending past our clip in antihairlines, don't draw that last
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 12 Mar 2012 20:26:17 +0000 (20:26 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 12 Mar 2012 20:26:17 +0000 (20:26 +0000)
row/col (setting its scale to 0), so we don't violate the clip-rule and
possibly double-draw the last pixel.

git-svn-id: http://skia.googlecode.com/svn/trunk@3366 2bbb7eff-a529-9590-31e7-b0007b416f81

src/core/SkScan_Antihair.cpp

index 3b28634..8084d0c 100644 (file)
@@ -271,9 +271,9 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
                 istart = clip->fLeft;
                 scaleStart = 64;
             }
-            if (istop > clip->fRight) {
+            if (istop >= clip->fRight) {
                 istop = clip->fRight;
-                scaleStop = 64;
+                scaleStop = 0;  // so we don't draw this last column
             }
             SkASSERT(istart <= istop);
             if (istart == istop) {
@@ -340,9 +340,9 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
                 istart = clip->fTop;
                 scaleStart = 64;
             }
-            if (istop > clip->fBottom) {
+            if (istop >= clip->fBottom) {
                 istop = clip->fBottom;
-                scaleStop = 64;
+                scaleStop = 0;  // so we don't draw this last row
             }
             SkASSERT(istart <= istop);
             if (istart == istop)