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

Unified Diff: cc/resources/tile_manager.cc

Issue 285373003: Reland "cc: Remove layers that are not drawn from tile manager." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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') | no next file » | 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 9868a4e180553b16e62b9fd35b9d24420532580a..9494586e2e8bbe139731351ff9809f7587712096 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -677,6 +677,19 @@ void TileManager::GetTilesWithAssignedBins(PrioritizedTileSet* tiles) {
}
}
+void TileManager::CleanUpLayers() {
+ for (size_t i = 0; i < layers_.size(); ++i) {
+ if (layers_[i]->IsDrawnRenderSurfaceLayerListMember())
+ continue;
+
+ layers_[i]->DidUnregisterLayer();
+ std::swap(layers_[i], layers_.back());
+ layers_.pop_back();
+ --i;
+ prioritized_tiles_dirty_ = true;
+ }
+}
+
void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) {
TRACE_EVENT0("cc", "TileManager::ManageTiles");
@@ -686,6 +699,8 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) {
prioritized_tiles_dirty_ = true;
}
+ CleanUpLayers();
+
// 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_) {
« no previous file with comments | « cc/resources/tile_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698