Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index a7c66fc1294dd7ffc89a2c0c0668776516f7edd8..fa7079a060def0a8555f2edeaf72d432a69ab65a 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -38,6 +38,7 @@ struct DataForRecursion { |
bool ancestor_clips_subtree; |
const gfx::Transform* device_transform; |
gfx::Vector2dF scroll_compensation_adjustment; |
+ int sequence_number; |
}; |
template <typename LayerType> |
@@ -148,7 +149,7 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor, |
data_for_children->clip_tree->Insert(node, parent_id); |
} |
- layer->set_clip_tree_index( |
+ layer->SetClipTreeIndex( |
has_unclipped_surface ? 0 : data_for_children->clip_tree_parent); |
// TODO(awoloszyn): Right now when we hit a node with a replica, we reset the |
@@ -233,14 +234,14 @@ bool AddTransformNodeIfNeeded( |
local_offset); |
layer->set_should_flatten_transform_from_property_tree( |
data_from_ancestor.should_flatten); |
- layer->set_transform_tree_index(parent_index); |
+ layer->SetTransformTreeIndex(parent_index); |
return false; |
} |
data_for_children->transform_tree->Insert(TransformNode(), parent_index); |
TransformNode* node = data_for_children->transform_tree->back(); |
- layer->set_transform_tree_index(node->id); |
+ layer->SetTransformTreeIndex(node->id); |
node->data.scrolls = is_scrollable; |
node->data.flattens_inherited_transform = data_for_children->should_flatten; |
@@ -326,7 +327,7 @@ void AddOpacityNodeIfNeeded( |
int parent_id = data_from_ancestor.opacity_tree_parent; |
if (!requires_node) { |
- layer->set_opacity_tree_index(parent_id); |
+ layer->SetOpacityTreeIndex(parent_id); |
data_for_children->opacity_tree_parent = parent_id; |
return; |
} |
@@ -336,13 +337,14 @@ void AddOpacityNodeIfNeeded( |
node.data = layer->opacity(); |
data_for_children->opacity_tree_parent = |
data_for_children->opacity_tree->Insert(node, parent_id); |
- layer->set_opacity_tree_index(data_for_children->opacity_tree_parent); |
+ layer->SetOpacityTreeIndex(data_for_children->opacity_tree_parent); |
} |
template <typename LayerType> |
void BuildPropertyTreesInternal( |
LayerType* layer, |
const DataForRecursion<LayerType>& data_from_parent) { |
+ layer->set_property_tree_sequence_number(data_from_parent.sequence_number); |
DataForRecursion<LayerType> data_for_children(data_from_parent); |
if (layer->render_surface()) |
data_for_children.render_target = layer; |
@@ -383,6 +385,8 @@ void BuildPropertyTreesTopLevelInternal(LayerType* root_layer, |
const gfx::Rect& viewport, |
const gfx::Transform& device_transform, |
PropertyTrees* property_trees) { |
+ property_trees->sequence_number++; |
+ |
DataForRecursion<LayerType> data_for_recursion; |
data_for_recursion.transform_tree = &property_trees->transform_tree; |
data_for_recursion.clip_tree = &property_trees->clip_tree; |
@@ -403,6 +407,7 @@ void BuildPropertyTreesTopLevelInternal(LayerType* root_layer, |
data_for_recursion.transform_tree->clear(); |
data_for_recursion.clip_tree->clear(); |
data_for_recursion.opacity_tree->clear(); |
+ data_for_recursion.sequence_number = property_trees->sequence_number; |
ClipNode root_clip; |
root_clip.data.clip = viewport; |