Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index 85bdbececf615f892b1b4e1b89399b9a530ab733..5cedeaec17d229bea8ec3fe7a8e3271bf99e1a79 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -48,6 +48,7 @@ struct DataForRecursion { |
bool should_flatten; |
bool target_is_clipped; |
bool is_hidden; |
+ bool contributes_to_copy_request; |
const gfx::Transform* device_transform; |
gfx::Vector2dF scroll_compensation_adjustment; |
gfx::Transform compound_transform_since_render_target; |
@@ -574,6 +575,14 @@ bool AddEffectNodeIfNeeded( |
node.data.opacity = layer->opacity(); |
node.data.screen_space_opacity = layer->opacity(); |
node.data.has_render_surface = should_create_render_surface; |
+ // A node contributes to copy request when it is in the subtree of a layer |
+ // with a copy request and is visible inside the copy request. |
+ data_for_children->contributes_to_copy_request = |
+ layer->HasCopyRequest() || |
+ (data_from_ancestor.contributes_to_copy_request && |
+ layer->opacity() != 0.f); |
+ node.data.contributes_to_copy_request = |
ajuma
2016/01/15 15:02:47
Does this value need to get updated on the composi
jaydasika
2016/01/19 20:02:49
Done.
|
+ data_for_children->contributes_to_copy_request; |
if (!is_root) { |
// The effect node's transform id is used only when we create a render |
@@ -637,10 +646,6 @@ void BuildPropertyTreesInternal( |
AddClipNodeIfNeeded(data_from_parent, layer, created_render_surface, |
created_transform_node, &data_for_children); |
- data_for_children.is_hidden = |
- layer->hide_layer_and_subtree() || data_from_parent.is_hidden; |
- layer->set_is_hidden_from_property_trees(data_for_children.is_hidden); |
- |
for (size_t i = 0; i < layer->children().size(); ++i) { |
if (!layer->child_at(i)->scroll_parent()) { |
DataForRecursionFromChild<LayerType> data_from_child; |
@@ -732,6 +737,7 @@ void BuildPropertyTreesTopLevelInternal( |
data_for_recursion.should_flatten = false; |
data_for_recursion.target_is_clipped = false; |
data_for_recursion.is_hidden = false; |
+ data_for_recursion.contributes_to_copy_request = false; |
data_for_recursion.device_transform = &device_transform; |
data_for_recursion.transform_tree->clear(); |