Staged removal of SkPicture-derived classes

This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DMReplayTask.cpp b/dm/DMReplayTask.cpp
index 736cd5c..791370d 100644
--- a/dm/DMReplayTask.cpp
+++ b/dm/DMReplayTask.cpp
@@ -23,11 +23,11 @@
     {}
 
 void ReplayTask::draw() {
-    SkAutoTUnref<SkPictureFactory> factory;
+    SkAutoTDelete<SkBBHFactory> factory;
     if (fUseRTree) {
-        factory.reset(SkNEW(SkRTreePictureFactory));
+        factory.reset(SkNEW(SkRTreeFactory));
     }
-    SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get(), 0, factory));
+    SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get(), 0, factory.get()));
 
     SkBitmap bitmap;
     SetupBitmap(fReference.colorType(), fGM.get(), &bitmap);
diff --git a/dm/DMTileGridTask.cpp b/dm/DMTileGridTask.cpp
index e34ac74..9a036bf 100644
--- a/dm/DMTileGridTask.cpp
+++ b/dm/DMTileGridTask.cpp
@@ -24,15 +24,15 @@
 }
 
 void TileGridTask::draw() {
-    const SkTileGridPicture::TileGridInfo info = {
+    const SkTileGridFactory::TileGridInfo info = {
         fTileSize,
-        SkISize::Make(0,0),   // Overlap between adjacent tiles.
-        SkIPoint::Make(0,0),  // Offset.
+        SkISize::Make(0,0),    // Overlap between adjacent tiles.
+        SkIPoint::Make(0,0),   // Offset.
     };
-    SkAutoTUnref<SkPictureFactory> factory(SkNEW_ARGS(SkTileGridPictureFactory, (info)));
+    SkTileGridFactory factory(info);
     SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get(),
                                                    SkPicture::kUsePathBoundsForClip_RecordingFlag,
-                                                   factory));
+                                                   &factory));
 
     SkBitmap full;
     SetupBitmap(fReference.colorType(), fGM.get(), &full);
diff --git a/dm/DMUtil.cpp b/dm/DMUtil.cpp
index 638f0d9..bf7fbf9 100644
--- a/dm/DMUtil.cpp
+++ b/dm/DMUtil.cpp
@@ -10,10 +10,10 @@
     return s;
 }
 
-SkPicture* RecordPicture(skiagm::GM* gm, uint32_t recordFlags, SkPictureFactory* factory) {
+SkPicture* RecordPicture(skiagm::GM* gm, uint32_t recordFlags, SkBBHFactory* factory) {
     const SkISize size = gm->getISize();
-    SkPictureRecorder recorder(factory);
-    SkCanvas* canvas = recorder.beginRecording(size.width(), size.height(), recordFlags);
+    SkPictureRecorder recorder;
+    SkCanvas* canvas = recorder.beginRecording(size.width(), size.height(), factory, recordFlags);
     canvas->concat(gm->getInitialTransform());
     gm->draw(canvas);
     canvas->flush();
diff --git a/dm/DMUtil.h b/dm/DMUtil.h
index 7c112b3..1145f28 100644
--- a/dm/DMUtil.h
+++ b/dm/DMUtil.h
@@ -6,7 +6,7 @@
 #include "SkString.h"
 #include "gm_expectations.h"
 
-class SkPictureFactory;
+class SkBBHFactory;
 
 // Small free functions used in more than one place in DM.
 
@@ -18,7 +18,7 @@
 // Draw gm to picture.  Passes recordFlags to SkPictureRecorder::beginRecording().
 SkPicture* RecordPicture(skiagm::GM* gm,
                          uint32_t recordFlags = 0,
-                         SkPictureFactory* factory = NULL);
+                         SkBBHFactory* factory = NULL);
 
 // Prepare bitmap to have gm or bench draw into it with this config.
 // TODO(mtklein): make SkBenchmark::getSize()/GM::getISize() const.