change PictureRecord (and its private subclasses) to take size instead of device
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 17 Feb 2014 15:28:00 +0000 (15:28 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 17 Feb 2014 15:28:00 +0000 (15:28 +0000)
BUG=skia:
R=mtklein@google.com, scroggo@google.com, reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13477 2bbb7eff-a529-9590-31e7-b0007b416f81

src/core/SkBBoxHierarchyRecord.cpp
src/core/SkBBoxHierarchyRecord.h
src/core/SkBBoxRecord.h
src/core/SkPicture.cpp
src/core/SkPictureRecord.cpp
src/core/SkPictureRecord.h

index 8e5861b..b120b1d 100644 (file)
@@ -9,10 +9,10 @@
 #include "SkBBoxHierarchyRecord.h"
 #include "SkPictureStateTree.h"
 
-SkBBoxHierarchyRecord::SkBBoxHierarchyRecord(uint32_t recordFlags,
-                                             SkBBoxHierarchy* h,
-                                             SkBaseDevice* device)
-    : INHERITED(recordFlags, device) {
+SkBBoxHierarchyRecord::SkBBoxHierarchyRecord(const SkISize& size,
+                                             uint32_t recordFlags,
+                                             SkBBoxHierarchy* h)
+    : INHERITED(size, recordFlags) {
     fStateTree = SkNEW(SkPictureStateTree);
     fBoundingHierarchy = h;
     fBoundingHierarchy->ref();
index 7284ab0..f264334 100644 (file)
@@ -19,8 +19,7 @@
 class SkBBoxHierarchyRecord : public SkBBoxRecord, public SkBBoxHierarchyClient {
 public:
     /** This will take a ref of h */
-    SkBBoxHierarchyRecord(uint32_t recordFlags, SkBBoxHierarchy* h,
-                          SkBaseDevice*);
+    SkBBoxHierarchyRecord(const SkISize& size, uint32_t recordFlags, SkBBoxHierarchy* h);
 
     virtual void handleBBox(const SkRect& bounds) SK_OVERRIDE;
 
index fa8b282..2a34320 100644 (file)
@@ -19,8 +19,7 @@
 class SkBBoxRecord : public SkPictureRecord {
 public:
 
-    SkBBoxRecord(uint32_t recordFlags, SkBaseDevice* device)
-            : INHERITED(recordFlags, device) { }
+    SkBBoxRecord(const SkISize& size, uint32_t recordFlags) : INHERITED(size, recordFlags) {}
     virtual ~SkBBoxRecord() { }
 
     /**
index 7762939..b9b2442 100644 (file)
@@ -193,21 +193,19 @@ SkCanvas* SkPicture::beginRecording(int width, int height,
 
     SkSafeSetNull(fRecord);
 
-    SkBitmap bm;
-    bm.setConfig(SkBitmap::kNo_Config, width, height);
-    SkAutoTUnref<SkBaseDevice> dev(SkNEW_ARGS(SkBitmapDevice, (bm)));
-
     // Must be set before calling createBBoxHierarchy
     fWidth = width;
     fHeight = height;
 
+    const SkISize size = SkISize::Make(width, height);
+
     if (recordingFlags & kOptimizeForClippedPlayback_RecordingFlag) {
         SkBBoxHierarchy* tree = this->createBBoxHierarchy();
         SkASSERT(NULL != tree);
-        fRecord = SkNEW_ARGS(SkBBoxHierarchyRecord, (recordingFlags, tree, dev));
+        fRecord = SkNEW_ARGS(SkBBoxHierarchyRecord, (size, recordingFlags, tree));
         tree->unref();
     } else {
-        fRecord = SkNEW_ARGS(SkPictureRecord, (recordingFlags, dev));
+        fRecord = SkNEW_ARGS(SkPictureRecord, (size, recordingFlags));
     }
     fRecord->beginRecording();
 
index babf1e4..5890ac4 100644 (file)
@@ -28,8 +28,8 @@ static const uint32_t kSaveSize = 2 * kUInt32Size;
 static const uint32_t kSaveLayerNoBoundsSize = 4 * kUInt32Size;
 static const uint32_t kSaveLayerWithBoundsSize = 4 * kUInt32Size + sizeof(SkRect);
 
-SkPictureRecord::SkPictureRecord(uint32_t flags, SkBaseDevice* device)
-    : INHERITED(device)
+SkPictureRecord::SkPictureRecord(const SkISize& dimensions, uint32_t flags)
+    : INHERITED(dimensions.width(), dimensions.height())
     , fBoundingHierarchy(NULL)
     , fStateTree(NULL)
     , fFlattenableHeap(HEAP_BLOCK_SIZE)
index 5e37f81..c000f11 100644 (file)
@@ -33,7 +33,7 @@ class SkBBoxHierarchy;
 
 class SkPictureRecord : public SkCanvas {
 public:
-    SkPictureRecord(uint32_t recordFlags, SkBaseDevice*);
+    SkPictureRecord(const SkISize& dimensions, uint32_t recordFlags);
     virtual ~SkPictureRecord();
 
     virtual int save(SaveFlags) SK_OVERRIDE;