retool so we don't need to call SkCanvas::setDevice
Review URL: https://codereview.appspot.com/6591054

git-svn-id: http://skia.googlecode.com/svn/trunk@5759 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index a98f2fc..c55a5c0 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -257,9 +257,8 @@
         fBackend = kNone_BackEndType;
     }
 
-    virtual bool prepareCanvas(SampleWindow::DeviceType dType,
-                               SkCanvas* canvas,
-                               SampleWindow* win) {
+    virtual SkCanvas* createCanvas(SampleWindow::DeviceType dType,
+                                   SampleWindow* win) {
         switch (dType) {
             case kRaster_DeviceType:
                 // fallthrough
@@ -273,18 +272,19 @@
             case kGPU_DeviceType:
             case kNullGPU_DeviceType:
                 if (fCurContext) {
-                    canvas->setDevice(new SkGpuDevice(fCurContext,
-                                                    fCurRenderTarget))->unref();
+                    SkAutoTUnref<SkDevice> device(new SkGpuDevice(fCurContext,
+                                                                  fCurRenderTarget));
+                    return new SkCanvas(device);
                 } else {
-                    return false;
+                    return NULL;
                 }
                 break;
 #endif
             default:
                 SkASSERT(false);
-                return false;
+                return NULL;
         }
-        return true;
+        return NULL;
     }
 
     virtual void publishCanvas(SampleWindow::DeviceType dType,
@@ -1035,9 +1035,6 @@
 #define YCLIP_N  8
 
 void SampleWindow::draw(SkCanvas* canvas) {
-    if (!fDevManager->prepareCanvas(fDeviceType, canvas, this)) {
-        return;
-    }
     // update the animation time
     if (!gAnimTimePrev && !gAnimTime) {
         // first time make delta be 0