aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPictureData.h
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2014-08-26 07:56:44 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-26 07:56:44 -0700
commitb7425173f96e93b090787e2386ba5f022b6c2869 (patch)
treeb73511cfeb4373c7a46a2507ada4274ca4b099e8 /src/core/SkPictureData.h
parent3d2e50d1aa56d7f65a4c52fa03af4413fa4c616a (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.h16
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;