| |
| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkOrderedWriteBuffer_DEFINED |
| #define SkOrderedWriteBuffer_DEFINED |
| |
| #include "SkRefCnt.h" |
| #include "SkBitmap.h" |
| #include "SkFlattenable.h" |
| #include "SkWriter32.h" |
| #include "SkPath.h" |
| |
| class SkOrderedWriteBuffer : public SkFlattenableWriteBuffer { |
| public: |
| SkOrderedWriteBuffer(size_t minSize); |
| SkOrderedWriteBuffer(size_t minSize, void* initialStorage, |
| size_t storageSize); |
| virtual ~SkOrderedWriteBuffer() {} |
| |
| SkWriter32* getWriter32() { return &fWriter; } |
| |
| // deprecated naming convention that will be removed after callers are updated |
| virtual bool writeBool(bool value) { return fWriter.writeBool(value); } |
| virtual void writeInt(int32_t value) { fWriter.writeInt(value); } |
| virtual void write8(int32_t value) { fWriter.write8(value); } |
| virtual void write16(int32_t value) { fWriter.write16(value); } |
| virtual void write32(int32_t value) { fWriter.write32(value); } |
| virtual void writeScalar(SkScalar value) { fWriter.writeScalar(value); } |
| virtual void writeMul4(const void* values, size_t size) { fWriter.writeMul4(values, size); } |
| |
| virtual void writePad(const void* src, size_t size) { fWriter.writePad(src, size); } |
| virtual void writeString(const char* str, size_t len = (size_t)-1) { fWriter.writeString(str, len); } |
| virtual bool writeToStream(SkWStream* stream) { return fWriter.writeToStream(stream); } |
| virtual void write(const void* values, size_t size) { fWriter.write(values, size); } |
| virtual void writeRect(const SkRect& rect) { fWriter.writeRect(rect); } |
| virtual size_t readFromStream(SkStream* s, size_t length) { return fWriter.readFromStream(s, length); } |
| |
| virtual void writeMatrix(const SkMatrix& matrix) { fWriter.writeMatrix(matrix); } |
| virtual void writePath(const SkPath& path) { fWriter.writePath(path); }; |
| virtual void writePoint(const SkPoint& point) { |
| fWriter.writeScalar(point.fX); |
| fWriter.writeScalar(point.fY); |
| } |
| |
| virtual uint32_t* reserve(size_t size) { return fWriter.reserve(size); } |
| virtual void flatten(void* dst) { fWriter.flatten(dst); } |
| virtual uint32_t size() { return fWriter.size(); } |
| |
| virtual void writeFunctionPtr(void*); |
| virtual void writeFlattenable(SkFlattenable* flattenable); |
| |
| private: |
| SkWriter32 fWriter; |
| typedef SkFlattenableWriteBuffer INHERITED; |
| }; |
| |
| #endif // SkOrderedWriteBuffer_DEFINED |
| |