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