Home | History | Annotate | Download | only in image
      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