add 'p' to toggle on/off testing the pipe



git-svn-id: http://skia.googlecode.com/svn/trunk@1317 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index bbde414..9b35be8 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1039,6 +1039,7 @@
             break;
         case 'p':
             fUsePipe = !fUsePipe;
+            this->updateTitle();
             this->inval(NULL);
             break;
         case 'r':
@@ -1283,6 +1284,12 @@
     if (fMeasureFPS) {
         title.appendf(" %4d ms", fMeasureFPS_Time);
     }
+    if (fUsePipe && SampleView::IsSampleView(view)) {
+        title.prepend("<P> ");
+    }
+    if (SampleView::IsSampleView(view)) {
+        title.prepend("! ");
+    }
 
     this->setTitle(title.c_str());
 }
@@ -1321,9 +1328,15 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
+static const char is_sample_view_tag[] = "sample-is-sample-view";
 static const char repeat_count_tag[] = "sample-set-repeat-count";
 static const char set_use_pipe_tag[] = "sample-set-use-pipe";
 
+bool SampleView::IsSampleView(SkView* view) {
+    SkEvent evt(is_sample_view_tag);
+    return view->doQuery(&evt);
+}
+
 bool SampleView::SetRepeatDraw(SkView* view, int count) {
     SkEvent evt(repeat_count_tag);
     evt.setFast32(count);
@@ -1349,6 +1362,9 @@
 }
 
 bool SampleView::onQuery(SkEvent* evt) {
+    if (evt->isType(is_sample_view_tag)) {
+        return true;
+    }
     return this->INHERITED::onQuery(evt);
 }
 
diff --git a/samplecode/SampleCode.h b/samplecode/SampleCode.h
index de40d1e..c42ee25 100644
--- a/samplecode/SampleCode.h
+++ b/samplecode/SampleCode.h
@@ -55,6 +55,7 @@
 
     void setBGColor(SkColor color) { fBGColor = color; }
 
+    static bool IsSampleView(SkView*);
     static bool SetRepeatDraw(SkView*, int count);
     static bool SetUsePipe(SkView*, bool);
 
diff --git a/samplecode/SampleFilter.cpp b/samplecode/SampleFilter.cpp
index 244fe51..a9089fa 100644
--- a/samplecode/SampleFilter.cpp
+++ b/samplecode/SampleFilter.cpp
@@ -36,17 +36,17 @@
     canvas->drawBitmap(bm, x, y, paint);
     return SkIntToScalar(bm.width()) * 5/4;
 #else
-    SkRect r;
-    
-    r.set(x, y,
-          x + SkIntToScalar(bm.width() * 2),
-          y + SkIntToScalar(bm.height() * 2));
+    SkAutoCanvasRestore acr(canvas, true);
+    canvas->translate(x, y);
+
+    SkScalar w = SkIntToScalar(bm.width());
+    SkScalar h = SkIntToScalar(bm.height());
     SkShader* s = SkShader::CreateBitmapShader(bm, SkShader::kRepeat_TileMode,
                                                SkShader::kRepeat_TileMode);
     paint->setShader(s)->unref();
-    canvas->drawRect(r, *paint);
+    canvas->drawRect(SkRect::MakeWH(w, h), *paint);
     paint->setShader(NULL);
-    return r.width() * 5/4;
+    return w * 5/4;
 #endif
 }