| 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 3759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3770 bool LayerTreeHostImpl::ScrollAnimationUpdateTarget( | 3770 bool LayerTreeHostImpl::ScrollAnimationUpdateTarget( |
| 3771 ScrollNode* scroll_node, | 3771 ScrollNode* scroll_node, |
| 3772 const gfx::Vector2dF& scroll_delta) { | 3772 const gfx::Vector2dF& scroll_delta) { |
| 3773 return animation_host_->ImplOnlyScrollAnimationUpdateTarget( | 3773 return animation_host_->ImplOnlyScrollAnimationUpdateTarget( |
| 3774 scroll_node->owner_id, scroll_delta, | 3774 scroll_node->owner_id, scroll_delta, |
| 3775 active_tree_->property_trees()->scroll_tree.MaxScrollOffset( | 3775 active_tree_->property_trees()->scroll_tree.MaxScrollOffset( |
| 3776 scroll_node->id), | 3776 scroll_node->id), |
| 3777 CurrentBeginFrameArgs().frame_time); | 3777 CurrentBeginFrameArgs().frame_time); |
| 3778 } | 3778 } |
| 3779 | 3779 |
| 3780 bool LayerTreeHostImpl::IsLayerInTree(int layer_id, | 3780 bool LayerTreeHostImpl::IsElementInList(ElementId element_id, |
| 3781 LayerTreeType tree_type) const { | 3781 ElementListType list_type) const { |
| 3782 if (tree_type == LayerTreeType::ACTIVE) { | 3782 if (list_type == ElementListType::ACTIVE) { |
| 3783 return active_tree() ? active_tree()->LayerById(layer_id) != nullptr | 3783 return active_tree() ? active_tree()->LayerById(element_id) != nullptr |
| 3784 : false; | 3784 : false; |
| 3785 } else { | 3785 } else { |
| 3786 if (pending_tree() && pending_tree()->LayerById(layer_id)) | 3786 if (pending_tree() && pending_tree()->LayerById(element_id)) |
| 3787 return true; | 3787 return true; |
| 3788 if (recycle_tree() && recycle_tree()->LayerById(layer_id)) | 3788 if (recycle_tree() && recycle_tree()->LayerById(element_id)) |
| 3789 return true; | 3789 return true; |
| 3790 | 3790 |
| 3791 return false; | 3791 return false; |
| 3792 } | 3792 } |
| 3793 } | 3793 } |
| 3794 | 3794 |
| 3795 void LayerTreeHostImpl::SetMutatorsNeedCommit() {} | 3795 void LayerTreeHostImpl::SetMutatorsNeedCommit() {} |
| 3796 | 3796 |
| 3797 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {} | 3797 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {} |
| 3798 | 3798 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3853 LayerImpl* layer = tree->LayerById(layer_id); | 3853 LayerImpl* layer = tree->LayerById(layer_id); |
| 3854 if (layer) | 3854 if (layer) |
| 3855 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating); | 3855 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating); |
| 3856 } | 3856 } |
| 3857 | 3857 |
| 3858 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment( | 3858 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment( |
| 3859 const LayerImpl* layer) const { | 3859 const LayerImpl* layer) const { |
| 3860 return animation_host_->AnimationsPreserveAxisAlignment(layer->id()); | 3860 return animation_host_->AnimationsPreserveAxisAlignment(layer->id()); |
| 3861 } | 3861 } |
| 3862 | 3862 |
| 3863 void LayerTreeHostImpl::SetLayerFilterMutated(int layer_id, | 3863 void LayerTreeHostImpl::SetElementFilterMutated( |
| 3864 LayerTreeType tree_type, | 3864 ElementId element_id, |
| 3865 const FilterOperations& filters) { | 3865 ElementListType list_type, |
| 3866 if (tree_type == LayerTreeType::ACTIVE) { | 3866 const FilterOperations& filters) { |
| 3867 SetTreeLayerFilterMutated(layer_id, active_tree(), filters); | 3867 if (list_type == ElementListType::ACTIVE) { |
| 3868 SetTreeLayerFilterMutated(element_id, active_tree(), filters); |
| 3868 } else { | 3869 } else { |
| 3869 SetTreeLayerFilterMutated(layer_id, pending_tree(), filters); | 3870 SetTreeLayerFilterMutated(element_id, pending_tree(), filters); |
| 3870 SetTreeLayerFilterMutated(layer_id, recycle_tree(), filters); | 3871 SetTreeLayerFilterMutated(element_id, recycle_tree(), filters); |
| 3871 } | 3872 } |
| 3872 } | 3873 } |
| 3873 | 3874 |
| 3874 void LayerTreeHostImpl::SetLayerOpacityMutated(int layer_id, | 3875 void LayerTreeHostImpl::SetElementOpacityMutated(ElementId element_id, |
| 3875 LayerTreeType tree_type, | 3876 ElementListType list_type, |
| 3876 float opacity) { | 3877 float opacity) { |
| 3877 if (tree_type == LayerTreeType::ACTIVE) { | 3878 if (list_type == ElementListType::ACTIVE) { |
| 3878 SetTreeLayerOpacityMutated(layer_id, active_tree(), opacity); | 3879 SetTreeLayerOpacityMutated(element_id, active_tree(), opacity); |
| 3879 } else { | 3880 } else { |
| 3880 SetTreeLayerOpacityMutated(layer_id, pending_tree(), opacity); | 3881 SetTreeLayerOpacityMutated(element_id, pending_tree(), opacity); |
| 3881 SetTreeLayerOpacityMutated(layer_id, recycle_tree(), opacity); | 3882 SetTreeLayerOpacityMutated(element_id, recycle_tree(), opacity); |
| 3882 } | 3883 } |
| 3883 } | 3884 } |
| 3884 | 3885 |
| 3885 void LayerTreeHostImpl::SetLayerTransformMutated( | 3886 void LayerTreeHostImpl::SetElementTransformMutated( |
| 3886 int layer_id, | 3887 ElementId element_id, |
| 3887 LayerTreeType tree_type, | 3888 ElementListType list_type, |
| 3888 const gfx::Transform& transform) { | 3889 const gfx::Transform& transform) { |
| 3889 if (tree_type == LayerTreeType::ACTIVE) { | 3890 if (list_type == ElementListType::ACTIVE) { |
| 3890 SetTreeLayerTransformMutated(layer_id, active_tree(), transform); | 3891 SetTreeLayerTransformMutated(element_id, active_tree(), transform); |
| 3891 } else { | 3892 } else { |
| 3892 SetTreeLayerTransformMutated(layer_id, pending_tree(), transform); | 3893 SetTreeLayerTransformMutated(element_id, pending_tree(), transform); |
| 3893 SetTreeLayerTransformMutated(layer_id, recycle_tree(), transform); | 3894 SetTreeLayerTransformMutated(element_id, recycle_tree(), transform); |
| 3894 } | 3895 } |
| 3895 } | 3896 } |
| 3896 | 3897 |
| 3897 void LayerTreeHostImpl::SetLayerScrollOffsetMutated( | 3898 void LayerTreeHostImpl::SetElementScrollOffsetMutated( |
| 3898 int layer_id, | 3899 ElementId element_id, |
| 3899 LayerTreeType tree_type, | 3900 ElementListType list_type, |
| 3900 const gfx::ScrollOffset& scroll_offset) { | 3901 const gfx::ScrollOffset& scroll_offset) { |
| 3901 if (tree_type == LayerTreeType::ACTIVE) { | 3902 if (list_type == ElementListType::ACTIVE) { |
| 3902 SetTreeLayerScrollOffsetMutated(layer_id, active_tree(), scroll_offset); | 3903 SetTreeLayerScrollOffsetMutated(element_id, active_tree(), scroll_offset); |
| 3903 } else { | 3904 } else { |
| 3904 SetTreeLayerScrollOffsetMutated(layer_id, pending_tree(), scroll_offset); | 3905 SetTreeLayerScrollOffsetMutated(element_id, pending_tree(), scroll_offset); |
| 3905 SetTreeLayerScrollOffsetMutated(layer_id, recycle_tree(), scroll_offset); | 3906 SetTreeLayerScrollOffsetMutated(element_id, recycle_tree(), scroll_offset); |
| 3906 } | 3907 } |
| 3907 } | 3908 } |
| 3908 | 3909 |
| 3909 void LayerTreeHostImpl::LayerTransformIsPotentiallyAnimatingChanged( | 3910 void LayerTreeHostImpl::ElementTransformIsPotentiallyAnimatingChanged( |
| 3910 int layer_id, | 3911 ElementId element_id, |
| 3911 LayerTreeType tree_type, | 3912 ElementListType list_type, |
| 3912 bool is_animating) { | 3913 bool is_animating) { |
| 3913 if (tree_type == LayerTreeType::ACTIVE) { | 3914 if (list_type == ElementListType::ACTIVE) { |
| 3914 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, active_tree(), | 3915 TreeLayerTransformIsPotentiallyAnimatingChanged(element_id, active_tree(), |
| 3915 is_animating); | 3916 is_animating); |
| 3916 } else { | 3917 } else { |
| 3917 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, pending_tree(), | 3918 TreeLayerTransformIsPotentiallyAnimatingChanged(element_id, pending_tree(), |
| 3918 is_animating); | 3919 is_animating); |
| 3919 } | 3920 } |
| 3920 } | 3921 } |
| 3921 | 3922 |
| 3922 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { | 3923 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { |
| 3923 // TODO(majidvp): We should pass in the original starting scroll position here | 3924 // TODO(majidvp): We should pass in the original starting scroll position here |
| 3924 ScrollStateData scroll_state_data; | 3925 ScrollStateData scroll_state_data; |
| 3925 ScrollState scroll_state(scroll_state_data); | 3926 ScrollState scroll_state(scroll_state_data); |
| 3926 ScrollEnd(&scroll_state); | 3927 ScrollEnd(&scroll_state); |
| 3927 } | 3928 } |
| 3928 | 3929 |
| 3929 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation( | 3930 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation( |
| 3930 int layer_id) const { | 3931 ElementId element_id) const { |
| 3931 if (active_tree()) { | 3932 if (active_tree()) { |
| 3932 LayerImpl* layer = active_tree()->LayerById(layer_id); | 3933 LayerImpl* layer = active_tree()->LayerById(element_id); |
| 3933 if (layer) | 3934 if (layer) |
| 3934 return layer->ScrollOffsetForAnimation(); | 3935 return layer->ScrollOffsetForAnimation(); |
| 3935 } | 3936 } |
| 3936 | 3937 |
| 3937 return gfx::ScrollOffset(); | 3938 return gfx::ScrollOffset(); |
| 3938 } | 3939 } |
| 3939 | 3940 |
| 3940 bool LayerTreeHostImpl::SupportsImplScrolling() const { | 3941 bool LayerTreeHostImpl::SupportsImplScrolling() const { |
| 3941 // Supported in threaded mode. | 3942 // Supported in threaded mode. |
| 3942 return task_runner_provider_->HasImplThread(); | 3943 return task_runner_provider_->HasImplThread(); |
| 3943 } | 3944 } |
| 3944 | 3945 |
| 3945 bool LayerTreeHostImpl::CommitToActiveTree() const { | 3946 bool LayerTreeHostImpl::CommitToActiveTree() const { |
| 3946 // In single threaded mode we skip the pending tree and commit directly to the | 3947 // In single threaded mode we skip the pending tree and commit directly to the |
| 3947 // active tree. | 3948 // active tree. |
| 3948 return !task_runner_provider_->HasImplThread(); | 3949 return !task_runner_provider_->HasImplThread(); |
| 3949 } | 3950 } |
| 3950 | 3951 |
| 3951 } // namespace cc | 3952 } // namespace cc |
| OLD | NEW |