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

Unified Diff: cc/resources/tile_manager.cc

Issue 168083002: cc: Remove RasterWorkerPool::Task. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove RasterTaskQueueIterator Created 6 years, 10 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/test/fake_tile_manager.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 60e69faccdb2b30ee6a9f864bedf5b2e611378bb..941845124fdbc43fd06c5ef9a0c1ee4614bc22f6 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -214,7 +214,7 @@ TileManager::~TileManager() {
CleanUpReleasedTiles();
DCHECK_EQ(0u, tiles_.size());
- RasterWorkerPool::RasterTask::Queue empty[NUM_RASTER_WORKER_POOL_TYPES];
+ RasterTaskQueue empty[NUM_RASTER_WORKER_POOL_TYPES];
raster_worker_pool_delegate_->ScheduleTasks(empty);
// This should finish all pending tasks and release any uninitialized
@@ -354,9 +354,8 @@ void TileManager::GetTilesWithAssignedBins(PrioritizedTileSet* tiles) {
const ManagedTileState::TileVersion& tile_version =
tile->GetTileVersionForDrawing();
bool tile_is_ready_to_draw = tile_version.IsReadyToDraw();
- bool tile_is_active =
- tile_is_ready_to_draw ||
- !mts.tile_versions[mts.raster_mode].raster_task_.is_null();
+ bool tile_is_active = tile_is_ready_to_draw ||
+ mts.tile_versions[mts.raster_mode].raster_task_;
// Get the active priority and bin.
TilePriority active_priority = tile->priority(ACTIVE_TREE);
@@ -686,7 +685,7 @@ void TileManager::AssignGpuMemoryToTiles(
if (raster_bytes_if_rastered <= max_raster_bytes) {
// If we don't have the required version, and it's not in flight
// then we'll have to pay to create a new task.
- if (!tile_version.resource_ && tile_version.raster_task_.is_null()) {
+ if (!tile_version.resource_ && !tile_version.raster_task_) {
tile_bytes += bytes_if_allocated;
tile_resources++;
}
@@ -819,15 +818,17 @@ void TileManager::ScheduleTasks(
DCHECK(tile_version.requires_resource());
DCHECK(!tile_version.resource_);
- if (tile_version.raster_task_.is_null())
+ if (!tile_version.raster_task_)
tile_version.raster_task_ = CreateRasterTask(tile);
size_t pool_type = tile->use_gpu_rasterization()
? RASTER_WORKER_POOL_TYPE_DIRECT
: RASTER_WORKER_POOL_TYPE_DEFAULT;
- raster_queue_[pool_type]
- .Append(tile_version.raster_task_, tile->required_for_activation());
+ raster_queue_[pool_type].items.push_back(RasterTaskQueue::Item(
+ tile_version.raster_task_.get(), tile->required_for_activation()));
+ raster_queue_[pool_type].required_for_activation_count +=
+ tile->required_for_activation();
}
// We must reduce the amount of unused resoruces before calling
@@ -842,7 +843,7 @@ void TileManager::ScheduleTasks(
did_check_for_completed_tasks_since_last_schedule_tasks_ = false;
}
-RasterWorkerPool::Task TileManager::CreateImageDecodeTask(
+scoped_refptr<internal::WorkerPoolTask> TileManager::CreateImageDecodeTask(
Tile* tile,
SkPixelRef* pixel_ref) {
return RasterWorkerPool::CreateImageDecodeTask(
@@ -855,7 +856,8 @@ RasterWorkerPool::Task TileManager::CreateImageDecodeTask(
base::Unretained(pixel_ref)));
}
-RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) {
+scoped_refptr<internal::RasterWorkerPoolTask> TileManager::CreateRasterTask(
+ Tile* tile) {
ManagedTileState& mts = tile->managed_state();
scoped_ptr<ScopedResource> resource =
@@ -863,7 +865,7 @@ RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) {
const ScopedResource* const_resource = resource.get();
// Create and queue all image decode tasks that this tile depends on.
- RasterWorkerPool::Task::Set decode_tasks;
+ internal::WorkerPoolTask::Vector decode_tasks;
PixelRefTaskMap& existing_pixel_refs = image_decode_tasks_[tile->layer_id()];
for (PicturePileImpl::PixelRefIterator iter(
tile->content_rect(), tile->contents_scale(), tile->picture_pile());
@@ -875,13 +877,14 @@ RasterWorkerPool::RasterTask TileManager::CreateRasterTask(Tile* tile) {
// Append existing image decode task if available.
PixelRefTaskMap::iterator decode_task_it = existing_pixel_refs.find(id);
if (decode_task_it != existing_pixel_refs.end()) {
- decode_tasks.Insert(decode_task_it->second);
+ decode_tasks.push_back(decode_task_it->second);
continue;
}
// Create and append new image decode task for this pixel ref.
- RasterWorkerPool::Task decode_task = CreateImageDecodeTask(tile, pixel_ref);
- decode_tasks.Insert(decode_task);
+ scoped_refptr<internal::WorkerPoolTask> decode_task =
+ CreateImageDecodeTask(tile, pixel_ref);
+ decode_tasks.push_back(decode_task);
existing_pixel_refs[id] = decode_task;
}
@@ -942,8 +945,8 @@ void TileManager::OnRasterTaskCompleted(
Tile* tile = it->second;
ManagedTileState& mts = tile->managed_state();
ManagedTileState::TileVersion& tile_version = mts.tile_versions[raster_mode];
- DCHECK(!tile_version.raster_task_.is_null());
- tile_version.raster_task_.Reset();
+ DCHECK(tile_version.raster_task_);
+ tile_version.raster_task_ = NULL;
if (was_canceled) {
++update_visible_tiles_stats_.canceled_count;
« no previous file with comments | « cc/resources/tile_manager.h ('k') | cc/test/fake_tile_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698