Index: include/core/SkPicture.h |
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h |
index 75fe66d2bf92fe562311dd6e16c89506b33cfeed..625204db76a1827e6be58f9a53aab7631591658e 100644 |
--- a/include/core/SkPicture.h |
+++ b/include/core/SkPicture.h |
@@ -16,6 +16,8 @@ class GrContext; |
class SkBigPicture; |
class SkBitmap; |
class SkCanvas; |
+class SkData; |
+class SkImage; |
class SkPath; |
class SkPictureData; |
class SkPixelSerializer; |
@@ -27,6 +29,13 @@ class SkWStream; |
class SkWriteBuffer; |
struct SkPictInfo; |
+class SkImageDeserializer { |
+public: |
+ virtual ~SkImageDeserializer() {} |
+ |
+ virtual sk_sp<SkImage> deserialize(sk_sp<SkData>, const SkIRect* subset) = 0; |
+}; |
+ |
/** \class SkPicture |
An SkPicture records drawing commands made to a canvas to be played back at a later time. |
@@ -49,6 +58,7 @@ public: |
*/ |
typedef bool (*InstallPixelRefProc)(const void* src, size_t length, SkBitmap* dst); |
+#ifdef SK_SUPPORT_LEGACY_PICTUREINSTALLPIXELREF |
/** |
* Recreate a picture that was serialized into a stream. |
* @param SkStream Serialized picture data. Ownership is unchanged by this call. |
@@ -58,6 +68,9 @@ public: |
* invalid. |
*/ |
static sk_sp<SkPicture> MakeFromStream(SkStream*, InstallPixelRefProc proc); |
+#endif |
+ |
+ static sk_sp<SkPicture> MakeFromStreamWithDeserializer(SkStream*, SkImageDeserializer*); |
/** |
* Recreate a picture that was serialized into a stream. |
@@ -188,7 +201,8 @@ private: |
template <typename> friend class SkMiniPicture; |
void serialize(SkWStream*, SkPixelSerializer*, SkRefCntSet* typefaces) const; |
- static sk_sp<SkPicture> MakeFromStream(SkStream*, InstallPixelRefProc, SkTypefacePlayback*); |
+// static sk_sp<SkPicture> MakeFromStream(SkStream*, InstallPixelRefProc, SkTypefacePlayback*); |
+ static sk_sp<SkPicture> MakeFromStream(SkStream*, SkImageDeserializer*, SkTypefacePlayback*); |
friend class SkPictureData; |
virtual int numSlowPaths() const = 0; |