OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/tiles/tile_manager.h" | 5 #include "cc/tiles/tile_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 void OnTaskCompleted() override {} | 275 void OnTaskCompleted() override {} |
276 | 276 |
277 protected: | 277 protected: |
278 ~TaskSetFinishedTaskImpl() override {} | 278 ~TaskSetFinishedTaskImpl() override {} |
279 | 279 |
280 void TaskSetFinished() { | 280 void TaskSetFinished() { |
281 task_runner_->PostTask(FROM_HERE, on_task_set_finished_callback_); | 281 task_runner_->PostTask(FROM_HERE, on_task_set_finished_callback_); |
282 } | 282 } |
283 | 283 |
284 private: | 284 private: |
285 scoped_refptr<base::SequencedTaskRunner> task_runner_; | 285 base::SequencedTaskRunner* task_runner_; |
286 const base::Closure on_task_set_finished_callback_; | 286 const base::Closure on_task_set_finished_callback_; |
287 | 287 |
288 DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl); | 288 DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl); |
289 }; | 289 }; |
290 | 290 |
291 } // namespace | 291 } // namespace |
292 | 292 |
293 RasterTaskCompletionStats::RasterTaskCompletionStats() | 293 RasterTaskCompletionStats::RasterTaskCompletionStats() |
294 : completed_count(0u), canceled_count(0u) {} | 294 : completed_count(0u), canceled_count(0u) {} |
295 | 295 |
296 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> | 296 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> |
297 RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) { | 297 RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) { |
298 std::unique_ptr<base::trace_event::TracedValue> state( | 298 std::unique_ptr<base::trace_event::TracedValue> state( |
299 new base::trace_event::TracedValue()); | 299 new base::trace_event::TracedValue()); |
300 state->SetInteger("completed_count", | 300 state->SetInteger("completed_count", |
301 base::saturated_cast<int>(stats.completed_count)); | 301 base::saturated_cast<int>(stats.completed_count)); |
302 state->SetInteger("canceled_count", | 302 state->SetInteger("canceled_count", |
303 base::saturated_cast<int>(stats.canceled_count)); | 303 base::saturated_cast<int>(stats.canceled_count)); |
304 return std::move(state); | 304 return std::move(state); |
305 } | 305 } |
306 | 306 |
307 TileManager::TileManager(TileManagerClient* client, | 307 TileManager::TileManager(TileManagerClient* client, |
308 scoped_refptr<base::SequencedTaskRunner> task_runner, | 308 base::SequencedTaskRunner* task_runner, |
309 size_t scheduled_raster_task_limit, | 309 size_t scheduled_raster_task_limit, |
310 bool use_partial_raster) | 310 bool use_partial_raster) |
311 : client_(client), | 311 : client_(client), |
312 task_runner_(std::move(task_runner)), | 312 task_runner_(task_runner), |
313 resource_pool_(nullptr), | 313 resource_pool_(nullptr), |
314 tile_task_manager_(nullptr), | 314 tile_task_manager_(nullptr), |
315 scheduled_raster_task_limit_(scheduled_raster_task_limit), | 315 scheduled_raster_task_limit_(scheduled_raster_task_limit), |
316 use_partial_raster_(use_partial_raster), | 316 use_partial_raster_(use_partial_raster), |
317 use_gpu_rasterization_(false), | 317 use_gpu_rasterization_(false), |
318 all_tiles_that_need_to_be_rasterized_are_scheduled_(true), | 318 all_tiles_that_need_to_be_rasterized_are_scheduled_(true), |
319 did_check_for_completed_tasks_since_last_schedule_tasks_(true), | 319 did_check_for_completed_tasks_since_last_schedule_tasks_(true), |
320 did_oom_on_last_assign_(false), | 320 did_oom_on_last_assign_(false), |
321 more_tiles_need_prepare_check_notifier_( | 321 more_tiles_need_prepare_check_notifier_( |
322 task_runner_.get(), | 322 task_runner_, |
323 base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared, | 323 base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared, |
324 base::Unretained(this))), | 324 base::Unretained(this))), |
325 signals_check_notifier_(task_runner_.get(), | 325 signals_check_notifier_(task_runner_, |
326 base::Bind(&TileManager::CheckAndIssueSignals, | 326 base::Bind(&TileManager::CheckAndIssueSignals, |
327 base::Unretained(this))), | 327 base::Unretained(this))), |
328 has_scheduled_tile_tasks_(false), | 328 has_scheduled_tile_tasks_(false), |
329 prepare_tiles_count_(0u), | 329 prepare_tiles_count_(0u), |
330 next_tile_id_(0u), | 330 next_tile_id_(0u), |
331 task_set_finished_weak_ptr_factory_(this) {} | 331 task_set_finished_weak_ptr_factory_(this) {} |
332 | 332 |
333 TileManager::~TileManager() { | 333 TileManager::~TileManager() { |
334 FinishTasksAndCleanUp(); | 334 FinishTasksAndCleanUp(); |
335 } | 335 } |
(...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1166 signals_.all_tile_tasks_completed); | 1166 signals_.all_tile_tasks_completed); |
1167 state->EndDictionary(); | 1167 state->EndDictionary(); |
1168 return std::move(state); | 1168 return std::move(state); |
1169 } | 1169 } |
1170 | 1170 |
1171 // Utility function that can be used to create a "Task set finished" task that | 1171 // Utility function that can be used to create a "Task set finished" task that |
1172 // posts |callback| to |task_runner| when run. | 1172 // posts |callback| to |task_runner| when run. |
1173 scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( | 1173 scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( |
1174 void (TileManager::*callback)()) { | 1174 void (TileManager::*callback)()) { |
1175 return make_scoped_refptr(new TaskSetFinishedTaskImpl( | 1175 return make_scoped_refptr(new TaskSetFinishedTaskImpl( |
1176 task_runner_.get(), | 1176 task_runner_, |
1177 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); | 1177 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); |
1178 } | 1178 } |
1179 | 1179 |
1180 TileManager::MemoryUsage::MemoryUsage() | 1180 TileManager::MemoryUsage::MemoryUsage() |
1181 : memory_bytes_(0), resource_count_(0) {} | 1181 : memory_bytes_(0), resource_count_(0) {} |
1182 | 1182 |
1183 TileManager::MemoryUsage::MemoryUsage(size_t memory_bytes, | 1183 TileManager::MemoryUsage::MemoryUsage(size_t memory_bytes, |
1184 size_t resource_count) | 1184 size_t resource_count) |
1185 : memory_bytes_(static_cast<int64_t>(memory_bytes)), | 1185 : memory_bytes_(static_cast<int64_t>(memory_bytes)), |
1186 resource_count_(static_cast<int>(resource_count)) { | 1186 resource_count_(static_cast<int>(resource_count)) { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1247 void TileManager::Signals::reset() { | 1247 void TileManager::Signals::reset() { |
1248 ready_to_activate = false; | 1248 ready_to_activate = false; |
1249 did_notify_ready_to_activate = false; | 1249 did_notify_ready_to_activate = false; |
1250 ready_to_draw = false; | 1250 ready_to_draw = false; |
1251 did_notify_ready_to_draw = false; | 1251 did_notify_ready_to_draw = false; |
1252 all_tile_tasks_completed = false; | 1252 all_tile_tasks_completed = false; |
1253 did_notify_all_tile_tasks_completed = false; | 1253 did_notify_all_tile_tasks_completed = false; |
1254 } | 1254 } |
1255 | 1255 |
1256 } // namespace cc | 1256 } // namespace cc |
OLD | NEW |