| Index: src/gpu/GrResourceCache.h
|
| ===================================================================
|
| --- src/gpu/GrResourceCache.h (revision 10175)
|
| +++ src/gpu/GrResourceCache.h (working copy)
|
| @@ -222,7 +222,7 @@
|
| * @param maxResource If non-null, returns maximum number of resources
|
| * that can be held in the cache.
|
| * @param maxBytes If non-null, returns maximum number of bytes of
|
| - * gpu memory that can be held in the cache.
|
| + * gpu memory that can be held in the cache.
|
| */
|
| void getLimits(int* maxResources, size_t* maxBytes) const;
|
|
|
| @@ -235,7 +235,7 @@
|
| * @param maxBytes The maximum number of bytes of resource memory that
|
| * can be held in the cache.
|
| */
|
| - void setLimits(int maxResource, size_t maxResourceBytes);
|
| + void setLimits(int maxResources, size_t maxResourceBytes);
|
|
|
| /**
|
| * The callback function used by the cache when it is still over budget
|
| @@ -248,8 +248,8 @@
|
| /**
|
| * 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. The cache will attempt to purge any resources newly freed
|
| - * by the callback.
|
| + * callback. Note that the cache will attempt to purge any resources newly
|
| + * freed by the callback.
|
| */
|
| void setOverbudgetCallback(PFOverbudgetCB overbudgetCB, void* data) {
|
| fOverbudgetCB = overbudgetCB;
|
| @@ -301,7 +301,7 @@
|
| * Determines if the cache contains an entry matching a key. If a matching
|
| * entry exists but was detached then it will not be found.
|
| */
|
| - bool hasKey(const GrResourceKey& key) const;
|
| + bool hasKey(const GrResourceKey& key) const { return NULL != fCache.find(key); }
|
|
|
| /**
|
| * Hide 'entry' so that future searches will not find it. Such
|
| @@ -318,6 +318,11 @@
|
| void makeNonExclusive(GrResourceEntry* entry);
|
|
|
| /**
|
| + * Remove a resource from the cache and delete it!
|
| + */
|
| + void deleteResource(GrResourceEntry* entry);
|
| +
|
| + /**
|
| * Removes every resource in the cache that isn't locked.
|
| */
|
| void purgeAllUnlocked();
|
| @@ -325,7 +330,9 @@
|
| /**
|
| * Allow cache to purge unused resources to obey resource limitations
|
| * Note: this entry point will be hidden (again) once totally ref-driven
|
| - * cache maintenance is implemented
|
| + * cache maintenance is implemented. Note that the overbudget callback
|
| + * will be called if the initial purge doesn't get the cache under
|
| + * its budget.
|
| *
|
| * extraCount and extraBytes are added to the current resource allocation
|
| * to make sure enough room is available for future additions (e.g,
|
| @@ -358,29 +365,29 @@
|
|
|
| // We're an internal doubly linked list
|
| typedef SkTInternalLList<GrResourceEntry> EntryList;
|
| - EntryList fList;
|
| + EntryList fList;
|
|
|
| #if GR_DEBUG
|
| // These objects cannot be returned by a search
|
| - EntryList fExclusiveList;
|
| + EntryList fExclusiveList;
|
| #endif
|
|
|
| // our budget, used in purgeAsNeeded()
|
| - int fMaxCount;
|
| - size_t fMaxBytes;
|
| + int fMaxCount;
|
| + size_t fMaxBytes;
|
|
|
| // our current stats, related to our budget
|
| #if GR_CACHE_STATS
|
| - int fHighWaterEntryCount;
|
| - size_t fHighWaterEntryBytes;
|
| - int fHighWaterClientDetachedCount;
|
| - size_t fHighWaterClientDetachedBytes;
|
| + int fHighWaterEntryCount;
|
| + size_t fHighWaterEntryBytes;
|
| + int fHighWaterClientDetachedCount;
|
| + size_t fHighWaterClientDetachedBytes;
|
| #endif
|
|
|
| - int fEntryCount;
|
| - size_t fEntryBytes;
|
| - int fClientDetachedCount;
|
| - size_t fClientDetachedBytes;
|
| + int fEntryCount;
|
| + size_t fEntryBytes;
|
| + int fClientDetachedCount;
|
| + size_t fClientDetachedBytes;
|
|
|
| // prevents recursive purging
|
| bool fPurging;
|
|
|