Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 2335043002: CC Animation: Move animations_ from ElementAnimations to AnimationPlayer. (Closed)
Patch Set: Clean it up harder. Rework UpdateClientAnimationState. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698