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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 2087963003: cc: Stop creating unused 0 property tree nodes other than transform Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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 fcfe0b991c3e13d62b1eafc3a2650fe0c90de7c3..65300b22e4498a13fdc64189fa8ded70ba75912d 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -30,10 +30,6 @@ class LayerTreeHost;
namespace {
-static const int kInvalidPropertyTreeNodeId = -1;
-static const int kRootPropertyTreeNodeId = 0;
-static const int kViewportClipTreeNodeId = 1;
-
template <typename LayerType>
struct DataForRecursion {
PropertyTrees* property_trees;
@@ -521,7 +517,7 @@ bool AddTransformNodeIfNeeded(
LayerType* transform_parent = GetTransformParent(data_from_ancestor, layer);
DCHECK(is_root || transform_parent);
- int parent_index = kRootPropertyTreeNodeId;
+ int parent_index = TransformTree::kDeviceNodeId;
if (transform_parent)
parent_index = transform_parent->transform_tree_index();
@@ -605,17 +601,22 @@ bool AddTransformNodeIfNeeded(
ShouldFlattenTransform(layer) || has_surface;
DCHECK_GT(data_from_ancestor.property_trees->effect_tree.size(), 0u);
- data_for_children->property_trees->transform_tree.SetTargetId(
- node->id, data_for_children->property_trees->effect_tree
- .Node(data_from_ancestor.render_target)
- ->transform_id);
+ if (data_from_ancestor.render_target == EffectTree::kInvalidNodeId) {
+ data_for_children->property_trees->transform_tree.SetTargetId(
+ node->id, TransformTree::kDeviceNodeId);
+ } else {
+ data_for_children->property_trees->transform_tree.SetTargetId(
+ node->id, data_for_children->property_trees->effect_tree
+ .Node(data_from_ancestor.render_target)
+ ->transform_id);
+ }
data_for_children->property_trees->transform_tree.SetContentTargetId(
node->id, data_for_children->property_trees->effect_tree
.Node(data_for_children->render_target)
->transform_id);
DCHECK_NE(
data_for_children->property_trees->transform_tree.TargetId(node->id),
- kInvalidPropertyTreeNodeId);
+ TransformTree::kInvalidNodeId);
node->has_potential_animation = has_potentially_animated_transform;
node->is_currently_animating = TransformIsAnimating(layer);
@@ -996,8 +997,8 @@ bool AddEffectNodeIfNeeded(
// into. Transform node created from root layer (includes device scale
// factor) and clip node created from root layer (include viewports) applies
// to root render surface's content, but not root render surface itself.
- node.transform_id = kRootPropertyTreeNodeId;
- node.clip_id = kViewportClipTreeNodeId;
+ node.transform_id = TransformTree::kDeviceNodeId;
+ node.clip_id = ClipTree::kRootNodeId;
}
data_for_children->effect_tree_parent = effect_tree.Insert(node, parent_id);
int node_id = data_for_children->effect_tree_parent;
@@ -1060,7 +1061,7 @@ void AddScrollNodeIfNeeded(
if (layer->scroll_clip_layer()) {
clip_bounds = layer->scroll_clip_layer()->bounds();
DCHECK(layer->scroll_clip_layer()->transform_tree_index() !=
- kInvalidPropertyTreeNodeId);
+ TransformTree::kInvalidNodeId);
node.max_scroll_offset_affected_by_page_scale =
!data_from_ancestor.property_trees->transform_tree
.Node(layer->scroll_clip_layer()->transform_tree_index())
@@ -1311,10 +1312,10 @@ void BuildPropertyTreesTopLevelInternal(
data_for_recursion.property_trees = property_trees;
data_for_recursion.transform_tree_parent = nullptr;
data_for_recursion.transform_fixed_parent = nullptr;
- data_for_recursion.render_target = kRootPropertyTreeNodeId;
- data_for_recursion.clip_tree_parent = kRootPropertyTreeNodeId;
- data_for_recursion.effect_tree_parent = kInvalidPropertyTreeNodeId;
- data_for_recursion.scroll_tree_parent = kRootPropertyTreeNodeId;
+ data_for_recursion.render_target = EffectTree::kInvalidNodeId;
+ data_for_recursion.clip_tree_parent = ClipTree::kInvalidNodeId;
+ data_for_recursion.effect_tree_parent = EffectTree::kInvalidNodeId;
+ data_for_recursion.scroll_tree_parent = ScrollTree::kInvalidNodeId;
data_for_recursion.page_scale_layer = page_scale_layer;
data_for_recursion.inner_viewport_scroll_layer = inner_viewport_scroll_layer;
data_for_recursion.outer_viewport_scroll_layer = outer_viewport_scroll_layer;
@@ -1353,10 +1354,10 @@ void BuildPropertyTreesTopLevelInternal(
root_clip.resets_clip = true;
root_clip.applies_local_clip = true;
root_clip.clip = gfx::RectF(viewport);
- root_clip.transform_id = kRootPropertyTreeNodeId;
+ root_clip.transform_id = TransformTree::kDeviceNodeId;
data_for_recursion.clip_tree_parent =
data_for_recursion.property_trees->clip_tree.Insert(
- root_clip, kRootPropertyTreeNodeId);
+ root_clip, ClipTree::kInvalidNodeId);
DataForRecursionFromChild<LayerType> data_from_child;
BuildPropertyTreesInternal(root_layer, data_for_recursion, &data_from_child);
« 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