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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 1001833005: Update from https://crrev.com/320343 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Supress Created 5 years, 9 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/proxy.h » ('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 6f3f79235317488bb9b7f52dd887f3e34fad768d..8352ab88dc638ae942422cfa42709123ebb7a9ad 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -33,6 +33,7 @@ struct DataForRecursion {
float page_scale_factor;
float device_scale_factor;
bool in_subtree_of_page_scale_application_layer;
+ bool should_flatten;
const gfx::Transform* device_transform;
};
@@ -124,13 +125,9 @@ void AddTransformNodeIfNeeded(const DataForRecursion& data_from_ancestor,
const bool has_surface = !!layer->render_surface();
- const bool flattening_change = layer->parent() &&
- layer->should_flatten_transform() &&
- !layer->parent()->should_flatten_transform();
-
bool requires_node = is_root || is_scrollable || has_significant_transform ||
has_animated_transform || has_surface ||
- is_page_scale_application_layer || flattening_change;
+ is_page_scale_application_layer;
Layer* transform_parent = GetTransformParent(data_from_ancestor, layer);
@@ -172,6 +169,7 @@ void AddTransformNodeIfNeeded(const DataForRecursion& data_from_ancestor,
data_for_children->transform_tree_parent = layer;
if (!requires_node) {
+ data_for_children->should_flatten |= layer->should_flatten_transform();
gfx::Vector2dF local_offset = layer->position().OffsetFromOrigin() +
layer->transform().To2dTranslation();
layer->set_offset_to_transform_parent(parent_offset + local_offset);
@@ -189,7 +187,9 @@ void AddTransformNodeIfNeeded(const DataForRecursion& data_from_ancestor,
layer->set_transform_tree_index(node->id);
node->data.scrolls = is_scrollable;
- node->data.flattens = layer->should_flatten_transform();
+ node->data.flattens_inherited_transform = data_for_children->should_flatten;
+ node->data.flattens_local_transform = layer->should_flatten_transform();
+ data_for_children->should_flatten = false;
node->data.target_id =
data_from_ancestor.render_target->transform_tree_index();
node->data.content_target_id =
@@ -316,6 +316,7 @@ void PropertyTreeBuilder::BuildPropertyTrees(
data_for_recursion.page_scale_factor = page_scale_factor;
data_for_recursion.device_scale_factor = device_scale_factor;
data_for_recursion.in_subtree_of_page_scale_application_layer = false;
+ data_for_recursion.should_flatten = false;
data_for_recursion.device_transform = &device_transform;
ClipNode root_clip;
« no previous file with comments | « cc/trees/property_tree.cc ('k') | cc/trees/proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698