Index: cc/resources/resource_pool.h |
diff --git a/cc/resources/resource_pool.h b/cc/resources/resource_pool.h |
index 21bbb0a70d072432048b2a75c2d925d461f81448..ef036420a4cea055401ed80b3520fc5976d0252f 100644 |
--- a/cc/resources/resource_pool.h |
+++ b/cc/resources/resource_pool.h |
@@ -12,10 +12,11 @@ |
#include "cc/output/renderer.h" |
#include "cc/resources/resource.h" |
#include "cc/resources/resource_format.h" |
+#include "cc/resources/resource_provider.h" |
namespace cc { |
-class CC_EXPORT ResourcePool { |
+class CC_EXPORT ResourcePool : public ResourceProviderClient { |
public: |
class CC_EXPORT Resource : public cc::Resource { |
public: |
@@ -56,13 +57,17 @@ class CC_EXPORT ResourcePool { |
return resource_count_ - unused_resources_.size(); |
} |
+ // ResourceProviderClient implementation |
+ virtual void ResourceExported(ResourceProvider::ResourceId id) OVERRIDE; |
+ virtual void ResourceReturned(ResourceProvider::ResourceId id) OVERRIDE; |
+ |
protected: |
explicit ResourcePool(ResourceProvider* resource_provider); |
bool ResourceUsageTooHigh(); |
private: |
- ResourceProvider* resource_provider_; |
+ base::WeakPtr<ResourceProvider> resource_provider_; |
size_t max_memory_usage_bytes_; |
size_t max_unused_memory_usage_bytes_; |
size_t max_resource_count_; |
@@ -72,6 +77,7 @@ class CC_EXPORT ResourcePool { |
typedef std::list<Resource*> ResourceList; |
ResourceList unused_resources_; |
+ ResourceList exported_resources_; |
DISALLOW_COPY_AND_ASSIGN(ResourcePool); |
}; |