diff options
Diffstat (limited to 'include/core/SkMallocPixelRef.h')
-rw-r--r-- | include/core/SkMallocPixelRef.h | 51 |
1 files changed, 16 insertions, 35 deletions
diff --git a/include/core/SkMallocPixelRef.h b/include/core/SkMallocPixelRef.h index 5ef70d69bc..100a15d90a 100644 --- a/include/core/SkMallocPixelRef.h +++ b/include/core/SkMallocPixelRef.h @@ -17,52 +17,33 @@ */ class SkMallocPixelRef : public SkPixelRef { public: - /** - * Return a new SkMallocPixelRef with the provided pixel storage, rowBytes, - * and optional colortable. The caller is responsible for managing the - * lifetime of the pixel storage buffer, as the pixelref will not try - * to delete the storage. - * - * This pixelref will ref() the specified colortable (if not NULL). - * - * Returns NULL on failure. + /** Allocate the specified buffer for pixels. The memory is freed when the + last owner of this pixelref is gone. If addr is NULL, sk_malloc_throw() + is called to allocate it. */ - static SkMallocPixelRef* NewDirect(const SkImageInfo&, void* addr, - size_t rowBytes, SkColorTable*); - - /** - * Return a new SkMallocPixelRef, automatically allocating storage for the - * pixels. If rowBytes are 0, an optimal value will be chosen automatically. - * If rowBytes is > 0, then it will be respected, or NULL will be returned - * if rowBytes is invalid for the specified info. - * - * This pixelref will ref() the specified colortable (if not NULL). - * - * Returns NULL on failure. - */ - static SkMallocPixelRef* NewAllocate(const SkImageInfo& info, - size_t rowBytes, SkColorTable*); + SkMallocPixelRef(void* addr, size_t size, SkColorTable* ctable, bool ownPixels = true); + virtual ~SkMallocPixelRef(); void* getAddr() const { return fStorage; } SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMallocPixelRef) protected: - virtual bool onNewLockPixels(LockRec*) SK_OVERRIDE; - virtual void onUnlockPixels() SK_OVERRIDE; - virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; - virtual size_t getAllocatedSizeInBytes() const SK_OVERRIDE; + // overrides from SkPixelRef + virtual void* onLockPixels(SkColorTable**); + virtual void onUnlockPixels(); SkMallocPixelRef(SkFlattenableReadBuffer& buffer); - SkMallocPixelRef(const SkImageInfo&, void* addr, size_t rb, SkColorTable*, - bool ownsPixels); - virtual ~SkMallocPixelRef(); + virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; + + // Returns the allocation size for the pixels + virtual size_t getAllocatedSizeInBytes() const SK_OVERRIDE { return fSize; } private: - void* fStorage; - SkColorTable* fCTable; - size_t fRB; - const bool fOwnPixels; + void* fStorage; + size_t fSize; + SkColorTable* fCTable; + bool fOwnPixels; typedef SkPixelRef INHERITED; }; |