diff options
Diffstat (limited to 'src/core/SkPicture.cpp')
-rw-r--r-- | src/core/SkPicture.cpp | 53 |
1 files changed, 33 insertions, 20 deletions
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> 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); @@ -168,6 +163,28 @@ 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) { @@ -365,24 +382,13 @@ 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) { @@ -394,6 +400,13 @@ 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; |