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); |
}; |