| Index: cc/layers/layer.cc
|
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
|
| index 04fa7f4a4236956fa9657f1ed3ae28b0479c252c..aad3951fad76014f7738db11c453a2fcdb4aa73a 100644
|
| --- a/cc/layers/layer.cc
|
| +++ b/cc/layers/layer.cc
|
| @@ -472,12 +472,8 @@ void Layer::SetOpacity(float opacity) {
|
| SetSubtreePropertyChanged();
|
| if (layer_tree_host_ && !force_rebuild) {
|
| PropertyTrees* property_trees = layer_tree_host_->property_trees();
|
| - auto effect_id_to_index =
|
| - property_trees->layer_id_to_effect_node_index.find(id());
|
| - if (effect_id_to_index !=
|
| - property_trees->layer_id_to_effect_node_index.end()) {
|
| - EffectNode* node =
|
| - property_trees->effect_tree.Node(effect_id_to_index->second);
|
| + if (EffectNode* node =
|
| + property_trees->effect_tree.FindNodeFromOwningLayerId(id())) {
|
| node->opacity = opacity;
|
| node->effect_changed = true;
|
| property_trees->effect_tree.set_needs_update(true);
|
| @@ -579,12 +575,9 @@ void Layer::SetPosition(const gfx::PointF& position) {
|
|
|
| SetSubtreePropertyChanged();
|
| PropertyTrees* property_trees = layer_tree_host_->property_trees();
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - TransformNode* transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| + if (TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id())) {
|
| + DCHECK_EQ(transform_tree_index(), transform_node->id);
|
| transform_node->update_post_local_transform(position, transform_origin());
|
| if (transform_node->sticky_position_constraint_id >= 0) {
|
| StickyPositionNodeData* sticky_data =
|
| @@ -632,16 +625,12 @@ void Layer::SetTransform(const gfx::Transform& transform) {
|
| SetSubtreePropertyChanged();
|
| if (layer_tree_host_) {
|
| PropertyTrees* property_trees = layer_tree_host_->property_trees();
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| + if (TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id())) {
|
| // We need to trigger a rebuild if we could have affected 2d axis
|
| - // alignment. We'll check to see if transform and inputs_.transform
|
| - // are axis
|
| - // align with respect to one another.
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - TransformNode* transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| + // alignment. We'll check to see if transform and inputs_.transform are
|
| + // axis align with respect to one another.
|
| + DCHECK_EQ(transform_tree_index(), transform_node->id);
|
| bool preserves_2d_axis_alignment =
|
| Are2dAxisAligned(inputs_.transform, transform);
|
| transform_node->local = transform;
|
| @@ -673,12 +662,9 @@ void Layer::SetTransformOrigin(const gfx::Point3F& transform_origin) {
|
|
|
| SetSubtreePropertyChanged();
|
| PropertyTrees* property_trees = layer_tree_host_->property_trees();
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - TransformNode* transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| + if (TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id())) {
|
| + DCHECK_EQ(transform_tree_index(), transform_node->id);
|
| transform_node->update_pre_local_transform(transform_origin);
|
| transform_node->update_post_local_transform(position(), transform_origin);
|
| transform_node->needs_local_transform_update = true;
|
| @@ -776,12 +762,9 @@ void Layer::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) {
|
| if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable())
|
| property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
|
|
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - TransformNode* transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| + if (TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id())) {
|
| + DCHECK_EQ(transform_tree_index(), transform_node->id);
|
| transform_node->scroll_offset = CurrentScrollOffset();
|
| transform_node->needs_local_transform_update = true;
|
| property_trees->transform_tree.set_needs_update(true);
|
| @@ -809,12 +792,9 @@ void Layer::SetScrollOffsetFromImplSide(
|
| if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable())
|
| property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset);
|
|
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - TransformNode* transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| + if (TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id())) {
|
| + DCHECK_EQ(transform_tree_index(), transform_node->id);
|
| transform_node->scroll_offset = CurrentScrollOffset();
|
| transform_node->needs_local_transform_update = true;
|
| property_trees->transform_tree.set_needs_update(true);
|
| @@ -1347,21 +1327,13 @@ void Layer::OnIsAnimatingChanged(const PropertyAnimationState& mask,
|
| DCHECK(layer_tree_host_);
|
| PropertyTrees* property_trees = layer_tree_host_->property_trees();
|
|
|
| - TransformNode* transform_node = nullptr;
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM,
|
| - id())) {
|
| - DCHECK_EQ(transform_tree_index(),
|
| - property_trees->layer_id_to_transform_node_index[id()]);
|
| - transform_node =
|
| - property_trees->transform_tree.Node(transform_tree_index());
|
| - }
|
| + TransformNode* transform_node =
|
| + property_trees->transform_tree.FindNodeFromOwningLayerId(id());
|
| + DCHECK(!transform_node || transform_node->id == transform_tree_index());
|
|
|
| - EffectNode* effect_node = nullptr;
|
| - if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) {
|
| - DCHECK_EQ(effect_tree_index(),
|
| - property_trees->layer_id_to_effect_node_index[id()]);
|
| - effect_node = property_trees->effect_tree.Node(effect_tree_index());
|
| - }
|
| + EffectNode* effect_node =
|
| + property_trees->effect_tree.FindNodeFromOwningLayerId(id());
|
| + DCHECK(!effect_node || effect_node->id == effect_tree_index());
|
|
|
| for (int property = TargetProperty::FIRST_TARGET_PROPERTY;
|
| property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) {
|
|
|