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

Unified Diff: cc/trees/property_tree.cc

Issue 1884613005: cc : Simplify layer skipping logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/layer_tree_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/property_tree.cc
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index 54f4ec47496a50ce1f32c6c0ef4d220859a6c18c..c3d35a1b068953bc5501ac91cd9bde413cb72c06 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -1244,11 +1244,12 @@ void EffectTree::UpdateIsDrawn(EffectNode* node, EffectNode* parent_node) {
// 1) Nodes that contribute to copy requests, whether hidden or not, must be
// drawn.
// 2) Nodes that have a background filter.
- // 3) Nodes with animating screen space opacity are drawn if their parent is
- // drawn irrespective of their opacity.
+ // 3) Nodes with animating screen space opacity on main thread or pending tree
+ // are drawn if their parent is drawn irrespective of their opacity.
if (node->data.has_copy_request)
node->data.is_drawn = true;
- else if (node->data.opacity == 0.f && !node->data.has_animated_opacity &&
+ else if (node->data.opacity == 0.f &&
+ (!node->data.has_animated_opacity || property_trees()->is_active) &&
!node->data.has_background_filters)
node->data.is_drawn = false;
else if (parent_node)
@@ -1328,13 +1329,7 @@ bool EffectTree::ContributesToDrawnSurface(int id) {
// copy requests.
EffectNode* node = Node(id);
EffectNode* parent_node = parent(node);
- bool contributes_to_drawn_surface =
- node->data.is_drawn &&
- (node->data.opacity != 0.f || node->data.has_animated_opacity ||
- node->data.has_background_filters);
- if (parent_node && !parent_node->data.is_drawn)
- contributes_to_drawn_surface = false;
- return contributes_to_drawn_surface;
+ return node->data.is_drawn && (!parent_node || parent_node->data.is_drawn);
}
void EffectTree::ResetChangeTracking() {
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698