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/keyframed_animation_curve.h" | 9 #include "cc/animation/keyframed_animation_curve.h" |
10 #include "cc/animation/transform_operations.h" | 10 #include "cc/animation/transform_operations.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 scoped_refptr<LayerAnimationController> controller_impl( | 30 scoped_refptr<LayerAnimationController> controller_impl( |
31 LayerAnimationController::Create(0)); | 31 LayerAnimationController::Create(0)); |
32 controller_impl->AddObserver(&dummy_impl); | 32 controller_impl->AddObserver(&dummy_impl); |
33 FakeLayerAnimationValueObserver dummy; | 33 FakeLayerAnimationValueObserver dummy; |
34 scoped_refptr<LayerAnimationController> controller( | 34 scoped_refptr<LayerAnimationController> controller( |
35 LayerAnimationController::Create(0)); | 35 LayerAnimationController::Create(0)); |
36 controller->AddObserver(&dummy); | 36 controller->AddObserver(&dummy); |
37 | 37 |
38 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); | 38 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); |
39 | 39 |
40 addOpacityTransitionToController(*controller, 1, 0, 1, false); | 40 AddOpacityTransitionToController(controller, 1, 0, 1, false); |
41 | 41 |
42 controller->PushAnimationUpdatesTo(controller_impl.get()); | 42 controller->PushAnimationUpdatesTo(controller_impl.get()); |
43 | 43 |
44 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); | 44 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); |
45 EXPECT_EQ(Animation::WaitingForTargetAvailability, | 45 EXPECT_EQ(Animation::WaitingForTargetAvailability, |
46 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); | 46 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); |
47 } | 47 } |
48 | 48 |
49 // If an animation is started on the impl thread before it is ticked on the main | 49 // If an animation is started on the impl thread before it is ticked on the main |
50 // thread, we must be sure to respect the synchronized start time. | 50 // thread, we must be sure to respect the synchronized start time. |
51 TEST(LayerAnimationControllerTest, DoNotClobberStartTimes) { | 51 TEST(LayerAnimationControllerTest, DoNotClobberStartTimes) { |
52 FakeLayerAnimationValueObserver dummy_impl; | 52 FakeLayerAnimationValueObserver dummy_impl; |
53 scoped_refptr<LayerAnimationController> controller_impl( | 53 scoped_refptr<LayerAnimationController> controller_impl( |
54 LayerAnimationController::Create(0)); | 54 LayerAnimationController::Create(0)); |
55 controller_impl->AddObserver(&dummy_impl); | 55 controller_impl->AddObserver(&dummy_impl); |
56 FakeLayerAnimationValueObserver dummy; | 56 FakeLayerAnimationValueObserver dummy; |
57 scoped_refptr<LayerAnimationController> controller( | 57 scoped_refptr<LayerAnimationController> controller( |
58 LayerAnimationController::Create(0)); | 58 LayerAnimationController::Create(0)); |
59 controller->AddObserver(&dummy); | 59 controller->AddObserver(&dummy); |
60 | 60 |
61 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); | 61 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); |
62 | 62 |
63 addOpacityTransitionToController(*controller, 1, 0, 1, false); | 63 AddOpacityTransitionToController(controller, 1, 0, 1, false); |
64 | 64 |
65 controller->PushAnimationUpdatesTo(controller_impl.get()); | 65 controller->PushAnimationUpdatesTo(controller_impl.get()); |
66 | 66 |
67 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); | 67 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); |
68 EXPECT_EQ(Animation::WaitingForTargetAvailability, | 68 EXPECT_EQ(Animation::WaitingForTargetAvailability, |
69 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); | 69 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); |
70 | 70 |
71 AnimationEventsVector events; | 71 AnimationEventsVector events; |
72 controller_impl->Animate(1.0); | 72 controller_impl->Animate(1.0); |
73 controller_impl->UpdateState(&events); | 73 controller_impl->UpdateState(&events); |
(...skipping 16 matching lines...) Expand all Loading... |
90 scoped_refptr<LayerAnimationController> controller_impl( | 90 scoped_refptr<LayerAnimationController> controller_impl( |
91 LayerAnimationController::Create(0)); | 91 LayerAnimationController::Create(0)); |
92 controller_impl->AddObserver(&dummy_impl); | 92 controller_impl->AddObserver(&dummy_impl); |
93 FakeLayerAnimationValueObserver dummy; | 93 FakeLayerAnimationValueObserver dummy; |
94 scoped_refptr<LayerAnimationController> controller( | 94 scoped_refptr<LayerAnimationController> controller( |
95 LayerAnimationController::Create(0)); | 95 LayerAnimationController::Create(0)); |
96 controller->AddObserver(&dummy); | 96 controller->AddObserver(&dummy); |
97 | 97 |
98 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); | 98 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); |
99 | 99 |
100 addOpacityTransitionToController(*controller, 1, 0, 1, false); | 100 AddOpacityTransitionToController(controller, 1, 0, 1, false); |
101 | 101 |
102 controller->PushAnimationUpdatesTo(controller_impl.get()); | 102 controller->PushAnimationUpdatesTo(controller_impl.get()); |
103 | 103 |
104 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); | 104 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); |
105 EXPECT_EQ(Animation::WaitingForTargetAvailability, | 105 EXPECT_EQ(Animation::WaitingForTargetAvailability, |
106 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); | 106 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); |
107 | 107 |
108 // Start the animations on each controller. | 108 // Start the animations on each controller. |
109 AnimationEventsVector events; | 109 AnimationEventsVector events; |
110 controller_impl->Animate(0.0); | 110 controller_impl->Animate(0.0); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 LayerAnimationController::Create(0)); | 143 LayerAnimationController::Create(0)); |
144 controller_impl->AddObserver(&dummy_impl); | 144 controller_impl->AddObserver(&dummy_impl); |
145 FakeLayerAnimationValueObserver dummy; | 145 FakeLayerAnimationValueObserver dummy; |
146 scoped_refptr<LayerAnimationController> controller( | 146 scoped_refptr<LayerAnimationController> controller( |
147 LayerAnimationController::Create(0)); | 147 LayerAnimationController::Create(0)); |
148 controller->AddObserver(&dummy); | 148 controller->AddObserver(&dummy); |
149 | 149 |
150 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); | 150 EXPECT_FALSE(controller_impl->GetAnimation(0, Animation::Opacity)); |
151 | 151 |
152 int animation_id = | 152 int animation_id = |
153 addOpacityTransitionToController(*controller, 1, 0, 1, false); | 153 AddOpacityTransitionToController(controller, 1, 0, 1, false); |
154 | 154 |
155 controller->PushAnimationUpdatesTo(controller_impl.get()); | 155 controller->PushAnimationUpdatesTo(controller_impl.get()); |
156 | 156 |
157 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); | 157 EXPECT_TRUE(controller_impl->GetAnimation(0, Animation::Opacity)); |
158 EXPECT_EQ(Animation::WaitingForTargetAvailability, | 158 EXPECT_EQ(Animation::WaitingForTargetAvailability, |
159 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); | 159 controller_impl->GetAnimation(0, Animation::Opacity)->run_state()); |
160 | 160 |
161 // Notify main thread controller that the animation has started. | 161 // Notify main thread controller that the animation has started. |
162 AnimationEvent animation_started_event( | 162 AnimationEvent animation_started_event( |
163 AnimationEvent::Started, 0, 0, Animation::Opacity, 0); | 163 AnimationEvent::Started, 0, 0, Animation::Opacity, 0); |
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
892 controller->Animate(3.0); | 892 controller->Animate(3.0); |
893 controller->UpdateState(events.get()); | 893 controller->UpdateState(events.get()); |
894 | 894 |
895 // The float tranisition should now be done. | 895 // The float tranisition should now be done. |
896 EXPECT_EQ(1.f, dummy.opacity()); | 896 EXPECT_EQ(1.f, dummy.opacity()); |
897 EXPECT_FALSE(controller->HasActiveAnimation()); | 897 EXPECT_FALSE(controller->HasActiveAnimation()); |
898 } | 898 } |
899 | 899 |
900 } // namespace | 900 } // namespace |
901 } // namespace cc | 901 } // namespace cc |
OLD | NEW |