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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2049063002: Revert of Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | 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 2794 matching lines...) Expand 10 before | Expand all | Expand 10 after
2805 scroll_tree.ScrollBy(scroll_node, delta, active_tree()); 2805 scroll_tree.ScrollBy(scroll_node, delta, active_tree());
2806 return false; 2806 return false;
2807 } 2807 }
2808 2808
2809 scroll_tree.set_currently_scrolling_node(scroll_node->id); 2809 scroll_tree.set_currently_scrolling_node(scroll_node->id);
2810 2810
2811 gfx::ScrollOffset current_offset = 2811 gfx::ScrollOffset current_offset =
2812 scroll_tree.current_scroll_offset(scroll_node->owner_id); 2812 scroll_tree.current_scroll_offset(scroll_node->owner_id);
2813 gfx::ScrollOffset target_offset = scroll_tree.ClampScrollOffsetToLimits( 2813 gfx::ScrollOffset target_offset = scroll_tree.ClampScrollOffsetToLimits(
2814 current_offset + gfx::ScrollOffset(delta), scroll_node); 2814 current_offset + gfx::ScrollOffset(delta), scroll_node);
2815 DCHECK_EQ( 2815 animation_host_->ImplOnlyScrollAnimationCreate(scroll_node->owner_id,
2816 ElementId(active_tree()->LayerById(scroll_node->owner_id)->element_id()),
2817 scroll_node->data.element_id);
2818
2819 animation_host_->ImplOnlyScrollAnimationCreate(scroll_node->data.element_id,
2820 target_offset, current_offset); 2816 target_offset, current_offset);
2821 2817
2822 SetNeedsOneBeginImplFrame(); 2818 SetNeedsOneBeginImplFrame();
2823 2819
2824 return true; 2820 return true;
2825 } 2821 }
2826 2822
2827 InputHandler::ScrollStatus LayerTreeHostImpl::ScrollAnimated( 2823 InputHandler::ScrollStatus LayerTreeHostImpl::ScrollAnimated(
2828 const gfx::Point& viewport_point, 2824 const gfx::Point& viewport_point,
2829 const gfx::Vector2dF& scroll_delta) { 2825 const gfx::Vector2dF& scroll_delta) {
(...skipping 999 matching lines...) Expand 10 before | Expand all | Expand 10 after
3829 active_tree_->max_page_scale_factor()); 3825 active_tree_->max_page_scale_factor());
3830 } 3826 }
3831 3827
3832 void LayerTreeHostImpl::ScrollAnimationAbort(LayerImpl* layer_impl) { 3828 void LayerTreeHostImpl::ScrollAnimationAbort(LayerImpl* layer_impl) {
3833 return animation_host_->ScrollAnimationAbort(false /* needs_completion */); 3829 return animation_host_->ScrollAnimationAbort(false /* needs_completion */);
3834 } 3830 }
3835 3831
3836 bool LayerTreeHostImpl::ScrollAnimationUpdateTarget( 3832 bool LayerTreeHostImpl::ScrollAnimationUpdateTarget(
3837 ScrollNode* scroll_node, 3833 ScrollNode* scroll_node,
3838 const gfx::Vector2dF& scroll_delta) { 3834 const gfx::Vector2dF& scroll_delta) {
3839 DCHECK_EQ(
3840 ElementId(active_tree()->LayerById(scroll_node->owner_id)->element_id()),
3841 scroll_node->data.element_id);
3842
3843 return animation_host_->ImplOnlyScrollAnimationUpdateTarget( 3835 return animation_host_->ImplOnlyScrollAnimationUpdateTarget(
3844 scroll_node->data.element_id, scroll_delta, 3836 scroll_node->owner_id, scroll_delta,
3845 active_tree_->property_trees()->scroll_tree.MaxScrollOffset( 3837 active_tree_->property_trees()->scroll_tree.MaxScrollOffset(
3846 scroll_node->id), 3838 scroll_node->id),
3847 CurrentBeginFrameArgs().frame_time); 3839 CurrentBeginFrameArgs().frame_time);
3848 } 3840 }
3849 3841
3850 bool LayerTreeHostImpl::IsElementInList(ElementId element_id, 3842 bool LayerTreeHostImpl::IsElementInList(ElementId element_id,
3851 ElementListType list_type) const { 3843 ElementListType list_type) const {
3852 if (list_type == ElementListType::ACTIVE) { 3844 if (list_type == ElementListType::ACTIVE) {
3853 return active_tree() 3845 return active_tree() ? active_tree()->LayerById(element_id) != nullptr
3854 ? active_tree()->LayerByElementId(element_id) != nullptr 3846 : false;
3855 : false;
3856 } else { 3847 } else {
3857 if (pending_tree() && pending_tree()->LayerByElementId(element_id)) 3848 if (pending_tree() && pending_tree()->LayerById(element_id))
3858 return true; 3849 return true;
3859 if (recycle_tree() && recycle_tree()->LayerByElementId(element_id)) 3850 if (recycle_tree() && recycle_tree()->LayerById(element_id))
3860 return true; 3851 return true;
3861 3852
3862 return false; 3853 return false;
3863 } 3854 }
3864 } 3855 }
3865 3856
3866 void LayerTreeHostImpl::SetMutatorsNeedCommit() {} 3857 void LayerTreeHostImpl::SetMutatorsNeedCommit() {}
3867 3858
3868 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {} 3859 void LayerTreeHostImpl::SetMutatorsNeedRebuildPropertyTrees() {}
3869 3860
3870 void LayerTreeHostImpl::SetTreeLayerFilterMutated( 3861 void LayerTreeHostImpl::SetTreeLayerFilterMutated(
3871 ElementId element_id, 3862 int layer_id,
3872 LayerTreeImpl* tree, 3863 LayerTreeImpl* tree,
3873 const FilterOperations& filters) { 3864 const FilterOperations& filters) {
3874 if (!tree) 3865 if (!tree)
3875 return; 3866 return;
3876 3867
3877 LayerImpl* layer = tree->LayerByElementId(element_id); 3868 LayerImpl* layer = tree->LayerById(layer_id);
3878 if (layer) 3869 if (layer)
3879 layer->OnFilterAnimated(filters); 3870 layer->OnFilterAnimated(filters);
3880 } 3871 }
3881 3872
3882 void LayerTreeHostImpl::SetTreeLayerOpacityMutated(ElementId element_id, 3873 void LayerTreeHostImpl::SetTreeLayerOpacityMutated(int layer_id,
3883 LayerTreeImpl* tree, 3874 LayerTreeImpl* tree,
3884 float opacity) { 3875 float opacity) {
3885 if (!tree) 3876 if (!tree)
3886 return; 3877 return;
3887 3878
3888 LayerImpl* layer = tree->LayerByElementId(element_id); 3879 LayerImpl* layer = tree->LayerById(layer_id);
3889 if (layer) 3880 if (layer)
3890 layer->OnOpacityAnimated(opacity); 3881 layer->OnOpacityAnimated(opacity);
3891 } 3882 }
3892 3883
3893 void LayerTreeHostImpl::SetTreeLayerTransformMutated( 3884 void LayerTreeHostImpl::SetTreeLayerTransformMutated(
3894 ElementId element_id, 3885 int layer_id,
3895 LayerTreeImpl* tree, 3886 LayerTreeImpl* tree,
3896 const gfx::Transform& transform) { 3887 const gfx::Transform& transform) {
3897 if (!tree) 3888 if (!tree)
3898 return; 3889 return;
3899 3890
3900 LayerImpl* layer = tree->LayerByElementId(element_id); 3891 LayerImpl* layer = tree->LayerById(layer_id);
3901 if (layer) 3892 if (layer)
3902 layer->OnTransformAnimated(transform); 3893 layer->OnTransformAnimated(transform);
3903 } 3894 }
3904 3895
3905 void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated( 3896 void LayerTreeHostImpl::SetTreeLayerScrollOffsetMutated(
3906 ElementId element_id, 3897 int layer_id,
3907 LayerTreeImpl* tree, 3898 LayerTreeImpl* tree,
3908 const gfx::ScrollOffset& scroll_offset) { 3899 const gfx::ScrollOffset& scroll_offset) {
3909 if (!tree) 3900 if (!tree)
3910 return; 3901 return;
3911 3902
3912 LayerImpl* layer = tree->LayerByElementId(element_id); 3903 LayerImpl* layer = tree->LayerById(layer_id);
3913 if (layer) { 3904 if (layer) {
3914 layer->OnScrollOffsetAnimated(scroll_offset); 3905 layer->OnScrollOffsetAnimated(scroll_offset);
3915 // Run mutation callbacks to respond to updated scroll offset. 3906 // Run mutation callbacks to respond to updated scroll offset.
3916 Mutate(CurrentBeginFrameArgs().frame_time); 3907 Mutate(CurrentBeginFrameArgs().frame_time);
3917 } 3908 }
3918 } 3909 }
3919 3910
3920 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment( 3911 bool LayerTreeHostImpl::AnimationsPreserveAxisAlignment(
3921 const LayerImpl* layer) const { 3912 const LayerImpl* layer) const {
3922 return animation_host_->AnimationsPreserveAxisAlignment(layer->element_id()); 3913 return animation_host_->AnimationsPreserveAxisAlignment(layer->id());
3923 } 3914 }
3924 3915
3925 void LayerTreeHostImpl::SetElementFilterMutated( 3916 void LayerTreeHostImpl::SetElementFilterMutated(
3926 ElementId element_id, 3917 ElementId element_id,
3927 ElementListType list_type, 3918 ElementListType list_type,
3928 const FilterOperations& filters) { 3919 const FilterOperations& filters) {
3929 if (list_type == ElementListType::ACTIVE) { 3920 if (list_type == ElementListType::ACTIVE) {
3930 SetTreeLayerFilterMutated(element_id, active_tree(), filters); 3921 SetTreeLayerFilterMutated(element_id, active_tree(), filters);
3931 } else { 3922 } else {
3932 SetTreeLayerFilterMutated(element_id, pending_tree(), filters); 3923 SetTreeLayerFilterMutated(element_id, pending_tree(), filters);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
3971 3962
3972 void LayerTreeHostImpl::ElementTransformIsAnimatingChanged( 3963 void LayerTreeHostImpl::ElementTransformIsAnimatingChanged(
3973 ElementId element_id, 3964 ElementId element_id,
3974 ElementListType list_type, 3965 ElementListType list_type,
3975 AnimationChangeType change_type, 3966 AnimationChangeType change_type,
3976 bool is_animating) { 3967 bool is_animating) {
3977 LayerTreeImpl* tree = 3968 LayerTreeImpl* tree =
3978 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree(); 3969 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
3979 if (!tree) 3970 if (!tree)
3980 return; 3971 return;
3981 LayerImpl* layer = tree->LayerByElementId(element_id); 3972 LayerImpl* layer = tree->LayerById(element_id);
3982 if (layer) { 3973 if (layer) {
3983 switch (change_type) { 3974 switch (change_type) {
3984 case AnimationChangeType::POTENTIAL: 3975 case AnimationChangeType::POTENTIAL:
3985 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating); 3976 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
3986 break; 3977 break;
3987 case AnimationChangeType::RUNNING: 3978 case AnimationChangeType::RUNNING:
3988 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating); 3979 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
3989 break; 3980 break;
3990 case AnimationChangeType::BOTH: 3981 case AnimationChangeType::BOTH:
3991 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating); 3982 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
3992 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating); 3983 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
3993 break; 3984 break;
3994 } 3985 }
3995 } 3986 }
3996 } 3987 }
3997 3988
3998 void LayerTreeHostImpl::ElementOpacityIsAnimatingChanged( 3989 void LayerTreeHostImpl::ElementOpacityIsAnimatingChanged(
3999 ElementId element_id, 3990 ElementId element_id,
4000 ElementListType list_type, 3991 ElementListType list_type,
4001 AnimationChangeType change_type, 3992 AnimationChangeType change_type,
4002 bool is_animating) { 3993 bool is_animating) {
4003 LayerTreeImpl* tree = 3994 LayerTreeImpl* tree =
4004 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree(); 3995 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4005 if (!tree) 3996 if (!tree)
4006 return; 3997 return;
4007 LayerImpl* layer = tree->LayerByElementId(element_id); 3998 LayerImpl* layer = tree->LayerById(element_id);
4008 if (layer) { 3999 if (layer) {
4009 switch (change_type) { 4000 switch (change_type) {
4010 case AnimationChangeType::POTENTIAL: 4001 case AnimationChangeType::POTENTIAL:
4011 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating); 4002 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4012 break; 4003 break;
4013 case AnimationChangeType::RUNNING: 4004 case AnimationChangeType::RUNNING:
4014 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating); 4005 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4015 break; 4006 break;
4016 case AnimationChangeType::BOTH: 4007 case AnimationChangeType::BOTH:
4017 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating); 4008 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4018 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating); 4009 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4019 break; 4010 break;
4020 } 4011 }
4021 } 4012 }
4022 } 4013 }
4023 4014
4024 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { 4015 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() {
4025 // TODO(majidvp): We should pass in the original starting scroll position here 4016 // TODO(majidvp): We should pass in the original starting scroll position here
4026 ScrollStateData scroll_state_data; 4017 ScrollStateData scroll_state_data;
4027 ScrollState scroll_state(scroll_state_data); 4018 ScrollState scroll_state(scroll_state_data);
4028 ScrollEnd(&scroll_state); 4019 ScrollEnd(&scroll_state);
4029 } 4020 }
4030 4021
4031 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation( 4022 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation(
4032 ElementId element_id) const { 4023 ElementId element_id) const {
4033 if (active_tree()) { 4024 if (active_tree()) {
4034 LayerImpl* layer = active_tree()->LayerByElementId(element_id); 4025 LayerImpl* layer = active_tree()->LayerById(element_id);
4035 if (layer) 4026 if (layer)
4036 return layer->ScrollOffsetForAnimation(); 4027 return layer->ScrollOffsetForAnimation();
4037 } 4028 }
4038 4029
4039 return gfx::ScrollOffset(); 4030 return gfx::ScrollOffset();
4040 } 4031 }
4041 4032
4042 bool LayerTreeHostImpl::SupportsImplScrolling() const { 4033 bool LayerTreeHostImpl::SupportsImplScrolling() const {
4043 // Supported in threaded mode. 4034 // Supported in threaded mode.
4044 return task_runner_provider_->HasImplThread(); 4035 return task_runner_provider_->HasImplThread();
4045 } 4036 }
4046 4037
4047 bool LayerTreeHostImpl::CommitToActiveTree() const { 4038 bool LayerTreeHostImpl::CommitToActiveTree() const {
4048 // In single threaded mode we skip the pending tree and commit directly to the 4039 // In single threaded mode we skip the pending tree and commit directly to the
4049 // active tree. 4040 // active tree.
4050 return !task_runner_provider_->HasImplThread(); 4041 return !task_runner_provider_->HasImplThread();
4051 } 4042 }
4052 4043
4053 bool LayerTreeHostImpl::HasFixedRasterScalePotentialPerformanceRegression() 4044 bool LayerTreeHostImpl::HasFixedRasterScalePotentialPerformanceRegression()
4054 const { 4045 const {
4055 return fixed_raster_scale_attempted_scale_change_history_.count() >= 4046 return fixed_raster_scale_attempted_scale_change_history_.count() >=
4056 kFixedRasterScaleAttemptedScaleChangeThreshold; 4047 kFixedRasterScaleAttemptedScaleChangeThreshold;
4057 } 4048 }
4058 4049
4059 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { 4050 void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() {
4060 fixed_raster_scale_attempted_scale_change_history_.set(0); 4051 fixed_raster_scale_attempted_scale_change_history_.set(0);
4061 } 4052 }
4062 4053
4063 } // namespace cc 4054 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698