Index: src/core/SkPictureData.h |
diff --git a/src/core/SkPictureData.h b/src/core/SkPictureData.h |
index a6c840aa0a8c45ccfeb5cc3bd91a60b8aec2155f..14c51860dd5d758d743c3fabfb117e58fc63972f 100644 |
--- a/src/core/SkPictureData.h |
+++ b/src/core/SkPictureData.h |
@@ -26,6 +26,7 @@ class SkPaint; |
class SkPath; |
class SkPictureStateTree; |
class SkReadBuffer; |
+class SkTextBlob; |
struct SkPictInfo { |
enum Flags { |
@@ -49,9 +50,10 @@ struct SkPictInfo { |
// This tag specifies the size of the ReadBuffer, needed for the following tags |
#define SK_PICT_BUFFER_SIZE_TAG SkSetFourByteTag('a', 'r', 'a', 'y') |
// these are all inside the ARRAYS tag |
-#define SK_PICT_BITMAP_BUFFER_TAG SkSetFourByteTag('b', 't', 'm', 'p') |
-#define SK_PICT_PAINT_BUFFER_TAG SkSetFourByteTag('p', 'n', 't', ' ') |
-#define SK_PICT_PATH_BUFFER_TAG SkSetFourByteTag('p', 't', 'h', ' ') |
+#define SK_PICT_BITMAP_BUFFER_TAG SkSetFourByteTag('b', 't', 'm', 'p') |
+#define SK_PICT_PAINT_BUFFER_TAG SkSetFourByteTag('p', 'n', 't', ' ') |
+#define SK_PICT_PATH_BUFFER_TAG SkSetFourByteTag('p', 't', 'h', ' ') |
+#define SK_PICT_TEXTBLOB_BUFFER_TAG SkSetFourByteTag('b', 'l', 'o', 'b') |
// Always write this guy last (with no length field afterwards) |
#define SK_PICT_EOF_TAG SkSetFourByteTag('e', 'o', 'f', ' ') |
@@ -132,6 +134,12 @@ public: |
return &(*fPaints)[index - 1]; |
} |
+ const SkTextBlob* getTextBlob(SkReader32* reader) const { |
+ int index = reader->readInt(); |
+ SkASSERT(index > 0 && index <= fTextBlobCount); |
+ return fTextBlobRefs[index - 1]; |
+ } |
+ |
void initIterator(SkPictureStateTree::Iterator* iter, |
const SkTDArray<void*>& draws, |
SkCanvas* canvas) const { |
@@ -183,6 +191,8 @@ private: |
const SkPicture** fPictureRefs; |
int fPictureCount; |
+ const SkTextBlob** fTextBlobRefs; |
+ int fTextBlobCount; |
SkBBoxHierarchy* fBoundingHierarchy; |
SkPictureStateTree* fStateTree; |