| Index: src/core/SkPictureData.cpp
|
| diff --git a/src/core/SkPictureData.cpp b/src/core/SkPictureData.cpp
|
| index 2c71eebf2f0a2bfda1ce18caf30fb1e7e5be58d6..e89ef37bded76249d14c12ee795f05ba17648d7c 100644
|
| --- a/src/core/SkPictureData.cpp
|
| +++ b/src/core/SkPictureData.cpp
|
| @@ -9,7 +9,6 @@
|
| #include "SkDrawPictureCallback.h"
|
| #include "SkPictureData.h"
|
| #include "SkPictureRecord.h"
|
| -#include "SkPictureStateTree.h"
|
| #include "SkReadBuffer.h"
|
| #include "SkTypeface.h"
|
| #include "SkTSort.h"
|
| @@ -38,8 +37,8 @@ void SkPictureData::initForPlayback() const {
|
| }
|
|
|
| SkPictureData::SkPictureData(const SkPictureRecord& record,
|
| - const SkPictInfo& info,
|
| - bool deepCopyOps)
|
| + const SkPictInfo& info,
|
| + bool deepCopyOps)
|
| : fInfo(info) {
|
| #ifdef SK_DEBUG_SIZE
|
| size_t overallBytes, bitmapBytes, matricesBytes,
|
| @@ -289,6 +288,16 @@ static size_t compute_chunk_size(SkFlattenable::Factory* array, int count) {
|
| return size;
|
| }
|
|
|
| +static void write_tag_size(SkWriteBuffer& buffer, uint32_t tag, size_t size) {
|
| + buffer.writeUInt(tag);
|
| + buffer.writeUInt(SkToU32(size));
|
| +}
|
| +
|
| +static void write_tag_size(SkWStream* stream, uint32_t tag, size_t size) {
|
| + stream->write32(tag);
|
| + stream->write32(SkToU32(size));
|
| +}
|
| +
|
| void SkPictureData::WriteFactories(SkWStream* stream, const SkFactorySet& rec) {
|
| int count = rec.count();
|
|
|
| @@ -299,7 +308,7 @@ void SkPictureData::WriteFactories(SkWStream* stream, const SkFactorySet& rec) {
|
| size_t size = compute_chunk_size(array, count);
|
|
|
| // TODO: write_tag_size should really take a size_t
|
| - SkPicture::WriteTagSize(stream, SK_PICT_FACTORY_TAG, (uint32_t) size);
|
| + write_tag_size(stream, SK_PICT_FACTORY_TAG, (uint32_t) size);
|
| SkDEBUGCODE(size_t start = stream->bytesWritten());
|
| stream->write32(count);
|
|
|
| @@ -321,7 +330,7 @@ void SkPictureData::WriteFactories(SkWStream* stream, const SkFactorySet& rec) {
|
| void SkPictureData::WriteTypefaces(SkWStream* stream, const SkRefCntSet& rec) {
|
| int count = rec.count();
|
|
|
| - SkPicture::WriteTagSize(stream, SK_PICT_TYPEFACE_TAG, count);
|
| + write_tag_size(stream, SK_PICT_TYPEFACE_TAG, count);
|
|
|
| SkAutoSTMalloc<16, SkTypeface*> storage(count);
|
| SkTypeface** array = (SkTypeface**)storage.get();
|
| @@ -336,32 +345,32 @@ void SkPictureData::flattenToBuffer(SkWriteBuffer& buffer) const {
|
| int i, n;
|
|
|
| if ((n = SafeCount(fBitmaps)) > 0) {
|
| - SkPicture::WriteTagSize(buffer, SK_PICT_BITMAP_BUFFER_TAG, n);
|
| + write_tag_size(buffer, SK_PICT_BITMAP_BUFFER_TAG, n);
|
| for (i = 0; i < n; i++) {
|
| buffer.writeBitmap((*fBitmaps)[i]);
|
| }
|
| }
|
|
|
| if ((n = SafeCount(fPaints)) > 0) {
|
| - SkPicture::WriteTagSize(buffer, SK_PICT_PAINT_BUFFER_TAG, n);
|
| + write_tag_size(buffer, SK_PICT_PAINT_BUFFER_TAG, n);
|
| for (i = 0; i < n; i++) {
|
| buffer.writePaint((*fPaints)[i]);
|
| }
|
| }
|
|
|
| if ((n = SafeCount(fPathHeap.get())) > 0) {
|
| - SkPicture::WriteTagSize(buffer, SK_PICT_PATH_BUFFER_TAG, n);
|
| + write_tag_size(buffer, SK_PICT_PATH_BUFFER_TAG, n);
|
| fPathHeap->flatten(buffer);
|
| }
|
| }
|
|
|
| void SkPictureData::serialize(SkWStream* stream,
|
| SkPicture::EncodeBitmap encoder) const {
|
| - SkPicture::WriteTagSize(stream, SK_PICT_READER_TAG, fOpData->size());
|
| + write_tag_size(stream, SK_PICT_READER_TAG, fOpData->size());
|
| stream->write(fOpData->bytes(), fOpData->size());
|
|
|
| if (fPictureCount > 0) {
|
| - SkPicture::WriteTagSize(stream, SK_PICT_PICTURE_TAG, fPictureCount);
|
| + write_tag_size(stream, SK_PICT_PICTURE_TAG, fPictureCount);
|
| for (int i = 0; i < fPictureCount; i++) {
|
| fPictureRefs[i]->serialize(stream, encoder);
|
| }
|
| @@ -386,7 +395,7 @@ void SkPictureData::serialize(SkWStream* stream,
|
| WriteFactories(stream, factSet);
|
| WriteTypefaces(stream, typefaceSet);
|
|
|
| - SkPicture::WriteTagSize(stream, SK_PICT_BUFFER_SIZE_TAG, buffer.bytesWritten());
|
| + write_tag_size(stream, SK_PICT_BUFFER_SIZE_TAG, buffer.bytesWritten());
|
| buffer.writeToStream(stream);
|
| }
|
|
|
| @@ -394,11 +403,11 @@ void SkPictureData::serialize(SkWStream* stream,
|
| }
|
|
|
| void SkPictureData::flatten(SkWriteBuffer& buffer) const {
|
| - SkPicture::WriteTagSize(buffer, SK_PICT_READER_TAG, fOpData->size());
|
| + write_tag_size(buffer, SK_PICT_READER_TAG, fOpData->size());
|
| buffer.writeByteArray(fOpData->bytes(), fOpData->size());
|
|
|
| if (fPictureCount > 0) {
|
| - SkPicture::WriteTagSize(buffer, SK_PICT_PICTURE_TAG, fPictureCount);
|
| + write_tag_size(buffer, SK_PICT_PICTURE_TAG, fPictureCount);
|
| for (int i = 0; i < fPictureCount; i++) {
|
| fPictureRefs[i]->flatten(buffer);
|
| }
|
|
|