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

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

Issue 2537683002: cc: Add image decode queue functionality to image manager. (Closed)
Patch Set: image-queue: update Created 4 years 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
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 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 : client_(client), 349 : client_(client),
350 task_runner_(task_runner), 350 task_runner_(task_runner),
351 resource_pool_(nullptr), 351 resource_pool_(nullptr),
352 tile_task_manager_(nullptr), 352 tile_task_manager_(nullptr),
353 scheduled_raster_task_limit_(scheduled_raster_task_limit), 353 scheduled_raster_task_limit_(scheduled_raster_task_limit),
354 use_partial_raster_(use_partial_raster), 354 use_partial_raster_(use_partial_raster),
355 use_gpu_rasterization_(false), 355 use_gpu_rasterization_(false),
356 all_tiles_that_need_to_be_rasterized_are_scheduled_(true), 356 all_tiles_that_need_to_be_rasterized_are_scheduled_(true),
357 did_check_for_completed_tasks_since_last_schedule_tasks_(true), 357 did_check_for_completed_tasks_since_last_schedule_tasks_(true),
358 did_oom_on_last_assign_(false), 358 did_oom_on_last_assign_(false),
359 image_controller_(task_runner),
359 more_tiles_need_prepare_check_notifier_( 360 more_tiles_need_prepare_check_notifier_(
360 task_runner_, 361 task_runner_,
361 base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared, 362 base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared,
362 base::Unretained(this))), 363 base::Unretained(this))),
363 signals_check_notifier_(task_runner_, 364 signals_check_notifier_(task_runner_,
364 base::Bind(&TileManager::CheckAndIssueSignals, 365 base::Bind(&TileManager::CheckAndIssueSignals,
365 base::Unretained(this))), 366 base::Unretained(this))),
366 has_scheduled_tile_tasks_(false), 367 has_scheduled_tile_tasks_(false),
367 prepare_tiles_count_(0u), 368 prepare_tiles_count_(0u),
368 next_tile_id_(0u), 369 next_tile_id_(0u),
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 draw_info.set_use_resource(); 1040 draw_info.set_use_resource();
1040 draw_info.resource_ = resource; 1041 draw_info.resource_ = resource;
1041 draw_info.contents_swizzled_ = DetermineResourceRequiresSwizzle(tile); 1042 draw_info.contents_swizzled_ = DetermineResourceRequiresSwizzle(tile);
1042 1043
1043 DCHECK(draw_info.IsReadyToDraw()); 1044 DCHECK(draw_info.IsReadyToDraw());
1044 draw_info.set_was_ever_ready_to_draw(); 1045 draw_info.set_was_ever_ready_to_draw();
1045 1046
1046 client_->NotifyTileStateChanged(tile); 1047 client_->NotifyTileStateChanged(tile);
1047 } 1048 }
1048 1049
1050 void TileManager::NotifyFrameFinished() {
1051 image_controller_.NotifyFrameFinished();
1052 }
1053
1049 ScopedTilePtr TileManager::CreateTile(const Tile::CreateInfo& info, 1054 ScopedTilePtr TileManager::CreateTile(const Tile::CreateInfo& info,
1050 int layer_id, 1055 int layer_id,
1051 int source_frame_number, 1056 int source_frame_number,
1052 int flags) { 1057 int flags) {
1053 // We need to have a tile task worker pool to do anything meaningful with 1058 // We need to have a tile task worker pool to do anything meaningful with
1054 // tiles. 1059 // tiles.
1055 DCHECK(tile_task_manager_); 1060 DCHECK(tile_task_manager_);
1056 ScopedTilePtr tile( 1061 ScopedTilePtr tile(
1057 new Tile(this, info, layer_id, source_frame_number, flags)); 1062 new Tile(this, info, layer_id, source_frame_number, flags));
1058 DCHECK(tiles_.find(tile->id()) == tiles_.end()); 1063 DCHECK(tiles_.find(tile->id()) == tiles_.end());
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
1341 all_tile_tasks_completed = false; 1346 all_tile_tasks_completed = false;
1342 did_notify_all_tile_tasks_completed = false; 1347 did_notify_all_tile_tasks_completed = false;
1343 } 1348 }
1344 1349
1345 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; 1350 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default;
1346 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( 1351 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule(
1347 PrioritizedWorkToSchedule&& other) = default; 1352 PrioritizedWorkToSchedule&& other) = default;
1348 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; 1353 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default;
1349 1354
1350 } // namespace cc 1355 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698