split SkPictureRecorder out of SkPicture

https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DMTileGridTask.cpp b/dm/DMTileGridTask.cpp
index f9cac07..bc76b80 100644
--- a/dm/DMTileGridTask.cpp
+++ b/dm/DMTileGridTask.cpp
@@ -29,9 +29,10 @@
         SkISize::Make(0,0),   // Overlap between adjacent tiles.
         SkIPoint::Make(0,0),  // Offset.
     };
-    const SkISize size = fGM->getISize();
-    SkTileGridPicture recorded(size.width(), size.height(), info);
-    RecordPicture(fGM.get(), &recorded, SkPicture::kUsePathBoundsForClip_RecordingFlag);
+    SkAutoTUnref<SkPictureFactory> factory(SkNEW_ARGS(SkTileGridPictureFactory, (info)));
+    SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get(), 
+                                                   SkPicture::kUsePathBoundsForClip_RecordingFlag, 
+                                                   factory));
 
     SkBitmap full;
     SetupBitmap(fReference.colorType(), fGM.get(), &full);
@@ -55,7 +56,7 @@
             matrix.postTranslate(-xOffset, -yOffset);
             tileCanvas.setMatrix(matrix);
 
-            recorded.draw(&tileCanvas);
+            recorded->draw(&tileCanvas);
             tileCanvas.flush();
             fullCanvas.drawBitmap(tile, xOffset, yOffset, &paint);
         }