Unify edge type enums across GrEffect subclasses that clip rendering to a geometry.

BUG=skia:
R=egdaniel@google.com, robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13674 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index 87e2d0a..aebf6fb 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -93,7 +93,21 @@
                 {rand.nextRangeF(0.f, w), rand.nextRangeF(0.f, h)},
                 {rand.nextRangeF(0.f, w), rand.nextRangeF(0.f, h)}
             };
-            for(int edgeType = kFillAA_GrBezierEdgeType; edgeType < 3; ++edgeType) {
+            for(int edgeType = 0; edgeType < kGrEffectEdgeTypeCnt; ++edgeType) {
+                SkAutoTUnref<GrEffectRef> effect;
+                {   // scope to contain GrTestTarget
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    if (NULL == tt.target()) {
+                        continue;
+                    }
+                    GrEffectEdgeType et = (GrEffectEdgeType)edgeType;
+                    effect.reset(GrCubicEffect::Create(et, *tt.target()->caps()));
+                    if (!effect) {
+                        continue;
+                    }
+                }
+
                 SkScalar x = SkScalarMul(col, w);
                 SkScalar y = SkScalarMul(row, h);
                 SkPoint controlPts[] = {
@@ -153,17 +167,10 @@
 
                     GrTestTarget tt;
                     context->getTestTarget(&tt);
-                    if (NULL == tt.target()) {
-                        continue;
-                    }
+                    SkASSERT(NULL != tt.target());
                     GrDrawState* drawState = tt.target()->drawState();
                     drawState->setVertexAttribs<kAttribs>(2);
 
-                    SkAutoTUnref<GrEffectRef> effect(GrCubicEffect::Create(
-                            GrBezierEdgeType(edgeType), *tt.target()->caps()));
-                    if (!effect) {
-                        continue;
-                    }
                     drawState->addCoverageEffect(effect, 1);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
@@ -245,7 +252,21 @@
                 {rand.nextRangeF(0.f, w), rand.nextRangeF(0.f, h)}
             };
             SkScalar weight = rand.nextRangeF(0.f, 2.f);
-            for(int edgeType = kFillAA_GrBezierEdgeType; edgeType < 3; ++edgeType) {
+            for(int edgeType = 0; edgeType < kGrEffectEdgeTypeCnt; ++edgeType) {
+                SkAutoTUnref<GrEffectRef> effect;
+                {   // scope to contain GrTestTarget
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    if (NULL == tt.target()) {
+                        continue;
+                    }
+                    GrEffectEdgeType et = (GrEffectEdgeType)edgeType;
+                    effect.reset(GrConicEffect::Create(et, *tt.target()->caps()));
+                    if (!effect) {
+                        continue;
+                    }
+                }
+
                 SkScalar x = SkScalarMul(col, w);
                 SkScalar y = SkScalarMul(row, h);
                 SkPoint controlPts[] = {
@@ -302,17 +323,10 @@
 
                     GrTestTarget tt;
                     context->getTestTarget(&tt);
-                    if (NULL == tt.target()) {
-                        continue;
-                    }
+                    SkASSERT(NULL != tt.target());
                     GrDrawState* drawState = tt.target()->drawState();
                     drawState->setVertexAttribs<kAttribs>(2);
 
-                    SkAutoTUnref<GrEffectRef> effect(GrConicEffect::Create(
-                            GrBezierEdgeType(edgeType), *tt.target()->caps()));
-                    if (!effect) {
-                        continue;
-                    }
                     drawState->addCoverageEffect(effect, 1);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
@@ -428,7 +442,21 @@
                 {rand.nextRangeF(0.f, w), rand.nextRangeF(0.f, h)},
                 {rand.nextRangeF(0.f, w), rand.nextRangeF(0.f, h)}
             };
-            for(int edgeType = kFillAA_GrBezierEdgeType; edgeType < 3; ++edgeType) {
+            for(int edgeType = 0; edgeType < kGrEffectEdgeTypeCnt; ++edgeType) {
+                SkAutoTUnref<GrEffectRef> effect;
+                {   // scope to contain GrTestTarget
+                    GrTestTarget tt;
+                    context->getTestTarget(&tt);
+                    if (NULL == tt.target()) {
+                        continue;
+                    }
+                    GrEffectEdgeType et = (GrEffectEdgeType)edgeType;
+                    effect.reset(GrQuadEffect::Create(et, *tt.target()->caps()));
+                    if (!effect) {
+                        continue;
+                    }
+                }
+
                 SkScalar x = SkScalarMul(col, w);
                 SkScalar y = SkScalarMul(row, h);
                 SkPoint controlPts[] = {
@@ -480,16 +508,10 @@
 
                     GrTestTarget tt;
                     context->getTestTarget(&tt);
-                    if (NULL == tt.target()) {
-                        continue;
-                    }
+                    SkASSERT(NULL != tt.target());
                     GrDrawState* drawState = tt.target()->drawState();
                     drawState->setVertexAttribs<kAttribs>(2);
-                    SkAutoTUnref<GrEffectRef> effect(GrQuadEffect::Create(
-                            GrBezierEdgeType(edgeType), *tt.target()->caps()));
-                    if (!effect) {
-                        continue;
-                    }
+
                     drawState->addCoverageEffect(effect, 1);
                     drawState->setRenderTarget(rt);
                     drawState->setColor(0xff000000);
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 9142ca9..ac8ec72 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -120,7 +120,7 @@
             const SkPath* path = iter.get();
             SkScalar x = 0;
 
-            for (int et = 0; et < GrConvexPolyEffect::kEdgeTypeCnt; ++et) {
+            for (int et = 0; et < kGrEffectEdgeTypeCnt; ++et) {
                 GrTestTarget tt;
                 context->getTestTarget(&tt);
                 if (NULL == tt.target()) {
@@ -135,11 +135,10 @@
                 m.setTranslate(x, y);
                 path->transform(m, &p);
 
-                GrConvexPolyEffect::EdgeType edgeType = (GrConvexPolyEffect::EdgeType) et;
+                GrEffectEdgeType edgeType = (GrEffectEdgeType) et;
                 SkAutoTUnref<GrEffectRef> effect(GrConvexPolyEffect::Create(edgeType, p));
                 if (!effect) {
-                    SkDEBUGFAIL("Couldn't create convex poly effect.");
-                    return;
+                    continue;
                 }
                 drawState->addCoverageEffect(effect, 1);
                 drawState->setIdentityViewMatrix();
@@ -179,7 +178,7 @@
 
             SkScalar x = 0;
 
-            for (int et = 0; et < GrConvexPolyEffect::kEdgeTypeCnt; ++et) {
+            for (int et = 0; et < kGrEffectEdgeTypeCnt; ++et) {
                 GrTestTarget tt;
                 context->getTestTarget(&tt);
                 if (NULL == tt.target()) {
@@ -188,11 +187,10 @@
                 }
                 SkRect rect = *iter.get();
                 rect.offset(x, y);
-                GrConvexPolyEffect::EdgeType edgeType = (GrConvexPolyEffect::EdgeType) et;
+                GrEffectEdgeType edgeType = (GrEffectEdgeType) et;
                 SkAutoTUnref<GrEffectRef> effect(GrConvexPolyEffect::Create(edgeType, rect));
                 if (!effect) {
-                    SkDEBUGFAIL("Couldn't create convex poly effect.");
-                    return;
+                    continue;
                 }
 
                 GrDrawState* drawState = tt.target()->drawState();
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index d92fb5a..7bc7c19 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -77,7 +77,7 @@
             return;
         }
         if (kEffect_Type == fType) {
-            numRRects *= GrRRectEffect::kEdgeTypeCnt;
+            numRRects *= kGrEffectEdgeTypeCnt;
         }
 #endif
 
@@ -111,8 +111,7 @@
 
                         SkRRect rrect = fRRects[rrectIdx];
                         rrect.offset(SkIntToScalar(x), SkIntToScalar(y));
-                        GrRRectEffect::EdgeType edgeType = (GrRRectEffect::EdgeType)
-                                                            (curRRect / kNumRRects);
+                        GrEffectEdgeType edgeType = (GrEffectEdgeType) (curRRect / kNumRRects);
                         SkAutoTUnref<GrEffectRef> effect(GrRRectEffect::Create(edgeType, rrect));
                         if (effect) {
                             drawState->addCoverageEffect(effect);