summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/core/SkPictureFlat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/core/SkPictureFlat.cpp')
-rw-r--r--chromium/third_party/skia/src/core/SkPictureFlat.cpp53
1 files changed, 2 insertions, 51 deletions
diff --git a/chromium/third_party/skia/src/core/SkPictureFlat.cpp b/chromium/third_party/skia/src/core/SkPictureFlat.cpp
index 149cf7cc02c..7b2e67f5efd 100644
--- a/chromium/third_party/skia/src/core/SkPictureFlat.cpp
+++ b/chromium/third_party/skia/src/core/SkPictureFlat.cpp
@@ -60,12 +60,12 @@ SkRefCnt* SkTypefacePlayback::set(int index, SkRefCnt* obj) {
///////////////////////////////////////////////////////////////////////////////
-SkFlatController::SkFlatController()
+SkFlatController::SkFlatController(uint32_t writeBufferFlags)
: fBitmapHeap(NULL)
, fTypefaceSet(NULL)
, fTypefacePlayback(NULL)
, fFactorySet(NULL)
-, fWriteBufferFlags(0) {}
+, fWriteBufferFlags(writeBufferFlags) {}
SkFlatController::~SkFlatController() {
SkSafeUnref(fBitmapHeap);
@@ -89,52 +89,3 @@ SkNamedFactorySet* SkFlatController::setNamedFactorySet(SkNamedFactorySet* set)
SkRefCnt_SafeAssign(fFactorySet, set);
return set;
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SkFlatData* SkFlatData::Create(SkFlatController* controller,
- const void* obj,
- int index,
- void (*flattenProc)(SkOrderedWriteBuffer&, const void*)) {
- // a buffer of 256 bytes should be sufficient for most paints, regions,
- // and matrices.
- intptr_t storage[256];
- SkOrderedWriteBuffer buffer(256, storage, sizeof(storage));
-
- buffer.setBitmapHeap(controller->getBitmapHeap());
- buffer.setTypefaceRecorder(controller->getTypefaceSet());
- buffer.setNamedFactoryRecorder(controller->getNamedFactorySet());
- buffer.setFlags(controller->getWriteBufferFlags());
-
- flattenProc(buffer, obj);
- uint32_t size = buffer.size();
- SkASSERT(SkIsAlign4(size));
-
- // Allocate enough memory to hold SkFlatData struct and the flat data itself.
- size_t allocSize = sizeof(SkFlatData) + size;
- SkFlatData* result = (SkFlatData*) controller->allocThrow(allocSize);
-
- // Put the serialized contents into the data section of the new allocation.
- buffer.writeToMemory(result->data());
- // Stamp the index, size and checksum in the header.
- result->stampHeader(index, size);
- return result;
-}
-
-void SkFlatData::unflatten(void* result,
- void (*unflattenProc)(SkOrderedReadBuffer&, void*),
- SkBitmapHeap* bitmapHeap,
- SkTypefacePlayback* facePlayback) const {
-
- SkOrderedReadBuffer buffer(this->data(), fFlatSize);
-
- if (bitmapHeap) {
- buffer.setBitmapStorage(bitmapHeap);
- }
- if (facePlayback) {
- facePlayback->setupBuffer(buffer);
- }
-
- unflattenProc(buffer, result);
- SkASSERT(fFlatSize == (int32_t)buffer.offset());
-}