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 { |
scroggo
2013/11/19 18:17:09
We need to flatten (and unflatten) fInfo.
reed1
2013/11/20 20:56:56
doh!
|
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); |
} |