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 "cc/animation/animation.h" | 7 #include "cc/animation/animation.h" |
8 #include "cc/animation/animation_curve.h" | 8 #include "cc/animation/animation_curve.h" |
9 #include "cc/animation/animation_delegate.h" | 9 #include "cc/animation/animation_delegate.h" |
10 #include "cc/animation/animation_registrar.h" | 10 #include "cc/animation/animation_registrar.h" |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 | 666 |
667 scoped_ptr<Animation> animation( | 667 scoped_ptr<Animation> animation( |
668 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); | 668 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); |
669 animation->set_needs_synchronized_start_time(true); | 669 animation->set_needs_synchronized_start_time(true); |
670 controller->AddAnimation(animation.Pass()); | 670 controller->AddAnimation(animation.Pass()); |
671 | 671 |
672 dummy_provider_impl.set_scroll_offset(initial_value); | 672 dummy_provider_impl.set_scroll_offset(initial_value); |
673 controller->PushAnimationUpdatesTo(controller_impl.get()); | 673 controller->PushAnimationUpdatesTo(controller_impl.get()); |
674 controller_impl->ActivateAnimations(); | 674 controller_impl->ActivateAnimations(); |
675 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); | 675 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); |
676 double duration_in_seconds = | 676 TimeDelta duration = controller_impl->GetAnimation(Animation::ScrollOffset) |
677 controller_impl->GetAnimation(Animation::ScrollOffset) | 677 ->curve() |
678 ->curve() | 678 ->Duration(); |
679 ->Duration(); | |
680 TimeDelta duration = TimeDelta::FromMicroseconds( | |
681 duration_in_seconds * base::Time::kMicrosecondsPerSecond); | |
682 EXPECT_EQ( | 679 EXPECT_EQ( |
683 duration_in_seconds, | 680 duration, |
684 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); | 681 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); |
685 | 682 |
686 controller->Animate(kInitialTickTime); | 683 controller->Animate(kInitialTickTime); |
687 controller->UpdateState(true, nullptr); | 684 controller->UpdateState(true, nullptr); |
688 EXPECT_TRUE(controller->HasActiveAnimation()); | 685 EXPECT_TRUE(controller->HasActiveAnimation()); |
689 EXPECT_EQ(initial_value, dummy.scroll_offset()); | 686 EXPECT_EQ(initial_value, dummy.scroll_offset()); |
690 | 687 |
691 controller_impl->Animate(kInitialTickTime); | 688 controller_impl->Animate(kInitialTickTime); |
692 controller_impl->UpdateState(true, events.get()); | 689 controller_impl->UpdateState(true, events.get()); |
693 EXPECT_TRUE(controller_impl->HasActiveAnimation()); | 690 EXPECT_TRUE(controller_impl->HasActiveAnimation()); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 | 745 |
749 scoped_ptr<Animation> animation( | 746 scoped_ptr<Animation> animation( |
750 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); | 747 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); |
751 animation->set_needs_synchronized_start_time(true); | 748 animation->set_needs_synchronized_start_time(true); |
752 controller->AddAnimation(animation.Pass()); | 749 controller->AddAnimation(animation.Pass()); |
753 | 750 |
754 dummy_provider.set_scroll_offset(initial_value); | 751 dummy_provider.set_scroll_offset(initial_value); |
755 controller->PushAnimationUpdatesTo(controller_impl.get()); | 752 controller->PushAnimationUpdatesTo(controller_impl.get()); |
756 controller_impl->ActivateAnimations(); | 753 controller_impl->ActivateAnimations(); |
757 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); | 754 EXPECT_TRUE(controller_impl->GetAnimation(Animation::ScrollOffset)); |
758 double duration_in_seconds = | 755 TimeDelta duration = controller_impl->GetAnimation(Animation::ScrollOffset) |
759 controller_impl->GetAnimation(Animation::ScrollOffset) | 756 ->curve() |
760 ->curve() | 757 ->Duration(); |
761 ->Duration(); | |
762 EXPECT_EQ( | 758 EXPECT_EQ( |
763 duration_in_seconds, | 759 duration, |
764 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); | 760 controller->GetAnimation(Animation::ScrollOffset)->curve()->Duration()); |
765 | 761 |
766 controller->Animate(kInitialTickTime); | 762 controller->Animate(kInitialTickTime); |
767 controller->UpdateState(true, nullptr); | 763 controller->UpdateState(true, nullptr); |
768 EXPECT_TRUE(controller->HasActiveAnimation()); | 764 EXPECT_TRUE(controller->HasActiveAnimation()); |
769 EXPECT_EQ(initial_value, dummy.scroll_offset()); | 765 EXPECT_EQ(initial_value, dummy.scroll_offset()); |
770 | 766 |
771 controller_impl->Animate(kInitialTickTime); | 767 controller_impl->Animate(kInitialTickTime); |
772 controller_impl->UpdateState(true, events.get()); | 768 controller_impl->UpdateState(true, events.get()); |
773 EXPECT_TRUE(controller_impl->HasActiveAnimation()); | 769 EXPECT_TRUE(controller_impl->HasActiveAnimation()); |
774 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); | 770 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); |
775 // Scroll offset animations should not generate property updates. | 771 // Scroll offset animations should not generate property updates. |
776 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); | 772 const AnimationEvent* event = GetMostRecentPropertyUpdateEvent(events.get()); |
777 EXPECT_FALSE(event); | 773 EXPECT_FALSE(event); |
778 | 774 |
779 TimeDelta duration = TimeDelta::FromMicroseconds( | |
780 duration_in_seconds * base::Time::kMicrosecondsPerSecond); | |
781 | 775 |
782 controller->NotifyAnimationStarted((*events)[0]); | 776 controller->NotifyAnimationStarted((*events)[0]); |
783 controller->Animate(kInitialTickTime + duration / 2); | 777 controller->Animate(kInitialTickTime + duration / 2); |
784 controller->UpdateState(true, nullptr); | 778 controller->UpdateState(true, nullptr); |
785 EXPECT_TRUE(controller->HasActiveAnimation()); | 779 EXPECT_TRUE(controller->HasActiveAnimation()); |
786 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), dummy.scroll_offset()); | 780 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), dummy.scroll_offset()); |
787 | 781 |
788 controller_impl->Animate(kInitialTickTime + duration / 2); | 782 controller_impl->Animate(kInitialTickTime + duration / 2); |
789 controller_impl->UpdateState(true, events.get()); | 783 controller_impl->UpdateState(true, events.get()); |
790 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), | 784 EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(400.f, 150.f), |
(...skipping 22 matching lines...) Expand all Loading... |
813 scoped_ptr<AnimationEventsVector> events( | 807 scoped_ptr<AnimationEventsVector> events( |
814 make_scoped_ptr(new AnimationEventsVector)); | 808 make_scoped_ptr(new AnimationEventsVector)); |
815 | 809 |
816 gfx::ScrollOffset initial_value(100.f, 300.f); | 810 gfx::ScrollOffset initial_value(100.f, 300.f); |
817 gfx::ScrollOffset target_value(300.f, 200.f); | 811 gfx::ScrollOffset target_value(300.f, 200.f); |
818 scoped_ptr<ScrollOffsetAnimationCurve> curve( | 812 scoped_ptr<ScrollOffsetAnimationCurve> curve( |
819 ScrollOffsetAnimationCurve::Create( | 813 ScrollOffsetAnimationCurve::Create( |
820 target_value, | 814 target_value, |
821 EaseInOutTimingFunction::Create().Pass())); | 815 EaseInOutTimingFunction::Create().Pass())); |
822 curve->SetInitialValue(initial_value); | 816 curve->SetInitialValue(initial_value); |
823 double duration_in_seconds = curve->Duration(); | 817 double duration_in_seconds = curve->Duration().InSecondsF(); |
824 | 818 |
825 scoped_ptr<Animation> animation( | 819 scoped_ptr<Animation> animation( |
826 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); | 820 Animation::Create(curve.Pass(), 1, 0, Animation::ScrollOffset)); |
827 animation->set_is_impl_only(true); | 821 animation->set_is_impl_only(true); |
828 controller_impl->AddAnimation(animation.Pass()); | 822 controller_impl->AddAnimation(animation.Pass()); |
829 | 823 |
830 controller_impl->Animate(kInitialTickTime); | 824 controller_impl->Animate(kInitialTickTime); |
831 controller_impl->UpdateState(true, events.get()); | 825 controller_impl->UpdateState(true, events.get()); |
832 EXPECT_TRUE(controller_impl->HasActiveAnimation()); | 826 EXPECT_TRUE(controller_impl->HasActiveAnimation()); |
833 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); | 827 EXPECT_EQ(initial_value, dummy_impl.scroll_offset()); |
(...skipping 1505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2339 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Opacity)); | 2333 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Opacity)); |
2340 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Filter)); | 2334 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Filter)); |
2341 | 2335 |
2342 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000)); | 2336 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000)); |
2343 controller->UpdateState(true, nullptr); | 2337 controller->UpdateState(true, nullptr); |
2344 EXPECT_TRUE(controller->IsAnimatingProperty(Animation::Opacity)); | 2338 EXPECT_TRUE(controller->IsAnimatingProperty(Animation::Opacity)); |
2345 } | 2339 } |
2346 | 2340 |
2347 } // namespace | 2341 } // namespace |
2348 } // namespace cc | 2342 } // namespace cc |
OLD | NEW |