Analytic rrect clip for cicular corners, radius >= 0.5

BUG=skia:2181
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/171413004

git-svn-id: http://skia.googlecode.com/svn/trunk@13498 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 299e8d8..9e07703 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -74,6 +74,11 @@
         fRRects[0].setRect(SkRect::MakeWH(kTileX-2, kTileY-2));
         fRRects[1].setOval(SkRect::MakeWH(kTileX-2, kTileY-2));
         fRRects[2].setRectXY(SkRect::MakeWH(kTileX-2, kTileY-2), 10, 10);
+        fRRects[3].setRectXY(SkRect::MakeWH(kTileX-2, kTileY-2), 10, 5);
+        // small circular corners are an interesting test case for gpu clipping
+        fRRects[4].setRectXY(SkRect::MakeWH(kTileX-2, kTileY-2), 1, 1);
+        fRRects[5].setRectXY(SkRect::MakeWH(kTileX-2, kTileY-2), 0.5f, 0.5f);
+        fRRects[6].setRectXY(SkRect::MakeWH(kTileX-2, kTileY-2), 0.2f, 0.2f);
 
         // The first complex case needs special handling since it is a square
         fRRects[kNumSimpleCases].setRectRadii(SkRect::MakeWH(kTileY-2, kTileY-2), gRadii[0]);
@@ -92,7 +97,7 @@
     static const int kTileX = 80;
     static const int kTileY = 40;
 
-    static const int kNumSimpleCases = 3;
+    static const int kNumSimpleCases = 7;
     static const int kNumComplexCases = 19;
     static const SkVector gRadii[kNumComplexCases][4];