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

Unified Diff: cc/resources/tile_manager.cc

Issue 296453009: cc: Get rid of rasterizer delegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed redundant get Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/resources/tile_manager_perftest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/tile_manager.cc
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index 82b6bf4913ea3a47b0ff04661c1870a4eace4535..2b3e652f0f282c4dcf996775d056986991294c4c 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -367,13 +367,11 @@ scoped_ptr<TileManager> TileManager::Create(
TileManagerClient* client,
ResourcePool* resource_pool,
Rasterizer* rasterizer,
- Rasterizer* gpu_rasterizer,
bool use_rasterize_on_demand,
RenderingStatsInstrumentation* rendering_stats_instrumentation) {
return make_scoped_ptr(new TileManager(client,
resource_pool,
rasterizer,
- gpu_rasterizer,
use_rasterize_on_demand,
rendering_stats_instrumentation));
}
@@ -382,11 +380,11 @@ TileManager::TileManager(
TileManagerClient* client,
ResourcePool* resource_pool,
Rasterizer* rasterizer,
- Rasterizer* gpu_rasterizer,
bool use_rasterize_on_demand,
RenderingStatsInstrumentation* rendering_stats_instrumentation)
: client_(client),
resource_pool_(resource_pool),
+ rasterizer_(rasterizer),
prioritized_tiles_dirty_(false),
all_tiles_that_need_to_be_rasterized_have_memory_(true),
all_tiles_required_for_activation_have_memory_(true),
@@ -399,12 +397,7 @@ TileManager::TileManager(
did_initialize_visible_tile_(false),
did_check_for_completed_tasks_since_last_schedule_tasks_(true),
use_rasterize_on_demand_(use_rasterize_on_demand) {
- Rasterizer* rasterizers[NUM_RASTERIZER_TYPES] = {
- rasterizer, // RASTERIZER_TYPE_DEFAULT
- gpu_rasterizer, // RASTERIZER_TYPE_GPU
- };
- rasterizer_delegate_ =
- RasterizerDelegate::Create(this, rasterizers, arraysize(rasterizers));
+ rasterizer_->SetClient(this);
}
TileManager::~TileManager() {
@@ -415,14 +408,14 @@ TileManager::~TileManager() {
CleanUpReleasedTiles();
DCHECK_EQ(0u, tiles_.size());
- RasterTaskQueue empty[NUM_RASTERIZER_TYPES];
- rasterizer_delegate_->ScheduleTasks(empty);
+ RasterTaskQueue empty;
+ rasterizer_->ScheduleTasks(&empty);
orphan_raster_tasks_.clear();
// This should finish all pending tasks and release any uninitialized
// resources.
- rasterizer_delegate_->Shutdown();
- rasterizer_delegate_->CheckForCompletedTasks();
+ rasterizer_->Shutdown();
+ rasterizer_->CheckForCompletedTasks();
DCHECK_EQ(0u, bytes_releasable_);
DCHECK_EQ(0u, resources_releasable_);
@@ -500,7 +493,7 @@ void TileManager::DidFinishRunningTasks() {
!memory_usage_above_limit)
return;
- rasterizer_delegate_->CheckForCompletedTasks();
+ rasterizer_->CheckForCompletedTasks();
did_check_for_completed_tasks_since_last_schedule_tasks_ = true;
TileVector tiles_that_need_to_be_rasterized;
@@ -707,7 +700,7 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) {
// We need to call CheckForCompletedTasks() once in-between each call
// to ScheduleTasks() to prevent canceled tasks from being scheduled.
if (!did_check_for_completed_tasks_since_last_schedule_tasks_) {
- rasterizer_delegate_->CheckForCompletedTasks();
+ rasterizer_->CheckForCompletedTasks();
did_check_for_completed_tasks_since_last_schedule_tasks_ = true;
}
@@ -736,7 +729,7 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) {
bool TileManager::UpdateVisibleTiles() {
TRACE_EVENT0("cc", "TileManager::UpdateVisibleTiles");
- rasterizer_delegate_->CheckForCompletedTasks();
+ rasterizer_->CheckForCompletedTasks();
did_check_for_completed_tasks_since_last_schedule_tasks_ = true;
TRACE_EVENT_INSTANT1(
@@ -1013,8 +1006,7 @@ void TileManager::ScheduleTasks(
DCHECK(did_check_for_completed_tasks_since_last_schedule_tasks_);
- for (size_t i = 0; i < NUM_RASTERIZER_TYPES; ++i)
- raster_queue_[i].Reset();
+ raster_queue_.Reset();
// Build a new task queue containing all task currently needed. Tasks
// are added in order of priority, highest priority task first.
@@ -1032,12 +1024,9 @@ void TileManager::ScheduleTasks(
if (!tile_version.raster_task_)
tile_version.raster_task_ = CreateRasterTask(tile);
- size_t pool_type = tile->use_gpu_rasterization() ? RASTERIZER_TYPE_GPU
- : RASTERIZER_TYPE_DEFAULT;
-
- raster_queue_[pool_type].items.push_back(RasterTaskQueue::Item(
+ raster_queue_.items.push_back(RasterTaskQueue::Item(
tile_version.raster_task_.get(), tile->required_for_activation()));
- raster_queue_[pool_type].required_for_activation_count +=
+ raster_queue_.required_for_activation_count +=
tile->required_for_activation();
}
@@ -1048,7 +1037,7 @@ void TileManager::ScheduleTasks(
// Schedule running of |raster_tasks_|. This replaces any previously
// scheduled tasks and effectively cancels all tasks not present
// in |raster_tasks_|.
- rasterizer_delegate_->ScheduleTasks(raster_queue_);
+ rasterizer_->ScheduleTasks(&raster_queue_);
// It's now safe to clean up orphan tasks as raster worker pool is not
// allowed to keep around unreferenced raster tasks after ScheduleTasks() has
@@ -1633,11 +1622,9 @@ bool TileManager::EvictionTileIterator::EvictionOrderComparator::operator()(
return a_priority.IsHigherPriorityThan(b_priority);
}
-void TileManager::SetRasterizersForTesting(Rasterizer* rasterizer,
- Rasterizer* gpu_rasterizer) {
- Rasterizer* rasterizers[2] = {rasterizer, gpu_rasterizer};
- rasterizer_delegate_ =
- RasterizerDelegate::Create(this, rasterizers, arraysize(rasterizers));
+void TileManager::SetRasterizerForTesting(Rasterizer* rasterizer) {
+ rasterizer_ = rasterizer;
+ rasterizer_->SetClient(this);
}
} // namespace cc
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/resources/tile_manager_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698