1 /* 2 * Copyright 2012 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "SkDataPixelRef.h" 9 #include "SkData.h" 10 #include "SkFlattenableBuffers.h" 11 12 SkDataPixelRef::SkDataPixelRef(SkData* data) : fData(data) { 13 fData->ref(); 14 this->setPreLocked(const_cast<void*>(fData->data()), NULL); 15 } 16 17 SkDataPixelRef::~SkDataPixelRef() { 18 fData->unref(); 19 } 20 21 void* SkDataPixelRef::onLockPixels(SkColorTable** ct) { 22 *ct = NULL; 23 return const_cast<void*>(fData->data()); 24 } 25 26 void SkDataPixelRef::onUnlockPixels() { 27 // nothing to do 28 } 29 30 void SkDataPixelRef::flatten(SkFlattenableWriteBuffer& buffer) const { 31 this->INHERITED::flatten(buffer); 32 buffer.writeFlattenable(fData); 33 } 34 35 SkDataPixelRef::SkDataPixelRef(SkFlattenableReadBuffer& buffer) 36 : INHERITED(buffer, NULL) { 37 fData = (SkData*)buffer.readFlattenable(); 38 this->setPreLocked(const_cast<void*>(fData->data()), NULL); 39 } 40