diff options
author | fmalita <fmalita@chromium.org> | 2014-08-26 07:56:44 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-26 07:56:44 -0700 |
commit | b7425173f96e93b090787e2386ba5f022b6c2869 (patch) | |
tree | b73511cfeb4373c7a46a2507ada4274ca4b099e8 /src/core/SkPictureData.h | |
parent | 3d2e50d1aa56d7f65a4c52fa03af4413fa4c616a (diff) |
SkTextBlob plumbing
Add SkTextBlob serialization + drawTextBlob() overrides.
R=mtklein@google.com, reed@google.com, robertphillips@google.com
BUG=269080
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/499413002
Diffstat (limited to 'src/core/SkPictureData.h')
-rw-r--r-- | src/core/SkPictureData.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/core/SkPictureData.h b/src/core/SkPictureData.h index a6c840aa0a..14c51860dd 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; |