Chromium Code Reviews| Index: cc/tiles/tile_manager.h |
| diff --git a/cc/tiles/tile_manager.h b/cc/tiles/tile_manager.h |
| index abffc7cb5998794580de7a4956646a0ea6e40ff3..1d0a8ea2b814b24338761b09caae976ba93fd218 100644 |
| --- a/cc/tiles/tile_manager.h |
| +++ b/cc/tiles/tile_manager.h |
| @@ -90,9 +90,9 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats); |
| // 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 : public TileTaskRunnerClient { |
| +class CC_EXPORT TileManager { |
| public: |
| - enum NamedTaskSet { |
| + enum TaskSet : int { |
| REQUIRED_FOR_ACTIVATION, |
| REQUIRED_FOR_DRAW, |
| // PixelBufferTileTaskWorkerPool depends on ALL being last. |
|
reveman
2015/12/02 05:22:55
not sure we need this enum still but we should at
ericrk
2015/12/02 21:28:09
removed.
|
| @@ -101,15 +101,13 @@ class CC_EXPORT TileManager : public TileTaskRunnerClient { |
| // tile_task_runner.h |
|
reveman
2015/12/02 05:22:55
and this one
ericrk
2015/12/02 21:28:09
Done.
|
| }; |
| - static_assert(NamedTaskSet::ALL == (kNumberOfTaskSets - 1), |
| - "NamedTaskSet::ALL should be equal to kNumberOfTaskSets" |
| - "minus 1"); |
| + enum : int { kNumberOfTaskSets = TaskSet::ALL + 1 }; |
| static scoped_ptr<TileManager> Create(TileManagerClient* client, |
| base::SequencedTaskRunner* task_runner, |
| size_t scheduled_raster_task_limit, |
| bool use_partial_raster); |
| - ~TileManager() override; |
| + virtual ~TileManager(); |
| // Assigns tile memory and schedules work to prepare tiles for drawing. |
| // - Runs client_->NotifyReadyToActivate() when all tiles required for |
| @@ -217,9 +215,6 @@ class CC_EXPORT TileManager : public TileTaskRunnerClient { |
| virtual void Release(Tile* tile); |
| Tile::Id GetUniqueTileId() { return ++next_tile_id_; } |
| - // Overriden from TileTaskRunnerClient: |
| - void DidFinishRunningTileTasks(TaskSet task_set) override; |
| - |
| typedef std::vector<PrioritizedTile> PrioritizedTileVector; |
| typedef std::set<Tile*> TileSet; |
| @@ -288,6 +283,17 @@ class CC_EXPORT TileManager : public TileTaskRunnerClient { |
| ResourceFormat DetermineResourceFormat(const Tile* tile) const; |
| bool DetermineResourceRequiresSwizzle(const Tile* tile) const; |
| + void DidFinishRunningTileTasks(TaskSet task_set); |
| + |
| + void BuildTaskGraph( |
| + const PrioritizedTileVector& tiles_that_need_to_be_rasterized, |
| + TaskGraph* graph, |
| + std::array<scoped_refptr<TileTask>, kNumberOfTaskSets>* |
|
reveman
2015/12/02 05:22:55
The code that had to deal with task sets in the pa
ericrk
2015/12/02 21:28:09
std::array is now allowed.
Re structured this - t
|
| + new_task_set_finished_tasks); |
| + |
| + scoped_refptr<base::trace_event::ConvertableToTraceFormat> |
| + ScheduledTasksStateAsValue() const; |
| + |
| TileManagerClient* client_; |
| scoped_refptr<base::SequencedTaskRunner> task_runner_; |
| ResourcePool* resource_pool_; |
| @@ -311,10 +317,10 @@ class CC_EXPORT TileManager : public TileTaskRunnerClient { |
| std::vector<Tile*> released_tiles_; |
| - // Queue used when scheduling raster tasks. |
| - TileTaskQueue raster_queue_; |
|
reveman
2015/12/02 05:22:55
Keep this as "TaskGraph task_graph_"? See my other
|
| + std::vector<scoped_refptr<TileTask>> orphan_tasks_; |
| - std::vector<scoped_refptr<RasterTask>> orphan_raster_tasks_; |
| + using TaskSetCollection = std::bitset<kNumberOfTaskSets>; |
| + TaskSetCollection tasks_pending_; |
| UniqueNotifier more_tiles_need_prepare_check_notifier_; |
| @@ -338,6 +344,8 @@ class CC_EXPORT TileManager : public TileTaskRunnerClient { |
| uint64_t prepare_tiles_count_; |
| uint64_t next_tile_id_; |
| + base::WeakPtrFactory<TileManager> task_set_finished_weak_ptr_factory_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(TileManager); |
| }; |