update srcmode GM to include aa/bw and gradients
add 'G' key to sampleapp, to toggle showing the GM's bounds as an overlay



git-svn-id: http://skia.googlecode.com/svn/trunk@6431 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/GMSampleView.h b/samplecode/GMSampleView.h
index 0b224a5..5c7729a 100644
--- a/samplecode/GMSampleView.h
+++ b/samplecode/GMSampleView.h
@@ -15,16 +15,23 @@
 
 class GMSampleView : public SampleView {
 private:
+    bool fShowSize;
     typedef skiagm::GM GM;
 
 public:
     GMSampleView(GM* gm)
-    : fGM(gm) {}
+    : fGM(gm), fShowSize(false) {}
 
     virtual ~GMSampleView() {
         delete fGM;
     }
 
+    static SkEvent* NewShowSizeEvt(bool doShowSize) {
+        SkEvent* evt = SkNEW_ARGS(SkEvent, ("GMSampleView::showSize"));
+        evt->setFast32(doShowSize);
+        return evt;
+    }
+
 protected:
     virtual bool onQuery(SkEvent* evt) {
         if (SampleCode::TitleQ(*evt)) {
@@ -35,9 +42,28 @@
         }
         return this->INHERITED::onQuery(evt);
     }
+    
+    virtual bool onEvent(const SkEvent& evt) SK_OVERRIDE {
+        if (evt.isType("GMSampleView::showSize")) {
+            fShowSize = SkToBool(evt.getFast32());
+            return true;
+        }
+        return this->INHERITED::onEvent(evt);
+    }
 
     virtual void onDrawContent(SkCanvas* canvas) {
-        fGM->drawContent(canvas);
+        {
+            SkAutoCanvasRestore acr(canvas, fShowSize);
+            fGM->drawContent(canvas);
+        }
+        if (fShowSize) {
+            SkISize size = fGM->getISize();
+            SkRect r = SkRect::MakeWH(SkIntToScalar(size.width()),
+                                      SkIntToScalar(size.height()));
+            SkPaint paint;
+            paint.setColor(0x40FF8833);
+            canvas->drawRect(r, paint);
+        }
     }
 
     virtual void onDrawBackground(SkCanvas* canvas) {
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 5ff1b4e..c94a772 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -92,6 +92,8 @@
 
 static SampleWindow* gSampleWindow;
 
+static bool gShowGMBounds;
+
 static void postEventToSink(SkEvent* evt, SkEventSink* sink) {
     evt->setTargetID(sink->getSinkID())->post();
 }
@@ -1731,6 +1733,8 @@
 }
 #endif
 
+//extern bool gIgnoreFastBlurRect;
+
 bool SampleWindow::onHandleChar(SkUnichar uni) {
     {
         SkView* view = curr_view(this);
@@ -1773,6 +1777,11 @@
     }
 
     switch (uni) {
+        case 'B':
+//            gIgnoreFastBlurRect = !gIgnoreFastBlurRect;
+            this->inval(NULL);
+            break;
+
         case 'f':
             // only
             toggleFPS();
@@ -1781,6 +1790,12 @@
             fRequestGrabImage = true;
             this->inval(NULL);
             break;
+        case 'G':
+            gShowGMBounds = !gShowGMBounds;
+            postEventToSink(GMSampleView::NewShowSizeEvt(gShowGMBounds),
+                            curr_view(this));
+            this->inval(NULL);
+            break;
         case 'i':
             this->zoomIn();
             break;