aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkFlattenable.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/SkFlattenable.h')
-rw-r--r--include/core/SkFlattenable.h204
1 files changed, 1 insertions, 203 deletions
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index bbd4a80edf..56bc96648f 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -11,16 +11,9 @@
#define SkFlattenable_DEFINED
#include "SkRefCnt.h"
-#include "SkReader32.h"
-#include "SkTDArray.h"
-#include "SkWriter32.h"
-class SkBitmap;
class SkFlattenableReadBuffer;
class SkFlattenableWriteBuffer;
-class SkPath;
-struct SkPoint;
-class SkString;
#if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
@@ -55,7 +48,7 @@ class SkString;
virtual Factory getFactory() SK_OVERRIDE { return NULL; }; \
#define SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(flattenable) \
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }; \
+ virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } \
static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { \
return SkNEW_ARGS(flattenable, (buffer)); \
}
@@ -110,116 +103,6 @@ private:
typedef SkRefCnt INHERITED;
};
-// helpers for matrix and region
-
-class SkMatrix;
-extern void SkReadMatrix(SkReader32*, SkMatrix*);
-extern void SkWriteMatrix(SkWriter32*, const SkMatrix&);
-
-class SkRegion;
-extern void SkReadRegion(SkReader32*, SkRegion*);
-extern void SkWriteRegion(SkWriter32*, const SkRegion&);
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class SkTypeface;
-
-class SkFlattenableReadBuffer {
-public:
- enum Flags {
- kCrossProcess_Flag = 1 << 0,
- kScalarIsFloat_Flag = 1 << 1,
- kPtrIs64Bit_Flag = 1 << 2,
- };
-
- SkFlattenableReadBuffer();
- virtual ~SkFlattenableReadBuffer() {}
-
- void setFlags(uint32_t flags) { fFlags = flags; }
- uint32_t getFlags() const { return fFlags; }
-
- bool isCrossProcess() const { return SkToBool(fFlags & kCrossProcess_Flag); }
- bool isScalarFloat() const { return SkToBool(fFlags & kScalarIsFloat_Flag); }
- bool isPtr64Bit() const { return SkToBool(fFlags & kPtrIs64Bit_Flag); }
-
- virtual uint8_t readU8() = 0;
- virtual uint16_t readU16() = 0;
- virtual uint32_t readU32() = 0;
- virtual void read(void* dst, size_t size) = 0;
- virtual bool readBool() = 0;
- virtual int32_t readInt() = 0;
- virtual SkScalar readScalar() = 0;
- virtual const void* skip(size_t size) = 0;
-
- virtual int32_t readS32() { return readInt(); }
- template <typename T> const T& skipT() {
- SkASSERT(SkAlign4(sizeof(T)) == sizeof(T));
- return *(const T*)this->skip(sizeof(T));
- }
-
- virtual void readMatrix(SkMatrix*) = 0;
- virtual void readPath(SkPath*) = 0;
- virtual void readPoint(SkPoint*) = 0;
-
- // helper function for classes with const SkPoint members
- SkPoint readPoint() {
- SkPoint point;
- this->readPoint(&point);
- return point;
- }
-
- void setRefCntArray(SkRefCnt* array[], int count) {
- fRCArray = array;
- fRCCount = count;
- }
-
- void setTypefaceArray(SkTypeface* array[], int count) {
- fTFArray = array;
- fTFCount = count;
- }
-
- /**
- * Call this with a pre-loaded array of Factories, in the same order as
- * were created/written by the writer. SkPicture uses this.
- */
- void setFactoryPlayback(SkFlattenable::Factory array[], int count) {
- fFactoryTDArray = NULL;
- fFactoryArray = array;
- fFactoryCount = count;
- }
-
- /**
- * Call this with an initially empty array, so the reader can cache each
- * factory it sees by name. Used by the pipe code in combination with
- * setNamedFactoryRecorder.
- */
- void setFactoryArray(SkTDArray<SkFlattenable::Factory>* array) {
- fFactoryTDArray = array;
- fFactoryArray = NULL;
- fFactoryCount = 0;
- }
-
- virtual SkTypeface* readTypeface() = 0;
- virtual SkRefCnt* readRefCnt() = 0;
- virtual void* readFunctionPtr() = 0;
- virtual SkFlattenable* readFlattenable() = 0;
-
-protected:
- SkRefCnt** fRCArray;
- int fRCCount;
-
- SkTypeface** fTFArray;
- int fTFCount;
-
- SkTDArray<SkFlattenable::Factory>* fFactoryTDArray;
- SkFlattenable::Factory* fFactoryArray;
- int fFactoryCount;
-
-private:
- uint32_t fFlags;
-};
-
///////////////////////////////////////////////////////////////////////////////
#include "SkPtrRecorder.h"
@@ -268,89 +151,4 @@ private:
SkTDArray<const char*> fNames;
};
-class SkFlattenableWriteBuffer {
-public:
- SkFlattenableWriteBuffer();
- virtual ~SkFlattenableWriteBuffer();
-
- // deprecated naming convention that will be removed after callers are updated
- virtual bool writeBool(bool value) = 0;
- virtual void writeInt(int32_t value) = 0;
- virtual void write8(int32_t value) = 0;
- virtual void write16(int32_t value) = 0;
- virtual void write32(int32_t value) = 0;
- virtual void writeScalar(SkScalar value) = 0;
- virtual void writeMul4(const void* values, size_t size) = 0;
-
- virtual void writePad(const void* src, size_t size) = 0;
- virtual void writeString(const char* str, size_t len = (size_t)-1) = 0;
- virtual uint32_t* reserve(size_t size) = 0;
- virtual void flatten(void* dst) = 0;
- virtual uint32_t size() = 0;
- virtual void write(const void* values, size_t size) = 0;
- virtual void writeRect(const SkRect& rect) = 0;
- virtual size_t readFromStream(SkStream*, size_t length) = 0;
-
- virtual void writeMatrix(const SkMatrix& matrix) = 0;
- virtual void writePath(const SkPath& path) = 0;
- virtual void writePoint(const SkPoint& point) = 0;
-
- virtual bool writeToStream(SkWStream*) = 0;
-
- virtual void writeFunctionPtr(void*)= 0;
- virtual void writeFlattenable(SkFlattenable* flattenable)= 0;
-
- void writeTypeface(SkTypeface*);
- void writeRefCnt(SkRefCnt* obj);
-
- SkRefCntSet* getTypefaceRecorder() const { return fTFSet; }
- SkRefCntSet* setTypefaceRecorder(SkRefCntSet*);
-
- SkRefCntSet* getRefCntRecorder() const { return fRCSet; }
- SkRefCntSet* setRefCntRecorder(SkRefCntSet*);
-
- SkFactorySet* getFactoryRecorder() const { return fFactorySet; }
- SkFactorySet* setFactoryRecorder(SkFactorySet*);
-
- SkNamedFactorySet* getNamedFactoryRecorder() const { return fNamedFactorySet; }
- SkNamedFactorySet* setNamedFactoryRecorder(SkNamedFactorySet*);
-
- enum Flags {
- kCrossProcess_Flag = 0x01,
- /**
- * Instructs the writer to always serialize bitmap pixel data.
- */
- kForceFlattenBitmapPixels_Flag = 0x04
- };
-
- uint32_t getFlags() const { return fFlags; }
- void setFlags(uint32_t flags) { fFlags = flags; }
-
- bool isCrossProcess() const {
- return SkToBool(fFlags & kCrossProcess_Flag);
- }
-
- bool persistBitmapPixels() const {
- return (fFlags & (kCrossProcess_Flag | kForceFlattenBitmapPixels_Flag)) != 0;
- }
-
- bool persistTypeface() const { return (fFlags & kCrossProcess_Flag) != 0; }
-
-protected:
-
- // A helper function so that each subclass does not have to be a friend of
- // SkFlattenable.
- void flattenObject(SkFlattenable* obj, SkFlattenableWriteBuffer& buffer) {
- obj->flatten(buffer);
- }
-
- uint32_t fFlags;
- SkRefCntSet* fTFSet;
- SkRefCntSet* fRCSet;
- SkFactorySet* fFactorySet;
- SkNamedFactorySet* fNamedFactorySet;
-
-};
-
#endif
-