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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 3876 matching lines...) Expand 10 before | Expand all | Expand 10 after
3887 3887
3888 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {} 3888 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {}
3889 3889
3890 void LayerTreeHostImpl::SetTreeLayerFilterMutated( 3890 void LayerTreeHostImpl::SetTreeLayerFilterMutated(
3891 ElementId element_id, 3891 ElementId element_id,
3892 LayerTreeImpl* tree, 3892 LayerTreeImpl* tree,
3893 const FilterOperations& filters) { 3893 const FilterOperations& filters) {
3894 if (!tree) 3894 if (!tree)
3895 return; 3895 return;
3896 3896
3897 const int layer_id = tree->LayerIdByElementId(element_id); 3897 PropertyTrees* property_trees = tree->property_trees();
3898 DCHECK(tree->property_trees()->IsInIdToIndexMap( 3898 DCHECK_EQ(1u,
3899 PropertyTrees::TreeType::EFFECT, layer_id)); 3899 property_trees->element_id_to_effect_node_index.count(element_id));
3900 const int effect_id = 3900 const int effect_node_index =
3901 tree->property_trees()->effect_id_to_index_map[layer_id]; 3901 property_trees->element_id_to_effect_node_index[element_id];
3902 if (effect_id != EffectTree::kInvalidNodeId) 3902 property_trees->effect_tree.OnFilterAnimated(filters, effect_node_index,
3903 tree->property_trees()->effect_tree.OnFilterAnimated(filters, effect_id, 3903 tree);
3904 tree);
3905 } 3904 }
3906 3905
3907 void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id, 3906 void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id,
3908 LayerTreeImpl* tree, 3907 LayerTreeImpl* tree,
3909 float opacity) { 3908 float opacity) {
3910 if (!tree) 3909 if (!tree)
3911 return; 3910 return;
3912 3911
3913 const int layer_id = tree->LayerIdByElementId(element_id); 3912 PropertyTrees* property_trees = tree->property_trees();
3914 DCHECK(tree->property_trees()->IsInIdToIndexMap( 3913 DCHECK_EQ(1u,
3915 PropertyTrees::TreeType::EFFECT, layer_id)); 3914 property_trees->element_id_to_effect_node_index.count(element_id));
3916 const int effect_id = 3915 const int effect_node_index =
3917 tree->property_trees()->effect_id_to_index_map[layer_id]; 3916 property_trees->element_id_to_effect_node_index[element_id];
3918 if (effect_id != EffectTree::kInvalidNodeId) 3917 property_trees->effect_tree.OnOpacityAnimated(opacity, effect_node_index,
3919 tree->property_trees()->effect_tree.OnOpacityAnimated(opacity, effect_id, 3918 tree);
3920 tree);
3921 } 3919 }
3922 3920
3923 void LayerTreeHostImpl::SetTreeLayerTransformMutated( 3921 void LayerTreeHostImpl::SetTreeLayerTransformMutated(
3924 ElementId element_id, 3922 ElementId element_id,
3925 LayerTreeImpl* tree, 3923 LayerTreeImpl* tree,
3926 const gfx::Transform& transform) { 3924 const gfx::Transform& transform) {
3927 if (!tree) 3925 if (!tree)
3928 return; 3926 return;
3929 3927
3930 const int layer_id = tree->LayerIdByElementId(element_id); 3928 PropertyTrees* property_trees = tree->property_trees();
3931 DCHECK(tree->property_trees()->IsInIdToIndexMap( 3929 DCHECK_EQ(
3932 PropertyTrees::TreeType::TRANSFORM, layer_id)); 3930 1u, property_trees->element_id_to_transform_node_index.count(element_id));
3933 const int transform_id = 3931 const int transform_node_index =
3934 tree->property_trees()->transform_id_to_index_map[layer_id]; 3932 property_trees->element_id_to_transform_node_index[element_id];
3935 if (transform_id != TransformTree::kInvalidNodeId) 3933 property_trees->transform_tree.OnTransformAnimated(
3936 tree->property_trees()->transform_tree.OnTransformAnimated( 3934 transform, transform_node_index, tree);
3937 transform, transform_id, tree); 3935 if (LayerImpl* layer = tree->LayerByElementId(element_id))
3938 LayerImpl* layer = tree->LayerById(layer_id);
3939 if (layer)
3940 layer->set_was_ever_ready_since_last_transform_animation(false); 3936 layer->set_was_ever_ready_since_last_transform_animation(false);
3941 } 3937 }
3942 3938
3943 void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated( 3939 void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated(
3944 ElementId element_id, 3940 ElementId element_id,
3945 LayerTreeImpl* tree, 3941 LayerTreeImpl* tree,
3946 const gfx::ScrollOffset& scroll_offset) { 3942 const gfx::ScrollOffset& scroll_offset) {
3947 if (!tree) 3943 if (!tree)
3948 return; 3944 return;
3949 3945
3950 const int layer_id = tree->LayerIdByElementId(element_id); 3946 const int layer_id = tree->LayerIdByElementId(element_id);
3951 DCHECK(tree->property_trees()->IsInIdToIndexMap( 3947 PropertyTrees* property_trees = tree->property_trees();
3952 PropertyTrees::TreeType::TRANSFORM, layer_id)); 3948 DCHECK(property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::SCROLL,
3953 DCHECK(tree->property_trees()->IsInIdToIndexMap( 3949 layer_id));
3954 PropertyTrees::TreeType::SCROLL, layer_id)); 3950 DCHECK_EQ(
3955 const int transform_id = 3951 1u, property_trees->element_id_to_transform_node_index.count(element_id));
3956 tree->property_trees()->transform_id_to_index_map[layer_id]; 3952 int transform_node_index =
3957 const int scroll_id = 3953 property_trees->element_id_to_transform_node_index[element_id];
3958 tree->property_trees()->scroll_id_to_index_map[layer_id]; 3954 // TODO(wkorman): Build map from element id to scroll node in property tree
3959 if (transform_id != TransformTree::kInvalidNodeId && 3955 // builder and make use of it below.
3960 scroll_id != ScrollTree::kInvalidNodeId) { 3956 const int scroll_node_index =
3961 tree->property_trees()->scroll_tree.OnScrollOffsetAnimated( 3957 property_trees->scroll_id_to_index_map[layer_id];
3962 layer_id, transform_id, scroll_id, scroll_offset, tree); 3958 if (scroll_node_index != ScrollTree::kInvalidNodeId) {
3959 property_trees->scroll_tree.OnScrollOffsetAnimated(
3960 layer_id, transform_node_index, scroll_node_index, scroll_offset, tree);
3963 // Run mutation callbacks to respond to updated scroll offset. 3961 // Run mutation callbacks to respond to updated scroll offset.
3964 Mutate(CurrentBeginFrameArgs().frame_time); 3962 Mutate(CurrentBeginFrameArgs().frame_time);
3965 } 3963 }
3966 } 3964 }
3967 3965
3968 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment( 3966 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment(
3969 const LayerImpl* layer) const { 3967 const LayerImpl* layer) const {
3970 return mutator_host_->AnimationsPreserveAxisAlignment(layer->element_id()); 3968 return mutator_host_->AnimationsPreserveAxisAlignment(layer->element_id());
3971 } 3969 }
3972 3970
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
4092 worker_context_visibility_ = 4090 worker_context_visibility_ =
4093 worker_context->CacheController()->ClientBecameVisible(); 4091 worker_context->CacheController()->ClientBecameVisible();
4094 } else { 4092 } else {
4095 worker_context->CacheController()->ClientBecameNotVisible( 4093 worker_context->CacheController()->ClientBecameNotVisible(
4096 std::move(worker_context_visibility_)); 4094 std::move(worker_context_visibility_));
4097 } 4095 }
4098 } 4096 }
4099 } 4097 }
4100 4098
4101 } // namespace cc 4099 } // namespace cc
OLDNEW
« 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