| 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 |