OLD | NEW |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #ifndef SkFlattenableBuffers_DEFINED | 9 #ifndef SkFlattenableBuffers_DEFINED |
10 #define SkFlattenableBuffers_DEFINED | 10 #define SkFlattenableBuffers_DEFINED |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
63 virtual int32_t readInt() = 0; | 63 virtual int32_t readInt() = 0; |
64 virtual SkScalar readScalar() = 0; | 64 virtual SkScalar readScalar() = 0; |
65 virtual uint32_t readUInt() = 0; | 65 virtual uint32_t readUInt() = 0; |
66 virtual int32_t read32() = 0; | 66 virtual int32_t read32() = 0; |
67 | 67 |
68 // strings -- the caller is responsible for freeing the string contents | 68 // strings -- the caller is responsible for freeing the string contents |
69 virtual void readString(SkString* string) = 0; | 69 virtual void readString(SkString* string) = 0; |
70 virtual void* readEncodedString(size_t* length, SkPaint::TextEncoding encodi ng) = 0; | 70 virtual void* readEncodedString(size_t* length, SkPaint::TextEncoding encodi ng) = 0; |
71 | 71 |
72 // common data structures | 72 // common data structures |
73 virtual SkFlattenable* readFlattenable() = 0; | |
74 virtual void readPoint(SkPoint* point) = 0; | 73 virtual void readPoint(SkPoint* point) = 0; |
75 virtual void readMatrix(SkMatrix* matrix) = 0; | 74 virtual void readMatrix(SkMatrix* matrix) = 0; |
76 virtual void readIRect(SkIRect* rect) = 0; | 75 virtual void readIRect(SkIRect* rect) = 0; |
77 virtual void readRect(SkRect* rect) = 0; | 76 virtual void readRect(SkRect* rect) = 0; |
78 virtual void readRegion(SkRegion* region) = 0; | 77 virtual void readRegion(SkRegion* region) = 0; |
79 virtual void readPath(SkPath* path) = 0; | 78 virtual void readPath(SkPath* path) = 0; |
80 | 79 |
81 // binary data and arrays | 80 // binary data and arrays |
82 virtual uint32_t readByteArray(void* value) = 0; | 81 virtual uint32_t readByteArray(void* value) = 0; |
83 virtual uint32_t readColorArray(SkColor* colors) = 0; | 82 virtual uint32_t readColorArray(SkColor* colors) = 0; |
(...skipping 22 matching lines...) Expand all Loading... | |
106 | 105 |
107 template <typename T> T* readFlattenableT() { | 106 template <typename T> T* readFlattenableT() { |
108 return static_cast<T*>(this->readFlattenable()); | 107 return static_cast<T*>(this->readFlattenable()); |
109 } | 108 } |
110 | 109 |
111 void validate(bool isValid) { | 110 void validate(bool isValid) { |
112 fError |= !isValid; | 111 fError |= !isValid; |
113 } | 112 } |
114 | 113 |
115 protected: | 114 protected: |
115 // Use readFlattenableT to enforce a type check on the flattenable read | |
reed1
2013/09/13 15:18:41
How does this enforce a type-check?
| |
116 virtual SkFlattenable* readFlattenable() = 0; | |
117 | |
116 bool fError; | 118 bool fError; |
117 | 119 |
118 private: | 120 private: |
119 uint32_t fFlags; | 121 uint32_t fFlags; |
120 }; | 122 }; |
121 | 123 |
122 /////////////////////////////////////////////////////////////////////////////// | 124 /////////////////////////////////////////////////////////////////////////////// |
123 | 125 |
124 class SkFlattenableWriteBuffer { | 126 class SkFlattenableWriteBuffer { |
125 public: | 127 public: |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
188 bool persistTypeface() const { return (fFlags & kCrossProcess_Flag) != 0; } | 190 bool persistTypeface() const { return (fFlags & kCrossProcess_Flag) != 0; } |
189 | 191 |
190 protected: | 192 protected: |
191 // A helper function so that each subclass does not have to be a friend of S kFlattenable | 193 // A helper function so that each subclass does not have to be a friend of S kFlattenable |
192 void flattenObject(SkFlattenable* obj, SkFlattenableWriteBuffer& buffer); | 194 void flattenObject(SkFlattenable* obj, SkFlattenableWriteBuffer& buffer); |
193 | 195 |
194 uint32_t fFlags; | 196 uint32_t fFlags; |
195 }; | 197 }; |
196 | 198 |
197 #endif | 199 #endif |
OLD | NEW |