Index: include/core/SkPicture.h |
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h |
index 82d6835dbd9e15906f53d3e550439d9b20d95263..a717153dbed9aef0c090e49610a73184d92a6c9f 100644 |
--- a/include/core/SkPicture.h |
+++ b/include/core/SkPicture.h |
@@ -68,6 +68,16 @@ public: |
static SkPicture* CreateFromStream(SkStream*, |
InstallPixelRefProc proc = &SkImageDecoder::DecodeMemory); |
+ /** |
+ * Recreate a picture that was serialized into a buffer. If the creation requires bitmap |
+ * decoding, the decoder must be set on the SkReadBuffer parameter by calling |
+ * SkReadBuffer::setBitmapDecoder() before calling SkPicture::CreateFromBuffer(). |
+ * @param SkReadBuffer Serialized picture data. |
+ * @return A new SkPicture representing the serialized data, or NULL if the buffer is |
+ * invalid. |
+ */ |
+ static SkPicture* CreateFromBuffer(SkReadBuffer&); |
+ |
virtual ~SkPicture(); |
/** |
@@ -187,6 +197,11 @@ public: |
void serialize(SkWStream*, EncodeBitmap encoder = NULL) const; |
/** |
+ * Serialize to a buffer. |
+ */ |
+ void flatten(SkWriteBuffer&) const; |
+ |
+ /** |
* Returns true if any bitmaps may be produced when this SkPicture |
* is replayed. |
* Returns false if called while still recording. |
@@ -223,7 +238,8 @@ protected: |
// V17: SkPixelRef now writes SkImageInfo |
// V18: SkBitmap now records x,y for its pixelref origin, instead of offset. |
// V19: encode matrices and regions into the ops stream |
- static const uint32_t PICTURE_VERSION = 19; |
+ // V20: added bool to SkPictureImageFilter's serialization (to allow SkPicture serialization) |
+ static const uint32_t PICTURE_VERSION = 20; |
// fPlayback, fRecord, fWidth & fHeight are protected to allow derived classes to |
// install their own SkPicturePlayback-derived players,SkPictureRecord-derived |
@@ -245,7 +261,10 @@ protected: |
// will be ready to be parsed to create an SkPicturePlayback. |
// If false is returned, SkPictInfo is unmodified. |
static bool StreamIsSKP(SkStream*, SkPictInfo*); |
+ static bool BufferIsSKP(SkReadBuffer&, SkPictInfo*); |
private: |
+ void createHeader(void* header) const; |
+ |
friend class SkFlatPicture; |
friend class SkPicturePlayback; |