reenable fast stroked rects, now that we correctly handle non-square scale
also, degenerate non-antialias rectangles now draw properly



git-svn-id: http://skia.googlecode.com/svn/trunk@1049 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkScan_Antihair.cpp b/src/core/SkScan_Antihair.cpp
index dd8c3d2..ebd860b 100644
--- a/src/core/SkScan_Antihair.cpp
+++ b/src/core/SkScan_Antihair.cpp
@@ -755,17 +755,18 @@
     }
 }
 
-void SkScan::AntiFrameRect(const SkRect& r, SkScalar diameter,
+void SkScan::AntiFrameRect(const SkRect& r, const SkPoint& strokeSize,
                            const SkRegion* clip, SkBlitter* blitter) {
-    SkASSERT(diameter > 0);
+    SkASSERT(strokeSize.fX >= 0 && strokeSize.fY >= 0);
 
-    SkScalar radius = SkScalarHalf(diameter);
+    SkScalar rx = SkScalarHalf(strokeSize.fX);
+    SkScalar ry = SkScalarHalf(strokeSize.fY);
 
     // outset by the radius
-    FDot8 L = SkScalarToFDot8(r.fLeft - radius);
-    FDot8 T = SkScalarToFDot8(r.fTop - radius);
-    FDot8 R = SkScalarToFDot8(r.fRight + radius);
-    FDot8 B = SkScalarToFDot8(r.fBottom + radius);
+    FDot8 L = SkScalarToFDot8(r.fLeft - rx);
+    FDot8 T = SkScalarToFDot8(r.fTop - ry);
+    FDot8 R = SkScalarToFDot8(r.fRight + rx);
+    FDot8 B = SkScalarToFDot8(r.fBottom + ry);
 
     SkIRect outer;
     // set outer to the outer rect of the outer section
@@ -789,12 +790,13 @@
     outer.set(FDot8Ceil(L), FDot8Ceil(T), FDot8Floor(R), FDot8Floor(B));
 
     // in case we lost a bit with diameter/2
-    radius = diameter - radius;
+    rx = strokeSize.fX - rx;
+    ry = strokeSize.fY - ry;
     // inset by the radius
-    L = SkScalarToFDot8(r.fLeft + radius);
-    T = SkScalarToFDot8(r.fTop + radius);
-    R = SkScalarToFDot8(r.fRight - radius);
-    B = SkScalarToFDot8(r.fBottom - radius);
+    L = SkScalarToFDot8(r.fLeft + rx);
+    T = SkScalarToFDot8(r.fTop + ry);
+    R = SkScalarToFDot8(r.fRight - rx);
+    B = SkScalarToFDot8(r.fBottom - ry);
 
     if (L >= R || T >= B) {
         fillcheckrect(outer.fLeft, outer.fTop, outer.fRight, outer.fBottom,