Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index adbffbe9896451235e3951c664dfab072fa857a5..2100b3c55db5ec81da2901163d527edd5e620da7 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -25,10 +25,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; |
@@ -451,7 +447,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(); |
@@ -535,17 +531,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) |
- ->data.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) |
+ ->data.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) |
->data.transform_id); |
DCHECK_NE( |
data_for_children->property_trees->transform_tree.TargetId(node->id), |
- kInvalidPropertyTreeNodeId); |
+ TransformTree::kInvalidNodeId); |
node->data.has_potential_animation = has_potentially_animated_transform; |
node->data.is_currently_animating = layer->TransformIsAnimating(); |
@@ -931,8 +932,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.data.transform_id = kRootPropertyTreeNodeId; |
- node.data.clip_id = kViewportClipTreeNodeId; |
+ node.data.transform_id = TransformTree::kDeviceNodeId; |
+ node.data.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; |
@@ -995,7 +996,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.data.max_scroll_offset_affected_by_page_scale = |
!data_from_ancestor.property_trees->transform_tree |
.Node(layer->scroll_clip_layer()->transform_tree_index()) |
@@ -1247,10 +1248,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; |
@@ -1289,10 +1290,10 @@ void BuildPropertyTreesTopLevelInternal( |
root_clip.data.resets_clip = true; |
root_clip.data.applies_local_clip = true; |
root_clip.data.clip = gfx::RectF(viewport); |
- root_clip.data.transform_id = kRootPropertyTreeNodeId; |
+ root_clip.data.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); |