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

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 334953003: cc: Early out sooner in UpdateTilePriorities when !CanHaveTilings(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: canhavetilings: masks2 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 | « no previous file | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer_impl.cc
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index eabfdc69b844f609b90de612f2c735facf69f134..55f4c39dddb9395856977b948ec83ee3a35332d8 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -390,14 +390,6 @@ void PictureLayerImpl::UpdateTilePriorities() {
TRACE_EVENT0("cc", "PictureLayerImpl::UpdateTilePriorities");
DoPostCommitInitializationIfNeeded();
- UpdateIdealScales();
- // TODO(sohanjg): Avoid needlessly update priorities when syncing to a
- // non-updated tree which will then be updated immediately afterwards.
- should_update_tile_priorities_ = true;
- if (CanHaveTilings()) {
- ManageTilings(draw_properties().screen_space_transform_is_animating,
- draw_properties().maximum_animation_contents_scale);
- }
if (layer_tree_impl()->device_viewport_valid_for_tile_management()) {
visible_rect_for_tile_priority_ = visible_content_rect();
@@ -405,6 +397,23 @@ void PictureLayerImpl::UpdateTilePriorities() {
screen_space_transform_for_tile_priority_ = screen_space_transform();
}
+ if (!CanHaveTilings()) {
+ ideal_page_scale_ = 0.f;
+ ideal_device_scale_ = 0.f;
+ ideal_contents_scale_ = 0.f;
+ ideal_source_scale_ = 0.f;
+ SanityCheckTilingState();
+ return;
+ }
+
+ // TODO(sohanjg): Avoid needlessly update priorities when syncing to a
+ // non-updated tree which will then be updated immediately afterwards.
+ should_update_tile_priorities_ = true;
+
+ UpdateIdealScales();
+ ManageTilings(draw_properties().screen_space_transform_is_animating,
+ draw_properties().maximum_animation_contents_scale);
+
if (!tilings_->num_tilings())
return;
@@ -1165,7 +1174,7 @@ void PictureLayerImpl::CleanUpTilingsOnActiveLayer(
float twin_low_res_scale = 0.f;
PictureLayerImpl* twin = twin_layer_;
- if (twin) {
+ if (twin && twin->CanHaveTilings()) {
min_acceptable_high_res_scale = std::min(
min_acceptable_high_res_scale,
std::min(twin->raster_contents_scale_, twin->ideal_contents_scale_));
@@ -1288,15 +1297,6 @@ float PictureLayerImpl::MaximumTilingContentsScale() const {
}
void PictureLayerImpl::UpdateIdealScales() {
- if (!CanHaveTilings()) {
enne (OOO) 2014/06/18 23:08:02 I kind of liked this code being in UpdateIdealScal
danakj 2014/06/19 01:03:52 ok, i can leave it there. I liked the idea of movi
- ideal_page_scale_ = draw_properties().page_scale_factor;
- ideal_device_scale_ = draw_properties().device_scale_factor;
- ideal_contents_scale_ = draw_properties().ideal_contents_scale;
- ideal_source_scale_ =
- ideal_contents_scale_ / ideal_page_scale_ / ideal_device_scale_;
- return;
- }
-
float min_contents_scale = MinimumContentsScale();
DCHECK_GT(min_contents_scale, 0.f);
float min_page_scale = layer_tree_impl()->min_page_scale_factor();
« no previous file with comments | « no previous file | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698