Index: cc/resources/resource_pool.h |
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h |
index f79455905dd4513deb491b250a723b445c593d38..0889a350bd2ce5ae97d286f5f24863a95fbd3413 100644 |
--- a/cc/resources/resource_pool.h |
+++ b/cc/resources/resource_pool.h |
@@ -5,7 +5,7 @@ |
#ifndef CC_RESOURCES_RESOURCE_POOL_H_ |
#define CC_RESOURCES_RESOURCE_POOL_H_ |
-#include <list> |
+#include <deque> |
#include "base/memory/scoped_ptr.h" |
#include "cc/base/cc_export.h" |
@@ -27,7 +27,10 @@ class CC_EXPORT ResourcePool { |
scoped_ptr<ScopedResource> AcquireResource(const gfx::Size& size, |
ResourceFormat format); |
- void ReleaseResource(scoped_ptr<ScopedResource>); |
+ scoped_ptr<ScopedResource> TryAcquireOldResource(const gfx::Size& size, |
+ ResourceFormat format, |
+ uint64 id); |
+ void ReleaseResource(scoped_ptr<ScopedResource> resource, uint64_t id); |
void SetResourceUsageLimits(size_t max_memory_usage_bytes, |
size_t max_unused_memory_usage_bytes, |
@@ -55,7 +58,7 @@ class CC_EXPORT ResourcePool { |
bool ResourceUsageTooHigh(); |
private: |
- void DidFinishUsingResource(ScopedResource* resource); |
+ void DidFinishUsingResource(ScopedResource* resource, uint64_t id); |
ResourceProvider* resource_provider_; |
const GLenum target_; |
@@ -66,7 +69,13 @@ class CC_EXPORT ResourcePool { |
size_t unused_memory_usage_bytes_; |
size_t resource_count_; |
- typedef std::list<ScopedResource*> ResourceList; |
+ struct PoolResource { |
+ PoolResource(ScopedResource* resource, uint64_t id) |
+ : resource(resource), id(id) {} |
+ ScopedResource* resource; |
+ uint64_t id; |
+ }; |
+ typedef std::deque<PoolResource> ResourceList; |
ResourceList unused_resources_; |
ResourceList busy_resources_; |