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_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 7060 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7071 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 7071 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
7072 | 7072 |
7073 TransformOperations translation; | 7073 TransformOperations translation; |
7074 translation.AppendTranslate(1.f, 2.f, 3.f); | 7074 translation.AppendTranslate(1.f, 2.f, 3.f); |
7075 | 7075 |
7076 scoped_refptr<AnimationTimeline> timeline; | 7076 scoped_refptr<AnimationTimeline> timeline; |
7077 timeline = AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); | 7077 timeline = AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); |
7078 host_impl.animation_host()->AddAnimationTimeline(timeline); | 7078 host_impl.animation_host()->AddAnimationTimeline(timeline); |
7079 | 7079 |
7080 host_impl.active_tree()->SetElementIdsForTesting(); | 7080 host_impl.active_tree()->SetElementIdsForTesting(); |
7081 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, | 7081 |
7082 1.0, TransformOperations(), | 7082 scoped_refptr<AnimationPlayer> grand_parent_player = |
7083 translation); | 7083 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
| 7084 timeline->AttachPlayer(grand_parent_player); |
| 7085 grand_parent_player->AttachElement(grand_parent_raw->element_id()); |
| 7086 |
| 7087 scoped_refptr<AnimationPlayer> parent_player = |
| 7088 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
| 7089 timeline->AttachPlayer(parent_player); |
| 7090 parent_player->AttachElement(parent_raw->element_id()); |
| 7091 |
| 7092 scoped_refptr<AnimationPlayer> child_player = |
| 7093 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
| 7094 timeline->AttachPlayer(child_player); |
| 7095 child_player->AttachElement(child_raw->element_id()); |
| 7096 |
| 7097 scoped_refptr<AnimationPlayer> grand_child_player = |
| 7098 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
| 7099 timeline->AttachPlayer(grand_child_player); |
| 7100 grand_child_player->AttachElement(grand_child_raw->element_id()); |
| 7101 |
| 7102 AddAnimatedTransformToPlayer(parent_player.get(), 1.0, TransformOperations(), |
| 7103 translation); |
7084 | 7104 |
7085 // No layers have scale-affecting animations. | 7105 // No layers have scale-affecting animations. |
7086 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); | 7106 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); |
7087 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); | 7107 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); |
7088 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); | 7108 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); |
7089 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); | 7109 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); |
7090 | 7110 |
7091 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); | 7111 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); |
7092 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); | 7112 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); |
7093 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); | 7113 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); |
7094 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 7114 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
7095 | 7115 |
7096 TransformOperations scale; | 7116 TransformOperations scale; |
7097 scale.AppendScale(5.f, 4.f, 3.f); | 7117 scale.AppendScale(5.f, 4.f, 3.f); |
7098 | 7118 |
7099 AddAnimatedTransformToElementWithPlayer(child_raw->element_id(), timeline, | 7119 AddAnimatedTransformToPlayer(child_player.get(), 1.0, TransformOperations(), |
7100 1.0, TransformOperations(), scale); | 7120 scale); |
7101 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7121 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7102 ExecuteCalculateDrawProperties(grand_parent_raw); | 7122 ExecuteCalculateDrawProperties(grand_parent_raw); |
7103 | 7123 |
7104 // Only |child| has a scale-affecting animation. | 7124 // Only |child| has a scale-affecting animation. |
7105 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); | 7125 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); |
7106 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); | 7126 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); |
7107 EXPECT_EQ(5.f, GetMaximumAnimationScale(child_raw)); | 7127 EXPECT_EQ(5.f, GetMaximumAnimationScale(child_raw)); |
7108 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_child_raw)); | 7128 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_child_raw)); |
7109 | 7129 |
7110 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); | 7130 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); |
7111 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); | 7131 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); |
7112 EXPECT_EQ(1.f, GetStartingAnimationScale(child_raw)); | 7132 EXPECT_EQ(1.f, GetStartingAnimationScale(child_raw)); |
7113 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_child_raw)); | 7133 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_child_raw)); |
7114 | 7134 |
7115 AddAnimatedTransformToElementWithPlayer(grand_parent_raw->element_id(), | 7135 AddAnimatedTransformToPlayer(grand_parent_player.get(), 1.0, |
7116 timeline, 1.0, TransformOperations(), | 7136 TransformOperations(), scale); |
7117 scale); | |
7118 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7137 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7119 ExecuteCalculateDrawProperties(grand_parent_raw); | 7138 ExecuteCalculateDrawProperties(grand_parent_raw); |
7120 | 7139 |
7121 // |grand_parent| and |child| have scale-affecting animations. | 7140 // |grand_parent| and |child| have scale-affecting animations. |
7122 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_parent_raw)); | 7141 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_parent_raw)); |
7123 EXPECT_EQ(5.f, GetMaximumAnimationScale(parent_raw)); | 7142 EXPECT_EQ(5.f, GetMaximumAnimationScale(parent_raw)); |
7124 // We don't support combining animated scales from two nodes; 0.f means | 7143 // We don't support combining animated scales from two nodes; 0.f means |
7125 // that the maximum scale could not be computed. | 7144 // that the maximum scale could not be computed. |
7126 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); | 7145 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); |
7127 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); | 7146 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); |
7128 | 7147 |
7129 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_parent_raw)); | 7148 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_parent_raw)); |
7130 EXPECT_EQ(1.f, GetStartingAnimationScale(parent_raw)); | 7149 EXPECT_EQ(1.f, GetStartingAnimationScale(parent_raw)); |
7131 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); | 7150 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); |
7132 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 7151 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
7133 | 7152 |
7134 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, | 7153 AddAnimatedTransformToPlayer(parent_player.get(), 1.0, TransformOperations(), |
7135 1.0, TransformOperations(), scale); | 7154 scale); |
7136 parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7155 parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7137 ExecuteCalculateDrawProperties(grand_parent_raw); | 7156 ExecuteCalculateDrawProperties(grand_parent_raw); |
7138 | 7157 |
7139 // |grand_parent|, |parent|, and |child| have scale-affecting animations. | 7158 // |grand_parent|, |parent|, and |child| have scale-affecting animations. |
7140 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_parent_raw)); | 7159 EXPECT_EQ(5.f, GetMaximumAnimationScale(grand_parent_raw)); |
7141 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); | 7160 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); |
7142 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); | 7161 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); |
7143 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); | 7162 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); |
7144 | 7163 |
7145 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_parent_raw)); | 7164 EXPECT_EQ(1.f, GetStartingAnimationScale(grand_parent_raw)); |
7146 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); | 7165 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); |
7147 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); | 7166 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); |
7148 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 7167 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
7149 | 7168 |
7150 AbortAnimationsOnElementWithPlayer(grand_parent_raw->element_id(), timeline, | 7169 grand_parent_player->AbortAnimations(TargetProperty::TRANSFORM, false); |
7151 TargetProperty::TRANSFORM); | 7170 parent_player->AbortAnimations(TargetProperty::TRANSFORM, false); |
7152 AbortAnimationsOnElementWithPlayer(parent_raw->element_id(), timeline, | 7171 child_player->AbortAnimations(TargetProperty::TRANSFORM, false); |
7153 TargetProperty::TRANSFORM); | |
7154 AbortAnimationsOnElementWithPlayer(child_raw->element_id(), timeline, | |
7155 TargetProperty::TRANSFORM); | |
7156 | 7172 |
7157 TransformOperations perspective; | 7173 TransformOperations perspective; |
7158 perspective.AppendPerspective(10.f); | 7174 perspective.AppendPerspective(10.f); |
7159 | 7175 |
7160 AddAnimatedTransformToElementWithPlayer(child_raw->element_id(), timeline, | 7176 AddAnimatedTransformToPlayer(child_player.get(), 1.0, TransformOperations(), |
7161 1.0, TransformOperations(), | 7177 perspective); |
7162 perspective); | |
7163 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7178 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7164 ExecuteCalculateDrawProperties(grand_parent_raw); | 7179 ExecuteCalculateDrawProperties(grand_parent_raw); |
7165 | 7180 |
7166 // |child| has a scale-affecting animation but computing the maximum of this | 7181 // |child| has a scale-affecting animation but computing the maximum of this |
7167 // animation is not supported. | 7182 // animation is not supported. |
7168 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); | 7183 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); |
7169 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); | 7184 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); |
7170 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); | 7185 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); |
7171 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); | 7186 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); |
7172 | 7187 |
7173 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); | 7188 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); |
7174 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); | 7189 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); |
7175 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); | 7190 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); |
7176 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 7191 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
7177 | 7192 |
7178 AbortAnimationsOnElementWithPlayer(child_raw->element_id(), timeline, | 7193 AbortAnimationsOnElementWithPlayer(child_raw->element_id(), timeline, |
7179 TargetProperty::TRANSFORM); | 7194 TargetProperty::TRANSFORM); |
7180 gfx::Transform scale_matrix; | 7195 gfx::Transform scale_matrix; |
7181 scale_matrix.Scale(1.f, 2.f); | 7196 scale_matrix.Scale(1.f, 2.f); |
7182 grand_parent_raw->test_properties()->transform = scale_matrix; | 7197 grand_parent_raw->test_properties()->transform = scale_matrix; |
7183 parent_raw->test_properties()->transform = scale_matrix; | 7198 parent_raw->test_properties()->transform = scale_matrix; |
7184 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7199 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7185 | 7200 |
7186 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, | 7201 AddAnimatedTransformToPlayer(parent_player.get(), 1.0, TransformOperations(), |
7187 1.0, TransformOperations(), scale); | 7202 scale); |
7188 ExecuteCalculateDrawProperties(grand_parent_raw); | 7203 ExecuteCalculateDrawProperties(grand_parent_raw); |
7189 | 7204 |
7190 // |grand_parent| and |parent| each have scale 2.f. |parent| has a scale | 7205 // |grand_parent| and |parent| each have scale 2.f. |parent| has a scale |
7191 // animation with maximum scale 5.f. | 7206 // animation with maximum scale 5.f. |
7192 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); | 7207 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_parent_raw)); |
7193 EXPECT_EQ(10.f, GetMaximumAnimationScale(parent_raw)); | 7208 EXPECT_EQ(10.f, GetMaximumAnimationScale(parent_raw)); |
7194 EXPECT_EQ(10.f, GetMaximumAnimationScale(child_raw)); | 7209 EXPECT_EQ(10.f, GetMaximumAnimationScale(child_raw)); |
7195 EXPECT_EQ(10.f, GetMaximumAnimationScale(grand_child_raw)); | 7210 EXPECT_EQ(10.f, GetMaximumAnimationScale(grand_child_raw)); |
7196 | 7211 |
7197 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); | 7212 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); |
(...skipping 2621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9819 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); | 9834 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); |
9820 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); | 9835 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); |
9821 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); | 9836 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); |
9822 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); | 9837 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); |
9823 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); | 9838 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); |
9824 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); | 9839 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); |
9825 } | 9840 } |
9826 | 9841 |
9827 } // namespace | 9842 } // namespace |
9828 } // namespace cc | 9843 } // namespace cc |
OLD | NEW |