diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-08-08 19:20:05 +0000 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2013-08-12 09:13:03 +0100 |
commit | 563c8e84e826303ee545c238588fe577ad598da4 (patch) | |
tree | f4b1a53c20ad7fc571f97b424234562de1dab6ef | |
parent | c04d9ca3cc7b0bb69e28987b203dd8c936e2c2d4 (diff) | |
download | src-563c8e84e826303ee545c238588fe577ad598da4.tar.gz |
Adding 2 functions to the Skia API
I need wrappers for both SkOrderedReadBuffer and SkOrderedWriteBuffer inside Chromium in order to do the IPC serialization of Skia SkImageFilter objects.
See https://codereview.chromium.org/21271002/
BUG=
R=djsollen@google.com, scroggo@google.com, reed@google.com
Author: sugoi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22591002
git-svn-id: http://skia.googlecode.com/svn/trunk/src@10642 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | core/SkFlattenableSerialization.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/SkFlattenableSerialization.cpp b/core/SkFlattenableSerialization.cpp new file mode 100644 index 00000000..b74c82f0 --- /dev/null +++ b/core/SkFlattenableSerialization.cpp @@ -0,0 +1,28 @@ +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkFlattenableSerialization.h" + +#include "SkData.h" +#include "SkFlattenable.h" +#include "SkOrderedReadBuffer.h" +#include "SkOrderedWriteBuffer.h" + +SkData* SkSerializeFlattenable(SkFlattenable* flattenable) { + SkOrderedWriteBuffer writer(1024); + writer.setFlags(SkOrderedWriteBuffer::kCrossProcess_Flag); + writer.writeFlattenable(flattenable); + uint32_t size = writer.bytesWritten(); + void* data = sk_malloc_throw(size); + writer.writeToMemory(data); + return SkData::NewFromMalloc(data, size); +} + +SkFlattenable* SkDeserializeFlattenable(const void* data, size_t size) { + SkOrderedReadBuffer buffer(data, size); + return buffer.readFlattenable(); +} |