diff options
-rw-r--r-- | include/core/SkImageDeserializer.h | 2 | ||||
-rw-r--r-- | include/core/SkPicture.h | 12 | ||||
-rw-r--r-- | include/core/SkWriteBuffer.h | 8 | ||||
-rw-r--r-- | src/core/SkPicture.cpp | 53 | ||||
-rw-r--r-- | src/core/SkReadBuffer.h | 2 | ||||
-rw-r--r-- | src/image/SkImage.cpp | 2 |
6 files changed, 32 insertions, 47 deletions
diff --git a/include/core/SkImageDeserializer.h b/include/core/SkImageDeserializer.h index a8e37b69f0..ba1422647b 100644 --- a/include/core/SkImageDeserializer.h +++ b/include/core/SkImageDeserializer.h @@ -14,7 +14,6 @@ struct SkIRect; class SkData; class SkImage; -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER class SK_API SkImageDeserializer { public: virtual ~SkImageDeserializer() {} @@ -33,6 +32,5 @@ public: virtual sk_sp<SkImage> makeFromData(SkData*, const SkIRect* subset); virtual sk_sp<SkImage> makeFromMemory(const void* data, size_t length, const SkIRect* subset); }; -#endif #endif diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h index cb8dcc2215..1e32636ca3 100644 --- a/include/core/SkPicture.h +++ b/include/core/SkPicture.h @@ -19,9 +19,7 @@ class SkCanvas; class SkData; struct SkDeserialProcs; class SkImage; -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER class SkImageDeserializer; -#endif class SkPath; class SkPictureData; class SkPixelSerializer; @@ -60,15 +58,11 @@ public: * Any serialized images in the stream will be passed the image-deserializer, or if that is * null, to the default deserializer that will call SkImage::MakeFromEncoded(). */ -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER static sk_sp<SkPicture> MakeFromStream(SkStream*, SkImageDeserializer*); - static sk_sp<SkPicture> MakeFromData(const SkData* data, SkImageDeserializer*); - static sk_sp<SkPicture> MakeFromData(const void* data, size_t size, SkImageDeserializer*); -#endif - static sk_sp<SkPicture> MakeFromStream(SkStream*); - static sk_sp<SkPicture> MakeFromData(const SkData* data); - static sk_sp<SkPicture> MakeFromData(const void* data, size_t size); + static sk_sp<SkPicture> MakeFromData(const void* data, size_t size, + SkImageDeserializer* = nullptr); + static sk_sp<SkPicture> MakeFromData(const SkData* data, SkImageDeserializer* = nullptr); static sk_sp<SkPicture> MakeFromStream(SkStream*, const SkDeserialProcs& procs); static sk_sp<SkPicture> MakeFromData(const SkData* data, const SkDeserialProcs& procs); diff --git a/include/core/SkWriteBuffer.h b/include/core/SkWriteBuffer.h index 0b1ae0c1aa..b0b6fd993a 100644 --- a/include/core/SkWriteBuffer.h +++ b/include/core/SkWriteBuffer.h @@ -9,6 +9,8 @@ #ifndef SkWriteBuffer_DEFINED #define SkWriteBuffer_DEFINED +#define SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS + #include "SkData.h" #include "SkImage.h" #include "SkPath.h" @@ -18,7 +20,9 @@ #include "SkWriter32.h" #include "../private/SkTHash.h" +#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS #include "SkPixelSerializer.h" +#endif class SkBitmap; class SkDeduper; @@ -153,7 +157,9 @@ public: SkFactorySet* setFactoryRecorder(SkFactorySet*); SkRefCntSet* setTypefaceRecorder(SkRefCntSet*); +#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS void setPixelSerializer(sk_sp<SkPixelSerializer>); +#endif private: const uint32_t fFlags; @@ -165,7 +171,9 @@ private: // Only used if we do not have an fFactorySet SkTHashMap<SkString, uint32_t> fFlattenableDict; +#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS sk_sp<SkPixelSerializer> fPS; +#endif }; #endif // SkWriteBuffer_DEFINED diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp index f5085a63f6..2761c417a6 100644 --- a/src/core/SkPicture.cpp +++ b/src/core/SkPicture.cpp @@ -143,13 +143,18 @@ sk_sp<SkPicture> SkPicture::Forwardport(const SkPictInfo& info, return r.finishRecordingAsPicture(); } -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream, SkImageDeserializer* factory) { SkDeserialProcs procs; procs.fImageProc = ImageDeserializer_SkDeserialImageProc; procs.fImageCtx = factory; return MakeFromStream(stream, procs, nullptr); } + +sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream) { + SkImageDeserializer factory; + return MakeFromStream(stream, &factory); +} + sk_sp<SkPicture> SkPicture::MakeFromData(const void* data, size_t size, SkImageDeserializer* factory) { SkMemoryStream stream(data, size); @@ -163,28 +168,6 @@ sk_sp<SkPicture> SkPicture::MakeFromData(const SkData* data, SkImageDeserializer SkMemoryStream stream(data->data(), data->size()); return MakeFromStream(&stream, factory); } -#endif - -sk_sp<SkPicture> SkPicture::MakeFromStream(SkStream* stream) { - return MakeFromStream(stream, SkDeserialProcs(), nullptr); -} - -sk_sp<SkPicture> SkPicture::MakeFromData(const void* data, size_t size) { - if (!data) { - return nullptr; - } - SkMemoryStream stream(data, size); - return MakeFromStream(&stream, SkDeserialProcs(), nullptr); -} - -sk_sp<SkPicture> SkPicture::MakeFromData(const SkData* data) { - if (!data) { - return nullptr; - } - SkMemoryStream stream(data->data(), data->size()); - return MakeFromStream(&stream, SkDeserialProcs(), nullptr); -} - sk_sp<SkPicture> SkPicture::MakeFromData(const SkData* data, const SkDeserialProcs& procs) { if (!data) { @@ -382,13 +365,24 @@ bool SkPicture::PictureIOSecurityPrecautionsEnabled() { ////////////////////////////////////////////////////////////////////////////////////////////////// -#include "SkReadBuffer.h" -#include "SkWriteBuffer.h" - sk_sp<SkData> PixelSerializer_SkSerialImageProc(SkImage* img, void* ctx) { SkASSERT(ctx); return img->encodeToData(static_cast<SkPixelSerializer*>(ctx)); } + +sk_sp<SkImage> ImageDeserializer_SkDeserialImageProc(const void* data, size_t length, void* ctx) { + SkASSERT(ctx); + SkImageDeserializer* imd = static_cast<SkImageDeserializer*>(ctx); + const SkIRect* subset = nullptr; + return imd->makeFromMemory(data, length, subset); +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS +#include "SkReadBuffer.h" +#include "SkWriteBuffer.h" + void SkBinaryWriteBuffer::setPixelSerializer(sk_sp<SkPixelSerializer> ps) { fPS = ps; if (ps) { @@ -400,13 +394,6 @@ void SkBinaryWriteBuffer::setPixelSerializer(sk_sp<SkPixelSerializer> ps) { } } -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER -sk_sp<SkImage> ImageDeserializer_SkDeserialImageProc(const void* data, size_t length, void* ctx) { - SkASSERT(ctx); - SkImageDeserializer* imd = static_cast<SkImageDeserializer*>(ctx); - const SkIRect* subset = nullptr; - return imd->makeFromMemory(data, length, subset); -} void SkReadBuffer::setImageDeserializer(SkImageDeserializer* factory) { if (factory) { fProcs.fImageProc = ImageDeserializer_SkDeserialImageProc; diff --git a/src/core/SkReadBuffer.h b/src/core/SkReadBuffer.h index 28ea3d4d74..4c0ca9bec2 100644 --- a/src/core/SkReadBuffer.h +++ b/src/core/SkReadBuffer.h @@ -216,7 +216,7 @@ public: void setDeserialProcs(const SkDeserialProcs& procs); -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER +#ifdef SK_SUPPORT_LEGACY_SERIAL_BUFFER_OBJECTS void setImageDeserializer(SkImageDeserializer* factory); #endif diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index 31104d2548..01aceab773 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -405,7 +405,6 @@ sk_sp<SkImage> MakeTextureFromMipMap(GrContext*, const SkImageInfo&, const GrMip } /////////////////////////////////////////////////////////////////////////////////////////////////// -#ifdef SK_SUPPORT_LEGACY_IMAGEDESERIALIZER #include "SkImageDeserializer.h" sk_sp<SkImage> SkImageDeserializer::makeFromData(SkData* data, const SkIRect* subset) { @@ -415,7 +414,6 @@ sk_sp<SkImage> SkImageDeserializer::makeFromMemory(const void* data, size_t leng const SkIRect* subset) { return SkImage::MakeFromEncoded(SkData::MakeWithCopy(data, length), subset); } -#endif /////////////////////////////////////////////////////////////////////////////////////////////////// |