Index: cc/resources/tile_manager.h |
diff --git a/cc/resources/tile_manager.h b/cc/resources/tile_manager.h |
index 51229526c89aefa6bfe7a0b4740676cbbc2be3a0..9754a7690d7bafcc3471b34231a8418643457291 100644 |
--- a/cc/resources/tile_manager.h |
+++ b/cc/resources/tile_manager.h |
@@ -23,6 +23,7 @@ |
#include "cc/resources/tile.h" |
namespace cc { |
+class RasterWorkerPoolDelegate; |
class ResourceProvider; |
class CC_EXPORT TileManagerClient { |
@@ -100,9 +101,6 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient, |
++resources_releasable_; |
} |
} |
- RasterWorkerPool* RasterWorkerPoolForTesting() { |
- return raster_worker_pool_.get(); |
- } |
void SetGlobalStateForTesting( |
const GlobalStateThatImpactsTilePriority& state) { |
@@ -119,7 +117,9 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient, |
protected: |
TileManager(TileManagerClient* client, |
ResourceProvider* resource_provider, |
+ ContextProvider* context_provider, |
scoped_ptr<RasterWorkerPool> raster_worker_pool, |
+ scoped_ptr<RasterWorkerPool> direct_raster_worker_pool, |
size_t max_raster_usage_bytes, |
RenderingStatsInstrumentation* rendering_stats_instrumentation, |
bool use_rasterize_on_demand); |
@@ -160,23 +160,25 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient, |
bool was_canceled); |
inline size_t BytesConsumedIfAllocated(const Tile* tile) const { |
- return Resource::MemorySizeBytes(tile->size(), |
- raster_worker_pool_->GetResourceFormat()); |
+ return Resource::MemorySizeBytes(tile->size(), resource_format_); |
} |
RasterMode DetermineRasterMode(const Tile* tile) const; |
void FreeResourceForTile(Tile* tile, RasterMode mode); |
void FreeResourcesForTile(Tile* tile); |
void FreeUnusedResourcesForTile(Tile* tile); |
- RasterWorkerPool::Task CreateImageDecodeTask(Tile* tile, |
- SkPixelRef* pixel_ref); |
- RasterWorkerPool::RasterTask CreateRasterTask(Tile* tile); |
+ scoped_refptr<internal::WorkerPoolTask> CreateImageDecodeTask( |
+ Tile* tile, |
+ SkPixelRef* pixel_ref); |
+ scoped_refptr<internal::RasterWorkerPoolTask> CreateRasterTask(Tile* tile); |
scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const; |
void UpdatePrioritizedTileSetIfNeeded(); |
TileManagerClient* client_; |
+ ContextProvider* context_provider_; |
+ ResourceFormat resource_format_; |
scoped_ptr<ResourcePool> resource_pool_; |
- scoped_ptr<RasterWorkerPool> raster_worker_pool_; |
+ scoped_ptr<RasterWorkerPoolDelegate> raster_worker_pool_; |
GlobalStateThatImpactsTilePriority global_state_; |
typedef base::hash_map<Tile::Id, Tile*> TileMap; |
@@ -203,7 +205,8 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient, |
bool did_initialize_visible_tile_; |
bool did_check_for_completed_tasks_since_last_schedule_tasks_; |
- typedef base::hash_map<uint32_t, RasterWorkerPool::Task> PixelRefTaskMap; |
+ typedef base::hash_map<uint32_t, scoped_refptr<internal::WorkerPoolTask> > |
+ PixelRefTaskMap; |
typedef base::hash_map<int, PixelRefTaskMap> LayerPixelRefTaskMap; |
LayerPixelRefTaskMap image_decode_tasks_; |
@@ -217,7 +220,8 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient, |
bool use_rasterize_on_demand_; |
// Queue used when scheduling raster tasks. |
- RasterWorkerPool::RasterTask::Queue raster_tasks_; |
+ RasterTaskQueue raster_queue_; |
+ RasterTaskQueue gpu_raster_queue_; |
DISALLOW_COPY_AND_ASSIGN(TileManager); |
}; |