OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |