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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 1588093004: Compute if a layer is drawn without LayerTree hierarchy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 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();

Powered by Google App Engine
This is Rietveld 408576698