Index: src/gpu/GrResourceCache.h |
diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h |
index 6c64ddc9333a6ce8301698028abcb1f80206004a..bf7b237006b0fd270a1056744c130b5ce006be94 100644 |
--- a/src/gpu/GrResourceCache.h |
+++ b/src/gpu/GrResourceCache.h |
@@ -11,6 +11,7 @@ |
#include "GrGpuResource.h" |
#include "GrGpuResourceCacheAccess.h" |
#include "GrGpuResourcePriv.h" |
+#include "GrResourceCache.h" |
#include "GrResourceKey.h" |
#include "SkMessageBus.h" |
#include "SkRefCnt.h" |
@@ -163,23 +164,16 @@ public: |
/** Purges all resources that don't have external owners. */ |
void purgeAllUnlocked(); |
- /** |
- * The callback function used by the cache when it is still over budget after a purge. The |
- * passed in 'data' is the same 'data' handed to setOverbudgetCallback. |
- */ |
- typedef void (*PFOverBudgetCB)(void* data); |
+ /** Returns true if the cache would like a flush to occur in order to make more resources |
+ purgeable. */ |
+ bool requestsFlush() const { return fRequestFlush; } |
- /** |
- * Set the callback the cache should use when it is still over budget after a purge. The 'data' |
- * provided here will be passed back to the callback. Note that the cache will attempt to purge |
- * any resources newly freed by the callback. |
- */ |
- void setOverBudgetCallback(PFOverBudgetCB overBudgetCB, void* data) { |
- fOverBudgetCB = overBudgetCB; |
- fOverBudgetData = data; |
- } |
- |
- void notifyFlushOccurred(); |
+ enum FlushType { |
+ kExternal, |
+ kImmediateMode, |
+ kCacheRequested, |
+ }; |
+ void notifyFlushOccurred(FlushType); |
#if GR_CACHE_STATS |
struct Stats { |
@@ -326,8 +320,7 @@ private: |
int fBudgetedCount; |
size_t fBudgetedBytes; |
- PFOverBudgetCB fOverBudgetCB; |
- void* fOverBudgetData; |
+ bool fRequestFlush; |
// We keep track of the "timestamps" of the last n flushes. If a resource hasn't been used in |
// that time then we well preemptively purge it to reduce memory usage. |