SkRecord: turn on cull annotation pass in public API.

Also, switch Skia internal tools over to use the public headers where
possible.  Where it's not, the tools -Isrc/record explicitly now, and
if it's not obvious, note why they don't use SkRecording.h.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14191 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DMRecordTask.cpp b/dm/DMRecordTask.cpp
index fb0e4e6..95a8bbd 100644
--- a/dm/DMRecordTask.cpp
+++ b/dm/DMRecordTask.cpp
@@ -2,8 +2,7 @@
 #include "DMUtil.h"
 #include "DMWriteTask.h"
 #include "SkCommandLineFlags.h"
-#include "SkRecordDraw.h"
-#include "SkRecorder.h"
+#include "SkRecording.h"
 
 DEFINE_bool(skr, false, "If true, run SKR tests.");
 
@@ -17,19 +16,19 @@
     {}
 
 void RecordTask::draw() {
+    using EXPERIMENTAL::SkRecording;
+    using EXPERIMENTAL::SkPlayback;
+
     // Record the GM into an SkRecord.
-    SkRecord record;
-    SkRecorder canvas(SkRecorder::kWriteOnly_Mode, &record,
-                      fReference.width(), fReference.height());
-    canvas.concat(fGM->getInitialTransform());
-    fGM->draw(&canvas);
+    SkRecording* recording = SkRecording::Create(fReference.width(), fReference.height());
+    fGM->draw(recording->canvas());
+    SkAutoTDelete<const SkPlayback> playback(SkRecording::Delete(recording));
 
     // Draw the SkRecord back into a bitmap.
     SkBitmap bitmap;
     SetupBitmap(fReference.colorType(), fGM.get(), &bitmap);
     SkCanvas target(bitmap);
-
-    SkRecordDraw(record, &target);
+    playback->draw(&target);
 
     if (!BitmapsEqual(bitmap, fReference)) {
         this->fail();