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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 2619383004: Revise LayerTreeHostImpl to use new element-id-to-node-index maps. (Closed)
Patch Set: Sync to head. Created 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 9d01bd653cb692523f0cfccf3bcc9f098ad0f097..27584765da4fabb8edcdd4d765da2c4ff82a6d87 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -3894,14 +3894,13 @@ void LayerTreeHostImpl::SetTreeLayerFilterMutated(
if (!tree)
return;
- const int layer_id = tree->LayerIdByElementId(element_id);
- DCHECK(tree->property_trees()->IsInIdToIndexMap(
- PropertyTrees::TreeType::EFFECT, layer_id));
- const int effect_id =
- tree->property_trees()->effect_id_to_index_map[layer_id];
- if (effect_id != EffectTree::kInvalidNodeId)
- tree->property_trees()->effect_tree.OnFilterAnimated(filters, effect_id,
- tree);
+ PropertyTrees* property_trees = tree->property_trees();
+ DCHECK_EQ(1u,
+ property_trees->element_id_to_effect_node_index.count(element_id));
+ const int effect_node_index =
+ property_trees->element_id_to_effect_node_index[element_id];
+ property_trees->effect_tree.OnFilterAnimated(filters, effect_node_index,
+ tree);
}
void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id,
@@ -3910,14 +3909,13 @@ void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id,
if (!tree)
return;
- const int layer_id = tree->LayerIdByElementId(element_id);
- DCHECK(tree->property_trees()->IsInIdToIndexMap(
- PropertyTrees::TreeType::EFFECT, layer_id));
- const int effect_id =
- tree->property_trees()->effect_id_to_index_map[layer_id];
- if (effect_id != EffectTree::kInvalidNodeId)
- tree->property_trees()->effect_tree.OnOpacityAnimated(opacity, effect_id,
- tree);
+ PropertyTrees* property_trees = tree->property_trees();
+ DCHECK_EQ(1u,
+ property_trees->element_id_to_effect_node_index.count(element_id));
+ const int effect_node_index =
+ property_trees->element_id_to_effect_node_index[element_id];
+ property_trees->effect_tree.OnOpacityAnimated(opacity, effect_node_index,
+ tree);
}
void LayerTreeHostImpl::SetTreeLayerTransformMutated(
@@ -3927,16 +3925,14 @@ void LayerTreeHostImpl::SetTreeLayerTransformMutated(
if (!tree)
return;
- const int layer_id = tree->LayerIdByElementId(element_id);
- DCHECK(tree->property_trees()->IsInIdToIndexMap(
- PropertyTrees::TreeType::TRANSFORM, layer_id));
- const int transform_id =
- tree->property_trees()->transform_id_to_index_map[layer_id];
- if (transform_id != TransformTree::kInvalidNodeId)
- tree->property_trees()->transform_tree.OnTransformAnimated(
- transform, transform_id, tree);
- LayerImpl* layer = tree->LayerById(layer_id);
- if (layer)
+ PropertyTrees* property_trees = tree->property_trees();
+ DCHECK_EQ(
+ 1u, property_trees->element_id_to_transform_node_index.count(element_id));
+ const int transform_node_index =
+ property_trees->element_id_to_transform_node_index[element_id];
+ property_trees->transform_tree.OnTransformAnimated(
+ transform, transform_node_index, tree);
+ if (LayerImpl* layer = tree->LayerByElementId(element_id))
layer->set_was_ever_ready_since_last_transform_animation(false);
}
@@ -3948,18 +3944,20 @@ void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated(
return;
const int layer_id = tree->LayerIdByElementId(element_id);
- DCHECK(tree->property_trees()->IsInIdToIndexMap(
- PropertyTrees::TreeType::TRANSFORM, layer_id));
- DCHECK(tree->property_trees()->IsInIdToIndexMap(
- PropertyTrees::TreeType::SCROLL, layer_id));
- const int transform_id =
- tree->property_trees()->transform_id_to_index_map[layer_id];
- const int scroll_id =
- tree->property_trees()->scroll_id_to_index_map[layer_id];
- if (transform_id != TransformTree::kInvalidNodeId &&
- scroll_id != ScrollTree::kInvalidNodeId) {
- tree->property_trees()->scroll_tree.OnScrollOffsetAnimated(
- layer_id, transform_id, scroll_id, scroll_offset, tree);
+ PropertyTrees* property_trees = tree->property_trees();
+ DCHECK(property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::SCROLL,
+ layer_id));
+ DCHECK_EQ(
+ 1u, property_trees->element_id_to_transform_node_index.count(element_id));
+ int transform_node_index =
+ property_trees->element_id_to_transform_node_index[element_id];
+ // TODO(wkorman): Build map from element id to scroll node in property tree
+ // builder and make use of it below.
+ const int scroll_node_index =
+ property_trees->scroll_id_to_index_map[layer_id];
+ if (scroll_node_index != ScrollTree::kInvalidNodeId) {
+ property_trees->scroll_tree.OnScrollOffsetAnimated(
+ layer_id, transform_node_index, scroll_node_index, scroll_offset, tree);
// Run mutation callbacks to respond to updated scroll offset.
Mutate(CurrentBeginFrameArgs().frame_time);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698