add peekPixels to SkCanvas and SkSurface

fix reference to SkBaseDevice, which was only a problem in no-gpu build

This reverts commit 4fa44a6bf73891b21917fb90d02beef9143bffa3.

R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13432 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 53e15a5..15e56a3 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1128,8 +1128,9 @@
 
 static SkBitmap capture_bitmap(SkCanvas* canvas) {
     SkBitmap bm;
-    const SkBitmap& src = canvas->getDevice()->accessBitmap(false);
-    src.copyTo(&bm, src.config());
+    if (bm.allocPixels(canvas->imageInfo())) {
+        canvas->readPixels(&bm, 0, 0);
+    }
     return bm;
 }
 
diff --git a/samplecode/SampleCircle.cpp b/samplecode/SampleCircle.cpp
index b101a1f..9cc927e 100644
--- a/samplecode/SampleCircle.cpp
+++ b/samplecode/SampleCircle.cpp
@@ -71,12 +71,6 @@
         }
     }
 
-    static void blowup(SkCanvas* canvas, const SkIRect& src, const SkRect& dst) {
-        SkBaseDevice* device = canvas->getDevice();
-        const SkBitmap& bm = device->accessBitmap(false);
-        canvas->drawBitmapRect(bm, &src, dst, NULL);
-    }
-
     static void make_poly(SkPath* path, int n) {
         if (n <= 0) {
             return;
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index 483943d..bc8b873 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -42,10 +42,10 @@
     SkCanvas::LayerIter iter(canvas, true);
     int index = 0;
     while (!iter.done()) {
-        const SkBitmap& bm = iter.device()->accessBitmap(false);
+        SkImageInfo info = iter.device()->imageInfo();
         const SkIRect& clip = iter.clip().getBounds();
         SkDebugf("Layer[%d] bitmap [%d %d] X=%d Y=%d clip=[%d %d %d %d] alpha=%d\n", index++,
-                 bm.width(), bm.height(), iter.x(), iter.y(),
+                 info.width(), info.height(), iter.x(), iter.y(),
                  clip.fLeft, clip.fTop, clip.fRight, clip.fBottom,
                  iter.paint().getAlpha());
         iter.next();