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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 2408243002: cc : Move screen space scale factor to root transform node (Closed)
Patch Set: test Created 4 years, 2 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
Index: cc/trees/property_tree_builder.cc
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index edc102623e0f4d50260d61e4b7850fde76c12804..0c95c45e0bad551335ab4867ff14692cacbdb40a 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -630,12 +630,10 @@ bool AddTransformNodeIfNeeded(
}
float post_local_scale_factor = 1.0f;
- if (is_root)
- post_local_scale_factor =
- data_for_children->property_trees->transform_tree.device_scale_factor();
if (is_page_scale_layer) {
- post_local_scale_factor *= data_from_ancestor.page_scale_factor;
+ if (!is_root)
+ post_local_scale_factor *= data_from_ancestor.page_scale_factor;
data_for_children->property_trees->transform_tree.set_page_scale_factor(
data_from_ancestor.page_scale_factor);
}
@@ -1339,6 +1337,10 @@ void BuildPropertyTreesTopLevelInternal(
draw_property_utils::UpdateElasticOverscroll(
property_trees, overscroll_elasticity_layer, elastic_overscroll);
property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport));
+ float page_scale_factor_for_root =
+ page_scale_layer == root_layer ? page_scale_factor : 1.f;
+ property_trees->transform_tree.SetScreenSpaceScale(
+ device_scale_factor, page_scale_factor_for_root, device_transform);
property_trees->transform_tree.SetDeviceTransform(device_transform,
root_layer->position());
return;
@@ -1379,11 +1381,17 @@ void BuildPropertyTreesTopLevelInternal(
device_scale_factor);
data_for_recursion.safe_opaque_background_color = color;
+ float page_scale_factor_for_root =
+ page_scale_layer == root_layer ? page_scale_factor : 1.f;
+ data_for_recursion.property_trees->transform_tree.SetScreenSpaceScale(
+ device_scale_factor, page_scale_factor_for_root, device_transform);
+
ClipNode root_clip;
root_clip.resets_clip = true;
root_clip.applies_local_clip = true;
root_clip.clip = gfx::RectF(viewport);
root_clip.transform_id = kRootPropertyTreeNodeId;
+ root_clip.target_transform_id = kRootPropertyTreeNodeId;
data_for_recursion.clip_tree_parent =
data_for_recursion.property_trees->clip_tree.Insert(
root_clip, kRootPropertyTreeNodeId);

Powered by Google App Engine
This is Rietveld 408576698