From 6a32add491cc736aab95561d137909cd7c5d65ef Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Wed, 11 Dec 2013 18:19:10 +0000 Subject: Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""" This reverts commit d08eca87a0bef10112a211de540f89656a80b86a. BUG= Review URL: https://codereview.chromium.org/108303003 git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/core/SkMallocPixelRef.h | 51 +++++++++++++---------------------------- 1 file changed, 16 insertions(+), 35 deletions(-) (limited to 'include/core/SkMallocPixelRef.h') 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; }; -- cgit v1.2.3