Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(847)

Side by Side Diff: cc/tiles/tile_manager.cc

Issue 2026663005: cc: Change tile manager to have a raw ptr for the task runner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/tiles/tile_manager.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « cc/tiles/tile_manager.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698