| Index: include/core/SkMallocPixelRef.h
|
| diff --git a/include/core/SkMallocPixelRef.h b/include/core/SkMallocPixelRef.h
|
| index a547ddb2b9fff5d2ded3a6894594a3281864afce..272dc21fd872e34c4a98ac4d0530ac6751f56137 100644
|
| --- a/include/core/SkMallocPixelRef.h
|
| +++ b/include/core/SkMallocPixelRef.h
|
| @@ -45,11 +45,46 @@ public:
|
| static SkMallocPixelRef* NewAllocate(const SkImageInfo& info,
|
| size_t rowBytes, SkColorTable*);
|
|
|
| + /**
|
| + * Return a new SkMallocPixelRef with the provided pixel storage,
|
| + * rowBytes, and optional colortable. On destruction, ReleaseProc
|
| + * will be called.
|
| + *
|
| + * This pixelref will ref() the specified colortable (if not NULL).
|
| + *
|
| + * Returns NULL on failure.
|
| + */
|
| + typedef void (*ReleaseProc)(void* addr, void* context);
|
| + static SkMallocPixelRef* NewWithProc(const SkImageInfo& info,
|
| + size_t rowBytes, SkColorTable*,
|
| + void* addr, ReleaseProc proc,
|
| + void* context);
|
| +
|
| + /**
|
| + * Return a new SkMallocPixelRef that will use the provided
|
| + * SkData, rowBytes, and optional colortable as pixel storage.
|
| + * The SkData will be ref()ed and on destruction of the PielRef,
|
| + * the SkData will be unref()ed.
|
| + *
|
| + * @param offset (in bytes) into the provided SkData that the
|
| + * first pixel is located at.
|
| + *
|
| + * This pixelref will ref() the specified colortable (if not NULL).
|
| + *
|
| + * Returns NULL on failure.
|
| + */
|
| + static SkMallocPixelRef* NewWithData(const SkImageInfo& info,
|
| + size_t rowBytes,
|
| + SkColorTable* ctable,
|
| + SkData* data,
|
| + size_t offset = 0);
|
| +
|
| void* getAddr() const { return fStorage; }
|
|
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMallocPixelRef)
|
|
|
| protected:
|
| + // The ownPixels version of this constructor is deprecated.
|
| SkMallocPixelRef(const SkImageInfo&, void* addr, size_t rb, SkColorTable*,
|
| bool ownPixels);
|
| SkMallocPixelRef(SkFlattenableReadBuffer& buffer);
|
| @@ -64,7 +99,11 @@ private:
|
| void* fStorage;
|
| SkColorTable* fCTable;
|
| size_t fRB;
|
| - const bool fOwnPixels;
|
| + ReleaseProc fReleaseProc;
|
| + void* fReleaseProcContext;
|
| +
|
| + SkMallocPixelRef(const SkImageInfo&, void* addr, size_t rb, SkColorTable*,
|
| + ReleaseProc proc, void* context);
|
|
|
| typedef SkPixelRef INHERITED;
|
| };
|
|
|