hide SkImageDeserializer
Bug: skia: Change-Id: I1cd4e8c626628a3e6426afd7d6bae628d58989c3 Reviewed-on: https://skia-review.googlesource.com/85743 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
This commit is contained in:
parent
0c5f54663b
commit
834fb8ed90
@ -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<SkImage> makeFromData(SkData*, const SkIRect* subset);
|
||||
virtual sk_sp<SkImage> makeFromMemory(const void* data, size_t length, const SkIRect* subset);
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -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<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 void* data, size_t size,
|
||||
SkImageDeserializer* = nullptr);
|
||||
static sk_sp<SkPicture> MakeFromData(const SkData* data, SkImageDeserializer* = nullptr);
|
||||
static sk_sp<SkPicture> MakeFromData(const SkData* data);
|
||||
static sk_sp<SkPicture> MakeFromData(const void* data, size_t size);
|
||||
|
||||
static sk_sp<SkPicture> MakeFromStream(SkStream*, const SkDeserialProcs& procs);
|
||||
static sk_sp<SkPicture> MakeFromData(const SkData* data, const SkDeserialProcs& procs);
|
||||
|
@ -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<SkPixelSerializer>);
|
||||
#endif
|
||||
|
||||
private:
|
||||
const uint32_t fFlags;
|
||||
@ -171,9 +165,7 @@ 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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -405,6 +405,7 @@ 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) {
|
||||
@ -414,6 +415,7 @@ sk_sp<SkImage> SkImageDeserializer::makeFromMemory(const void* data, size_t leng
|
||||
const SkIRect* subset) {
|
||||
return SkImage::MakeFromEncoded(SkData::MakeWithCopy(data, length), subset);
|
||||
}
|
||||
#endif
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user