| 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 const base::Closure on_task_set_finished_callback_; | 246 const base::Closure on_task_set_finished_callback_; |
| 247 | 247 |
| 248 DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl); | 248 DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl); |
| 249 }; | 249 }; |
| 250 | 250 |
| 251 } // namespace | 251 } // namespace |
| 252 | 252 |
| 253 RasterTaskCompletionStats::RasterTaskCompletionStats() | 253 RasterTaskCompletionStats::RasterTaskCompletionStats() |
| 254 : completed_count(0u), canceled_count(0u) {} | 254 : completed_count(0u), canceled_count(0u) {} |
| 255 | 255 |
| 256 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 256 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 257 RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) { | 257 RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) { |
| 258 scoped_refptr<base::trace_event::TracedValue> state = | 258 auto state = make_scoped_ptr(new base::trace_event::TracedValue); |
| 259 new base::trace_event::TracedValue(); | |
| 260 state->SetInteger("completed_count", | 259 state->SetInteger("completed_count", |
| 261 base::saturated_cast<int>(stats.completed_count)); | 260 base::saturated_cast<int>(stats.completed_count)); |
| 262 state->SetInteger("canceled_count", | 261 state->SetInteger("canceled_count", |
| 263 base::saturated_cast<int>(stats.canceled_count)); | 262 base::saturated_cast<int>(stats.canceled_count)); |
| 264 return state; | 263 return std::move(state); |
| 265 } | 264 } |
| 266 | 265 |
| 267 // static | 266 // static |
| 268 scoped_ptr<TileManager> TileManager::Create( | 267 scoped_ptr<TileManager> TileManager::Create( |
| 269 TileManagerClient* client, | 268 TileManagerClient* client, |
| 270 base::SequencedTaskRunner* task_runner, | 269 base::SequencedTaskRunner* task_runner, |
| 271 size_t scheduled_raster_task_limit, | 270 size_t scheduled_raster_task_limit, |
| 272 bool use_partial_raster) { | 271 bool use_partial_raster) { |
| 273 return make_scoped_ptr(new TileManager( | 272 return make_scoped_ptr(new TileManager( |
| 274 client, task_runner, scheduled_raster_task_limit, use_partial_raster)); | 273 client, task_runner, scheduled_raster_task_limit, use_partial_raster)); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 | 469 |
| 471 tile_task_runner_->CheckForCompletedTasks(); | 470 tile_task_runner_->CheckForCompletedTasks(); |
| 472 | 471 |
| 473 did_check_for_completed_tasks_since_last_schedule_tasks_ = true; | 472 did_check_for_completed_tasks_since_last_schedule_tasks_ = true; |
| 474 | 473 |
| 475 TRACE_EVENT_INSTANT1("cc", "DidFlush", TRACE_EVENT_SCOPE_THREAD, "stats", | 474 TRACE_EVENT_INSTANT1("cc", "DidFlush", TRACE_EVENT_SCOPE_THREAD, "stats", |
| 476 RasterTaskCompletionStatsAsValue(flush_stats_)); | 475 RasterTaskCompletionStatsAsValue(flush_stats_)); |
| 477 flush_stats_ = RasterTaskCompletionStats(); | 476 flush_stats_ = RasterTaskCompletionStats(); |
| 478 } | 477 } |
| 479 | 478 |
| 480 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 479 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 481 TileManager::BasicStateAsValue() const { | 480 TileManager::BasicStateAsValue() const { |
| 482 scoped_refptr<base::trace_event::TracedValue> value = | 481 auto value = make_scoped_ptr(new base::trace_event::TracedValue); |
| 483 new base::trace_event::TracedValue(); | |
| 484 BasicStateAsValueInto(value.get()); | 482 BasicStateAsValueInto(value.get()); |
| 485 return value; | 483 return std::move(value); |
| 486 } | 484 } |
| 487 | 485 |
| 488 void TileManager::BasicStateAsValueInto( | 486 void TileManager::BasicStateAsValueInto( |
| 489 base::trace_event::TracedValue* state) const { | 487 base::trace_event::TracedValue* state) const { |
| 490 state->SetInteger("tile_count", base::saturated_cast<int>(tiles_.size())); | 488 state->SetInteger("tile_count", base::saturated_cast<int>(tiles_.size())); |
| 491 state->SetBoolean("did_oom_on_last_assign", did_oom_on_last_assign_); | 489 state->SetBoolean("did_oom_on_last_assign", did_oom_on_last_assign_); |
| 492 state->BeginDictionary("global_state"); | 490 state->BeginDictionary("global_state"); |
| 493 global_state_.AsValueInto(state); | 491 global_state_.AsValueInto(state); |
| 494 state->EndDictionary(); | 492 state->EndDictionary(); |
| 495 } | 493 } |
| (...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1097 } | 1095 } |
| 1098 | 1096 |
| 1099 ResourceFormat TileManager::DetermineResourceFormat(const Tile* tile) const { | 1097 ResourceFormat TileManager::DetermineResourceFormat(const Tile* tile) const { |
| 1100 return tile_task_runner_->GetResourceFormat(!tile->is_opaque()); | 1098 return tile_task_runner_->GetResourceFormat(!tile->is_opaque()); |
| 1101 } | 1099 } |
| 1102 | 1100 |
| 1103 bool TileManager::DetermineResourceRequiresSwizzle(const Tile* tile) const { | 1101 bool TileManager::DetermineResourceRequiresSwizzle(const Tile* tile) const { |
| 1104 return tile_task_runner_->GetResourceRequiresSwizzle(!tile->is_opaque()); | 1102 return tile_task_runner_->GetResourceRequiresSwizzle(!tile->is_opaque()); |
| 1105 } | 1103 } |
| 1106 | 1104 |
| 1107 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 1105 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 1108 TileManager::ScheduledTasksStateAsValue() const { | 1106 TileManager::ScheduledTasksStateAsValue() const { |
| 1109 scoped_refptr<base::trace_event::TracedValue> state = | 1107 auto state = make_scoped_ptr(new base::trace_event::TracedValue); |
| 1110 new base::trace_event::TracedValue(); | |
| 1111 | |
| 1112 state->BeginDictionary("tasks_pending"); | 1108 state->BeginDictionary("tasks_pending"); |
| 1113 state->SetBoolean("ready_to_activate", signals_.ready_to_activate); | 1109 state->SetBoolean("ready_to_activate", signals_.ready_to_activate); |
| 1114 state->SetBoolean("ready_to_draw", signals_.ready_to_draw); | 1110 state->SetBoolean("ready_to_draw", signals_.ready_to_draw); |
| 1115 state->SetBoolean("all_tile_tasks_completed", | 1111 state->SetBoolean("all_tile_tasks_completed", |
| 1116 signals_.all_tile_tasks_completed); | 1112 signals_.all_tile_tasks_completed); |
| 1117 state->EndDictionary(); | 1113 state->EndDictionary(); |
| 1118 return state; | 1114 return std::move(state); |
| 1119 } | 1115 } |
| 1120 | 1116 |
| 1121 // Utility function that can be used to create a "Task set finished" task that | 1117 // Utility function that can be used to create a "Task set finished" task that |
| 1122 // posts |callback| to |task_runner| when run. | 1118 // posts |callback| to |task_runner| when run. |
| 1123 scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( | 1119 scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( |
| 1124 void (TileManager::*callback)()) { | 1120 void (TileManager::*callback)()) { |
| 1125 return make_scoped_refptr(new TaskSetFinishedTaskImpl( | 1121 return make_scoped_refptr(new TaskSetFinishedTaskImpl( |
| 1126 task_runner_.get(), | 1122 task_runner_.get(), |
| 1127 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); | 1123 base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); |
| 1128 } | 1124 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1197 void TileManager::Signals::reset() { | 1193 void TileManager::Signals::reset() { |
| 1198 ready_to_activate = false; | 1194 ready_to_activate = false; |
| 1199 did_notify_ready_to_activate = false; | 1195 did_notify_ready_to_activate = false; |
| 1200 ready_to_draw = false; | 1196 ready_to_draw = false; |
| 1201 did_notify_ready_to_draw = false; | 1197 did_notify_ready_to_draw = false; |
| 1202 all_tile_tasks_completed = false; | 1198 all_tile_tasks_completed = false; |
| 1203 did_notify_all_tile_tasks_completed = false; | 1199 did_notify_all_tile_tasks_completed = false; |
| 1204 } | 1200 } |
| 1205 | 1201 |
| 1206 } // namespace cc | 1202 } // namespace cc |
| OLD | NEW |