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/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp
index 928b403..f210b4a 100644
--- a/gm/bitmapcopy.cpp
+++ b/gm/bitmapcopy.cpp
@@ -62,14 +62,14 @@
 
     virtual void onDraw(SkCanvas* canvas) {
         SkPaint paint;
-        SkScalar horizMargin(SkIntToScalar(10));
-        SkScalar vertMargin(SkIntToScalar(10));
+        SkScalar horizMargin = 10;
+        SkScalar vertMargin = 10;
 
-        SkBitmapDevice devTmp(SkBitmap::kARGB_8888_Config, 40, 40, false);
-        SkCanvas canvasTmp(&devTmp);
+        SkBitmap src;
+        src.allocN32Pixels(40, 40);
+        SkCanvas canvasTmp(src);
 
         draw_checks(&canvasTmp, 40, 40);
-        SkBitmap src = canvasTmp.getTopDevice()->accessBitmap(false);
 
         for (unsigned i = 0; i < NUM_CONFIGS; ++i) {
             if (!src.deepCopyTo(&fDst[i], gConfigs[i])) {