Chromium Code Reviews| Index: cc/tile_manager.h |
| diff --git a/cc/tile_manager.h b/cc/tile_manager.h |
| index d5590365d45fae7f57c20ad7c05f43d373daea4c..104f94a92b38c27acb34e79493fe76d617e1cd1a 100644 |
| --- a/cc/tile_manager.h |
| +++ b/cc/tile_manager.h |
| @@ -16,6 +16,7 @@ |
| #include "cc/rendering_stats.h" |
| #include "cc/resource_pool.h" |
| #include "cc/tile_priority.h" |
| +#include "cc/worker_pool.h" |
| namespace cc { |
| class RasterWorkerPool; |
| @@ -95,7 +96,7 @@ class CC_EXPORT ManagedTileState { |
| // should no longer have any memory assigned to them. Tile objects are "owned" |
| // by layers; they automatically register with the manager when they are |
| // created, and unregister from the manager when they are deleted. |
| -class CC_EXPORT TileManager { |
| +class CC_EXPORT TileManager : public WorkerPoolClient { |
| public: |
| TileManager(TileManagerClient* client, |
| ResourceProvider *resource_provider, |
| @@ -121,7 +122,12 @@ class CC_EXPORT TileManager { |
| void GetRenderingStats(RenderingStats* stats); |
| bool HasPendingWorkScheduled(WhichTree tree) const; |
| - const MemoryHistory::Entry& memory_stats_from_last_assign() const { return memory_stats_from_last_assign_; } |
| + const MemoryHistory::Entry& memory_stats_from_last_assign() const { |
| + return memory_stats_from_last_assign_; |
| + } |
| + |
| + // Overridden from WorkerPoolClient: |
| + virtual void DidFinishDispatchingCompletionCallbacks() OVERRIDE; |
|
nduca
2013/02/13 10:53:37
Might tweak the name so it has Worker in it so its
reveman
2013/02/13 15:32:58
Now DidFinishDispatchingWorkerPoolCompletionCallba
|
| protected: |
| // Methods called by Tile |
| @@ -151,7 +157,8 @@ class CC_EXPORT TileManager { |
| void DispatchOneImageDecodeTask( |
| scoped_refptr<Tile> tile, skia::LazyPixelRef* pixel_ref); |
| void OnImageDecodeTaskCompleted( |
| - scoped_refptr<Tile> tile, uint32_t pixel_ref_id); |
| + scoped_refptr<Tile> tile, |
| + uint32_t pixel_ref_id); |
| bool CanDispatchRasterTask(Tile* tile); |
| scoped_ptr<ResourcePool::Resource> PrepareTileForRaster(Tile* tile); |
| void DispatchOneRasterTask(scoped_refptr<Tile> tile); |
| @@ -203,9 +210,12 @@ class CC_EXPORT TileManager { |
| typedef base::hash_map<uint32_t, skia::LazyPixelRef*> PixelRefMap; |
| PixelRefMap pending_decode_tasks_; |
| + size_t bytes_pending_raster_; |
| + |
| typedef std::queue<scoped_refptr<Tile> > TileQueue; |
| TileQueue tiles_with_pending_set_pixels_; |
| size_t bytes_pending_set_pixels_; |
| + bool need_shallow_flush_; |
| bool ever_exceeded_memory_budget_; |
| MemoryHistory::Entry memory_stats_from_last_assign_; |