| Index: src/core/SkMipMap.h
|
| diff --git a/src/core/SkMipMap.h b/src/core/SkMipMap.h
|
| index ed912ba976956400f2e49daa89935808dd6f08db..4e83b12b3ed0dbf29bb92d3f7b92b4668a6475de 100644
|
| --- a/src/core/SkMipMap.h
|
| +++ b/src/core/SkMipMap.h
|
| @@ -8,14 +8,17 @@
|
| #ifndef SkMipMap_DEFINED
|
| #define SkMipMap_DEFINED
|
|
|
| -#include "SkRefCnt.h"
|
| +#include "SkCachedData.h"
|
| #include "SkScalar.h"
|
|
|
| class SkBitmap;
|
| +class SkDiscardableMemory;
|
|
|
| -class SkMipMap : public SkRefCnt {
|
| +typedef SkDiscardableMemory* (*SkDiscardableFactoryProc)(size_t bytes);
|
| +
|
| +class SkMipMap : public SkCachedData {
|
| public:
|
| - static SkMipMap* Build(const SkBitmap& src);
|
| + static SkMipMap* Build(const SkBitmap& src, SkDiscardableFactoryProc);
|
|
|
| struct Level {
|
| void* fPixels;
|
| @@ -26,18 +29,22 @@ public:
|
|
|
| bool extractLevel(SkScalar scale, Level*) const;
|
|
|
| - size_t getSize() const { return fSize; }
|
| +protected:
|
| + virtual void onDataChange(void* oldData, void* newData) SK_OVERRIDE {
|
| + fLevels = (Level*)newData; // could be NULL
|
| + }
|
|
|
| private:
|
| - size_t fSize;
|
| Level* fLevels;
|
| int fCount;
|
|
|
| // we take ownership of levels, and will free it with sk_free()
|
| - SkMipMap(Level* levels, int count, size_t size);
|
| - virtual ~SkMipMap();
|
| + SkMipMap(void* malloc, size_t size) : INHERITED(malloc, size) {}
|
| + SkMipMap(size_t size, SkDiscardableMemory* dm) : INHERITED(size, dm) {}
|
| +
|
| + static size_t AllocLevelsSize(int levelCount, size_t pixelSize);
|
|
|
| - static Level* AllocLevels(int levelCount, size_t pixelSize);
|
| + typedef SkCachedData INHERITED;
|
| };
|
|
|
| #endif
|
|
|