| Index: cc/resources/resource_pool.h
|
| diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h
|
| index f79455905dd4513deb491b250a723b445c593d38..e7a9bf3f46d08e062926b0d0996197aad6de37eb 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,13 @@ 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);
|
| + scoped_ptr<ScopedResource> TryAcquireOldBusyResource(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 +61,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 +72,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_;
|
|
|
|
|