Index: include/core/SkPicture.h |
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h |
index c4c6f20326455f7f102f9ed8f833e3f9c85eb1d3..99bca367d987c4d3ca237580b4c9e5b51c73c0b8 100644 |
--- a/include/core/SkPicture.h |
+++ b/include/core/SkPicture.h |
@@ -259,11 +259,13 @@ private: |
void createHeader(SkPictInfo* info) const; |
static bool IsValidPictInfo(const SkPictInfo& info); |
- // Takes ownership of the SkRecord, refs the (optional) BBH. |
- SkPicture(SkScalar width, SkScalar height, SkRecord*, SkBBoxHierarchy*); |
+ // Takes ownership of the SkRecord, refs the (optional) drawablePicts and BBH. |
+ SkPicture(SkScalar width, SkScalar height, SkRecord*, SkData* drawablePicts, |
+ SkBBoxHierarchy*); |
static SkPicture* Forwardport(const SkPictInfo&, const SkPictureData*); |
- static SkPictureData* Backport(const SkRecord&, const SkPictInfo&); |
+ static SkPictureData* Backport(const SkRecord&, const SkPictInfo&, |
+ SkPicture const* const drawablePics[], int drawableCount); |
const SkScalar fCullWidth; |
const SkScalar fCullHeight; |
@@ -271,6 +273,15 @@ private: |
mutable SkTDArray<DeletionListener*> fDeletionListeners; // pointers are refed |
SkAutoTDelete<SkRecord> fRecord; |
SkAutoTUnref<SkBBoxHierarchy> fBBH; |
+ SkAutoTUnref<SkData> fDrawablePicts; |
+ |
+ // helpers for fDrawablePicts |
+ int drawableCount() const; |
+ // will return NULL if drawableCount() returns 0 |
+ SkPicture const* const* drawablePicts() const; |
+ |
+ struct PathCounter; |
+ |
struct Analysis { |
Analysis() {} // Only used by SkPictureData codepath. |
explicit Analysis(const SkRecord&); |
@@ -287,8 +298,6 @@ private: |
} fAnalysis; |
mutable uint32_t fUniqueID; |
- struct PathCounter; |
- |
friend class SkPictureRecorder; // SkRecord-based constructor. |
friend class GrLayerHoister; // access to fRecord |
friend class ReplaceDraw; |