Index: include/lazy/SkPurgeableImageCache.h |
diff --git a/include/lazy/SkPurgeableImageCache.h b/include/lazy/SkPurgeableImageCache.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..98ace4a689ddbd58e0a39644fc0fa6e7b9602d68 |
--- /dev/null |
+++ b/include/lazy/SkPurgeableImageCache.h |
@@ -0,0 +1,54 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#ifndef SkPurgeableImageCache_DEFINED |
+#define SkPurgeableImageCache_DEFINED |
+ |
+#include "SkImageCache.h" |
+ |
+#ifdef SK_DEBUG |
+ #include "SkTDArray.h" |
+#endif |
+ |
+/** |
+ * Implementation for SkImageCache that uses system defined purgeable memory. |
+ */ |
+class SkPurgeableImageCache : public SkImageCache { |
+ |
+public: |
+ /** |
+ * Get a pointer to the single global instance of the purgeable image cache. |
+ * If there is no Skia implementation for purgeable memory, this returns NULL. |
+ * If non-NULL, the caller must unref it after use. |
+ */ |
+ static SkImageCache* GetPurgeableImageCache(); |
reed1
2013/03/18 21:25:17
Why isn't this just called Create()?
scroggo
2013/03/18 21:37:16
Done.
|
+ |
+ virtual void* allocAndPinCache(size_t bytes, intptr_t* ID) SK_OVERRIDE; |
+ virtual void* pinCache(intptr_t ID, SkImageCache::DataStatus*) SK_OVERRIDE; |
+ virtual void releaseCache(intptr_t ID) SK_OVERRIDE; |
+ virtual void throwAwayCache(intptr_t ID) SK_OVERRIDE; |
+ |
+#ifdef SK_DEBUG |
+ virtual MemoryStatus getMemoryStatus(intptr_t ID) const SK_OVERRIDE; |
+ virtual void purgeAllUnpinnedCaches() SK_OVERRIDE; |
+ virtual ~SkPurgeableImageCache(); |
+#endif |
+ |
+private: |
+ /** |
+ * Constructor is private. The correct way to get this cache is through |
+ * GetPurgeableImageCache, which will return the single global. |
+ */ |
+ SkPurgeableImageCache(); |
+ |
+#ifdef SK_DEBUG |
+ SkTDArray<intptr_t> fRecs; |
+ int findRec(intptr_t) const; |
+#endif |
+ void removeRec(intptr_t); |
+}; |
+#endif // SkPurgeableImageCache_DEFINED |