Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: src/core/SkMipMap.h

Issue 635333002: Add SkCachedData and use it for SkMipMap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkCachedData.cpp ('k') | src/core/SkMipMap.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/core/SkCachedData.cpp ('k') | src/core/SkMipMap.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698