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

Unified Diff: cc/resources/picture_layer_tiling.cc

Issue 343463004: Move occlusion info to TilePriority. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/picture_layer_impl_unittest.cc ('k') | cc/resources/prioritized_tile_set_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/picture_layer_tiling.cc
diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc
index 33e9038d4a2f30bff6bd3bad17bd1ece0286074a..deaee6a2d94e52e8a405a89a61d81985f9d2a8ff 100644
--- a/cc/resources/picture_layer_tiling.cc
+++ b/cc/resources/picture_layer_tiling.cc
@@ -467,7 +467,10 @@ void PictureLayerTiling::UpdateTilePriorities(
current_eventually_rect_ = eventually_rect;
eviction_tiles_cache_valid_ = false;
- TilePriority now_priority(resolution_, TilePriority::NOW, 0);
+ bool occluded = true;
+ TilePriority now_priority(resolution_, !occluded, TilePriority::NOW, 0);
+ TilePriority now_and_occluded_priority(
+ resolution_, occluded, TilePriority::NOW, 0);
float content_to_screen_scale =
1.0f / (contents_scale_ * layer_contents_scale);
@@ -482,9 +485,7 @@ void PictureLayerTiling::UpdateTilePriorities(
continue;
Tile* tile = find->second.get();
- tile->SetPriority(tree, now_priority);
-
- // Set whether tile is occluded or not.
+ // Determine whether tile is occluded or not.
bool is_occluded = false;
if (occlusion_tracker) {
gfx::Rect tile_query_rect = ScaleToEnclosingRect(
@@ -495,7 +496,12 @@ void PictureLayerTiling::UpdateTilePriorities(
is_occluded = occlusion_tracker->Occluded(
render_target, tile_query_rect, draw_transform);
}
- tile->set_is_occluded(is_occluded);
+
+ if (is_occluded) {
+ tile->SetPriority(tree, now_and_occluded_priority);
+ } else {
+ tile->SetPriority(tree, now_priority);
+ }
}
// Assign soon priority to skewport tiles.
@@ -515,7 +521,8 @@ void PictureLayerTiling::UpdateTilePriorities(
visible_rect_in_content_space.ManhattanInternalDistance(tile_bounds) *
content_to_screen_scale;
- TilePriority priority(resolution_, TilePriority::SOON, distance_to_visible);
+ TilePriority priority(
+ resolution_, !occluded, TilePriority::SOON, distance_to_visible);
tile->SetPriority(tree, priority);
}
@@ -536,7 +543,7 @@ void PictureLayerTiling::UpdateTilePriorities(
visible_rect_in_content_space.ManhattanInternalDistance(tile_bounds) *
content_to_screen_scale;
TilePriority priority(
- resolution_, TilePriority::EVENTUALLY, distance_to_visible);
+ resolution_, !occluded, TilePriority::EVENTUALLY, distance_to_visible);
tile->SetPriority(tree, priority);
}
@@ -554,6 +561,7 @@ void PictureLayerTiling::UpdateTilePriorities(
Tile* tile = find->second.get();
TilePriority priority(resolution_,
+ !occluded,
TilePriority::SOON,
tile->priority(tree).distance_to_visible);
tile->SetPriority(tree, priority);
« no previous file with comments | « cc/layers/picture_layer_impl_unittest.cc ('k') | cc/resources/prioritized_tile_set_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698