| 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 |