| Index: src/image/SkDataPixelRef.cpp
|
| diff --git a/src/image/SkDataPixelRef.cpp b/src/image/SkDataPixelRef.cpp
|
| index 0524243366c16cdf079cd8434dcd10d31500fc54..74cd5a414f96c8a379ae06f141fe44befdc72905 100644
|
| --- a/src/image/SkDataPixelRef.cpp
|
| +++ b/src/image/SkDataPixelRef.cpp
|
| @@ -9,16 +9,24 @@
|
| #include "SkData.h"
|
| #include "SkFlattenableBuffers.h"
|
|
|
| -SkDataPixelRef::SkDataPixelRef(SkData* data) : fData(data) {
|
| +SkDataPixelRef::SkDataPixelRef(const SkImageInfo& info,
|
| + SkData* data, size_t rowBytes)
|
| + : fInfo(info)
|
| + , fData(data)
|
| + , fRB(rowBytes)
|
| +{
|
| fData->ref();
|
| - this->setPreLocked(const_cast<void*>(fData->data()), NULL);
|
| + this->setPreLocked(const_cast<void*>(fData->data()), rowBytes, NULL);
|
| }
|
|
|
| SkDataPixelRef::~SkDataPixelRef() {
|
| fData->unref();
|
| }
|
|
|
| -void* SkDataPixelRef::onLockPixels(SkColorTable** ct) {
|
| +void* SkDataPixelRef::onLockPixels(SkImageInfo* info, size_t* rowBytes,
|
| + SkColorTable** ct) {
|
| + *info = fInfo;
|
| + *rowBytes = fRB;
|
| *ct = NULL;
|
| return const_cast<void*>(fData->data());
|
| }
|
| @@ -29,11 +37,14 @@ void SkDataPixelRef::onUnlockPixels() {
|
|
|
| void SkDataPixelRef::flatten(SkFlattenableWriteBuffer& buffer) const {
|
| this->INHERITED::flatten(buffer);
|
| +
|
| buffer.writeDataAsByteArray(fData);
|
| + buffer.write32(fRB);
|
| }
|
|
|
| SkDataPixelRef::SkDataPixelRef(SkFlattenableReadBuffer& buffer)
|
| : INHERITED(buffer, NULL) {
|
| fData = buffer.readByteArrayAsData();
|
| - this->setPreLocked(const_cast<void*>(fData->data()), NULL);
|
| + fRB = buffer.read32();
|
| + this->setPreLocked(const_cast<void*>(fData->data()), fRB, NULL);
|
| }
|
|
|