| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/animation/layer_animation_controller.h" | 5 #include "cc/animation/layer_animation_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "cc/animation/animation.h" | 9 #include "cc/animation/animation.h" |
| 10 #include "cc/animation/animation_delegate.h" | 10 #include "cc/animation/animation_delegate.h" |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 // necessarily mean that it needs to be copied over and started; it may | 527 // necessarily mean that it needs to be copied over and started; it may |
| 528 // have already finished. In this case, the impl thread animation will | 528 // have already finished. In this case, the impl thread animation will |
| 529 // have already notified that it has started and the main thread animation | 529 // have already notified that it has started and the main thread animation |
| 530 // will no longer need | 530 // will no longer need |
| 531 // a synchronized start time. | 531 // a synchronized start time. |
| 532 if (!animations_[i]->needs_synchronized_start_time()) | 532 if (!animations_[i]->needs_synchronized_start_time()) |
| 533 continue; | 533 continue; |
| 534 | 534 |
| 535 // Scroll animations always start at the current scroll offset. | 535 // Scroll animations always start at the current scroll offset. |
| 536 if (animations_[i]->target_property() == Animation::ScrollOffset) { | 536 if (animations_[i]->target_property() == Animation::ScrollOffset) { |
| 537 gfx::Vector2dF current_scroll_offset; | 537 gfx::ScrollOffset current_scroll_offset; |
| 538 if (controller_impl->value_provider_) { | 538 if (controller_impl->value_provider_) { |
| 539 current_scroll_offset = | 539 current_scroll_offset = |
| 540 controller_impl->value_provider_->ScrollOffsetForAnimation(); | 540 controller_impl->value_provider_->ScrollOffsetForAnimation(); |
| 541 } else { | 541 } else { |
| 542 // The owning layer isn't yet in the active tree, so the main thread | 542 // The owning layer isn't yet in the active tree, so the main thread |
| 543 // scroll offset will be up-to-date. | 543 // scroll offset will be up-to-date. |
| 544 current_scroll_offset = value_provider_->ScrollOffsetForAnimation(); | 544 current_scroll_offset = value_provider_->ScrollOffsetForAnimation(); |
| 545 } | 545 } |
| 546 animations_[i]->curve()->ToScrollOffsetAnimationCurve()->SetInitialValue( | 546 animations_[i]->curve()->ToScrollOffsetAnimationCurve()->SetInitialValue( |
| 547 current_scroll_offset); | 547 current_scroll_offset); |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 882 } | 882 } |
| 883 | 883 |
| 884 case Animation::BackgroundColor: { | 884 case Animation::BackgroundColor: { |
| 885 // Not yet implemented. | 885 // Not yet implemented. |
| 886 break; | 886 break; |
| 887 } | 887 } |
| 888 | 888 |
| 889 case Animation::ScrollOffset: { | 889 case Animation::ScrollOffset: { |
| 890 const ScrollOffsetAnimationCurve* scroll_offset_animation_curve = | 890 const ScrollOffsetAnimationCurve* scroll_offset_animation_curve = |
| 891 animations_[i]->curve()->ToScrollOffsetAnimationCurve(); | 891 animations_[i]->curve()->ToScrollOffsetAnimationCurve(); |
| 892 const gfx::Vector2dF scroll_offset = | 892 const gfx::ScrollOffset scroll_offset = |
| 893 scroll_offset_animation_curve->GetValue(trimmed); | 893 scroll_offset_animation_curve->GetValue(trimmed); |
| 894 NotifyObserversScrollOffsetAnimated( | 894 NotifyObserversScrollOffsetAnimated( |
| 895 scroll_offset, | 895 scroll_offset, |
| 896 animations_[i]->affects_active_observers(), | 896 animations_[i]->affects_active_observers(), |
| 897 animations_[i]->affects_pending_observers()); | 897 animations_[i]->affects_pending_observers()); |
| 898 break; | 898 break; |
| 899 } | 899 } |
| 900 | 900 |
| 901 // Do nothing for sentinel value. | 901 // Do nothing for sentinel value. |
| 902 case Animation::TargetPropertyEnumSize: | 902 case Animation::TargetPropertyEnumSize: |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 while ((obs = it.GetNext()) != NULL) { | 970 while ((obs = it.GetNext()) != NULL) { |
| 971 if ((notify_active_observers && notify_pending_observers) || | 971 if ((notify_active_observers && notify_pending_observers) || |
| 972 (notify_active_observers && obs->IsActive()) || | 972 (notify_active_observers && obs->IsActive()) || |
| 973 (notify_pending_observers && !obs->IsActive())) | 973 (notify_pending_observers && !obs->IsActive())) |
| 974 obs->OnFilterAnimated(filters); | 974 obs->OnFilterAnimated(filters); |
| 975 } | 975 } |
| 976 } | 976 } |
| 977 } | 977 } |
| 978 | 978 |
| 979 void LayerAnimationController::NotifyObserversScrollOffsetAnimated( | 979 void LayerAnimationController::NotifyObserversScrollOffsetAnimated( |
| 980 const gfx::Vector2dF& scroll_offset, | 980 const gfx::ScrollOffset& scroll_offset, |
| 981 bool notify_active_observers, | 981 bool notify_active_observers, |
| 982 bool notify_pending_observers) { | 982 bool notify_pending_observers) { |
| 983 if (value_observers_.might_have_observers()) { | 983 if (value_observers_.might_have_observers()) { |
| 984 ObserverListBase<LayerAnimationValueObserver>::Iterator it( | 984 ObserverListBase<LayerAnimationValueObserver>::Iterator it( |
| 985 value_observers_); | 985 value_observers_); |
| 986 LayerAnimationValueObserver* obs; | 986 LayerAnimationValueObserver* obs; |
| 987 while ((obs = it.GetNext()) != NULL) { | 987 while ((obs = it.GetNext()) != NULL) { |
| 988 if ((notify_active_observers && notify_pending_observers) || | 988 if ((notify_active_observers && notify_pending_observers) || |
| 989 (notify_active_observers && obs->IsActive()) || | 989 (notify_active_observers && obs->IsActive()) || |
| 990 (notify_pending_observers && !obs->IsActive())) | 990 (notify_pending_observers && !obs->IsActive())) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1014 value_observers_); | 1014 value_observers_); |
| 1015 LayerAnimationValueObserver* obs; | 1015 LayerAnimationValueObserver* obs; |
| 1016 while ((obs = it.GetNext()) != NULL) | 1016 while ((obs = it.GetNext()) != NULL) |
| 1017 if (obs->IsActive()) | 1017 if (obs->IsActive()) |
| 1018 return true; | 1018 return true; |
| 1019 } | 1019 } |
| 1020 return false; | 1020 return false; |
| 1021 } | 1021 } |
| 1022 | 1022 |
| 1023 } // namespace cc | 1023 } // namespace cc |
| OLD | NEW |