retool without shapes, which are broken/experimental



git-svn-id: http://skia.googlecode.com/svn/trunk@1436 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index d3f1882..bba997f 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -1,32 +1,29 @@
 #include "gm.h"
-#include "SkPicture.h"
-#include "SkRectShape.h"
 #include "SkBlurDrawLooper.h"
 
 namespace skiagm {
 
 ///////////////////////////////////////////////////////////////////////////////
 
-class ShadowsGM : public GM {
+static void setup(SkPaint* paint, SkColor c, SkScalar strokeWidth) {
+    paint->setColor(c);
+    if (strokeWidth < 0) {
+        paint->setStyle(SkPaint::kFill_Style);
+    } else {
+        paint->setStyle(SkPaint::kStroke_Style);
+        paint->setStrokeWidth(strokeWidth);
+    }
+}
 
+class ShadowsGM : public GM {
 public:
     SkPath fCirclePath;
-    SkPaint fPaint;
-    SkRectShape fRectShape;
+    SkRect fRect;
+
     ShadowsGM() {
         fCirclePath.addCircle(SkIntToScalar(20), SkIntToScalar(20), SkIntToScalar(10) );
-    fPaint.setStrokeWidth(SkIntToScalar(4));
-    fPaint.setAntiAlias(true);
-    fPaint.setColor(0xFF00FF00);
-    fPaint.setStyle(SkPaint::kStroke_Style); 
-    SkRect rect;
-    rect.set(SkIntToScalar(10), SkIntToScalar(10),
-             SkIntToScalar(30), SkIntToScalar(30));
-    fRectShape.setRect(rect);
-    fRectShape.paint().setColor(SK_ColorRED);
-    }
-
-    virtual ~ShadowsGM() {
+        fRect.set(SkIntToScalar(10), SkIntToScalar(10),
+                  SkIntToScalar(30), SkIntToScalar(30));
     }
 
 protected:
@@ -80,15 +77,28 @@
                               SkBlurDrawLooper::kHighQuality_BlurFlag  );
     SkAutoUnref aurL4(shadowLoopers[4]);
 
-    for (int looper = 0; looper < 5; looper ++)
-    {
-        fRectShape.paint().setLooper(shadowLoopers[looper]);
-        canvas->resetMatrix();
-        canvas->translate(SkIntToScalar(looper*40), SkIntToScalar(0));
-        canvas->drawShape(&fRectShape);
-        fPaint.setLooper(shadowLoopers[looper]); 
+    static const struct {
+        SkColor fColor;
+        SkScalar fStrokeWidth;
+    } gRec[] = {
+        { SK_ColorRED,      -SK_Scalar1 },
+        { SK_ColorGREEN,    SkIntToScalar(4) },
+    };
+
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    for (size_t i = 0; i < SK_ARRAY_COUNT(shadowLoopers); ++i) {
+        SkAutoCanvasRestore acr(canvas, true);
+
+        paint.setLooper(shadowLoopers[i]);
+
+        canvas->translate(SkIntToScalar(i*40), SkIntToScalar(0));
+        setup(&paint, gRec[0].fColor, gRec[0].fStrokeWidth);
+        canvas->drawRect(fRect, paint);
+
         canvas->translate(SkIntToScalar(0), SkIntToScalar(40));
-        canvas->drawPath(fCirclePath, fPaint);
+        setup(&paint, gRec[1].fColor, gRec[1].fStrokeWidth);
+        canvas->drawPath(fCirclePath, paint);
     }
 }