| OLD | NEW |
| 1 | |
| 2 /* | 1 /* |
| 3 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 4 * | 3 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 7 */ | 6 */ |
| 8 | 7 |
| 9 #ifndef SkReadBuffer_DEFINED | 8 #ifndef SkReadBuffer_DEFINED |
| 10 #define SkReadBuffer_DEFINED | 9 #define SkReadBuffer_DEFINED |
| 11 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 34 #define DEBUG_NON_DETERMINISTIC_ASSERT | 33 #define DEBUG_NON_DETERMINISTIC_ASSERT |
| 35 #endif | 34 #endif |
| 36 | 35 |
| 37 class SkReadBuffer { | 36 class SkReadBuffer { |
| 38 public: | 37 public: |
| 39 SkReadBuffer(); | 38 SkReadBuffer(); |
| 40 SkReadBuffer(const void* data, size_t size); | 39 SkReadBuffer(const void* data, size_t size); |
| 41 SkReadBuffer(SkStream* stream); | 40 SkReadBuffer(SkStream* stream); |
| 42 virtual ~SkReadBuffer(); | 41 virtual ~SkReadBuffer(); |
| 43 | 42 |
| 44 /** Return the version of the serialized picture this buffer holds, or 0 if
unset. */ | 43 enum Version { |
| 45 int pictureVersion() const { return fPictureVersion; } | 44 kFilterLevelIsEnum_Version = 23, |
| 45 kGradientFlippedFlag_Version = 24, |
| 46 kDashWritesPhaseIntervals_Version = 25, |
| 47 kColorShaderNoBool_Version = 26, |
| 48 }; |
| 49 |
| 50 /** |
| 51 * Returns true IFF the version is older than the specified version. |
| 52 */ |
| 53 bool isVersionLT(Version targetVersion) const { |
| 54 SkASSERT(targetVersion > 0); |
| 55 return fVersion > 0 && fVersion < targetVersion; |
| 56 } |
| 46 | 57 |
| 47 /** This may be called at most once; most clients of SkReadBuffer should not
mess with it. */ | 58 /** This may be called at most once; most clients of SkReadBuffer should not
mess with it. */ |
| 48 void setPictureVersion(int version) { | 59 void setVersion(int version) { |
| 49 SkASSERT(0 == fPictureVersion || version == fPictureVersion); | 60 SkASSERT(0 == fVersion || version == fVersion); |
| 50 fPictureVersion = version; | 61 fVersion = version; |
| 51 } | 62 } |
| 52 | 63 |
| 53 enum Flags { | 64 enum Flags { |
| 54 kCrossProcess_Flag = 1 << 0, | 65 kCrossProcess_Flag = 1 << 0, |
| 55 kScalarIsFloat_Flag = 1 << 1, | 66 kScalarIsFloat_Flag = 1 << 1, |
| 56 kPtrIs64Bit_Flag = 1 << 2, | 67 kPtrIs64Bit_Flag = 1 << 2, |
| 57 kValidation_Flag = 1 << 3, | 68 kValidation_Flag = 1 << 3, |
| 58 }; | 69 }; |
| 59 | 70 |
| 60 void setFlags(uint32_t flags) { fFlags = flags; } | 71 void setFlags(uint32_t flags) { fFlags = flags; } |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 virtual bool isValid() const { return true; } | 192 virtual bool isValid() const { return true; } |
| 182 virtual bool validateAvailable(size_t size) { return true; } | 193 virtual bool validateAvailable(size_t size) { return true; } |
| 183 | 194 |
| 184 protected: | 195 protected: |
| 185 SkReader32 fReader; | 196 SkReader32 fReader; |
| 186 | 197 |
| 187 private: | 198 private: |
| 188 bool readArray(void* value, size_t size, size_t elementSize); | 199 bool readArray(void* value, size_t size, size_t elementSize); |
| 189 | 200 |
| 190 uint32_t fFlags; | 201 uint32_t fFlags; |
| 191 int fPictureVersion; | 202 int fVersion; |
| 192 | 203 |
| 193 void* fMemoryPtr; | 204 void* fMemoryPtr; |
| 194 | 205 |
| 195 SkBitmapHeapReader* fBitmapStorage; | 206 SkBitmapHeapReader* fBitmapStorage; |
| 196 SkTypeface** fTFArray; | 207 SkTypeface** fTFArray; |
| 197 int fTFCount; | 208 int fTFCount; |
| 198 | 209 |
| 199 SkTDArray<SkFlattenable::Factory>* fFactoryTDArray; | 210 SkTDArray<SkFlattenable::Factory>* fFactoryTDArray; |
| 200 SkFlattenable::Factory* fFactoryArray; | 211 SkFlattenable::Factory* fFactoryArray; |
| 201 int fFactoryCount; | 212 int fFactoryCount; |
| 202 | 213 |
| 203 SkPicture::InstallPixelRefProc fBitmapDecoder; | 214 SkPicture::InstallPixelRefProc fBitmapDecoder; |
| 204 | 215 |
| 205 #ifdef DEBUG_NON_DETERMINISTIC_ASSERT | 216 #ifdef DEBUG_NON_DETERMINISTIC_ASSERT |
| 206 // Debugging counter to keep track of how many bitmaps we | 217 // Debugging counter to keep track of how many bitmaps we |
| 207 // have decoded. | 218 // have decoded. |
| 208 int fDecodedBitmapIndex; | 219 int fDecodedBitmapIndex; |
| 209 #endif // DEBUG_NON_DETERMINISTIC_ASSERT | 220 #endif // DEBUG_NON_DETERMINISTIC_ASSERT |
| 210 }; | 221 }; |
| 211 | 222 |
| 212 #endif // SkReadBuffer_DEFINED | 223 #endif // SkReadBuffer_DEFINED |
| OLD | NEW |