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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 2408243002: cc : Move screen space scale factor to root transform node (Closed)
Patch Set: comments 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
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/property_tree_builder.cc
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index 2ad73f16529b919037f8de37bb3761280031b17b..8d3f4ef189d58e50bcfa112fa2dfc9b1950eda07 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);
}
@@ -646,10 +644,14 @@ bool AddTransformNodeIfNeeded(
node->source_node_id = source_index;
node->post_local_scale_factor = post_local_scale_factor;
if (is_root) {
- data_for_children->property_trees->transform_tree.SetDeviceTransform(
- *data_from_ancestor.device_transform, layer->position());
+ float page_scale_factor_for_root =
+ is_page_scale_layer ? data_from_ancestor.page_scale_factor : 1.f;
data_for_children->property_trees->transform_tree
- .SetDeviceTransformScaleFactor(*data_from_ancestor.device_transform);
+ .SetRootTransformsAndScales(data_for_children->property_trees
+ ->transform_tree.device_scale_factor(),
+ page_scale_factor_for_root,
+ *data_from_ancestor.device_transform,
+ layer->position());
} else {
node->source_offset = source_offset;
node->update_post_local_transform(layer->position(),
@@ -1346,8 +1348,11 @@ void BuildPropertyTreesTopLevelInternal(
draw_property_utils::UpdateElasticOverscroll(
property_trees, overscroll_elasticity_layer, elastic_overscroll);
property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport));
- property_trees->transform_tree.SetDeviceTransform(device_transform,
- root_layer->position());
+ float page_scale_factor_for_root =
+ page_scale_layer == root_layer ? page_scale_factor : 1.f;
+ property_trees->transform_tree.SetRootTransformsAndScales(
+ device_scale_factor, page_scale_factor_for_root, device_transform,
+ root_layer->position());
return;
}
@@ -1391,6 +1396,7 @@ void BuildPropertyTreesTopLevelInternal(
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);
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/property_tree_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698