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

Side by Side Diff: cc/layers/layer_utils_unittest.cc

Issue 2049063002: Revert of Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « cc/layers/layer_unittest.cc ('k') | cc/proto/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/layers/layer_utils.h" 5 #include "cc/layers/layer_utils.h"
6 6
7 #include "cc/animation/animation_host.h" 7 #include "cc/animation/animation_host.h"
8 #include "cc/animation/animation_id_provider.h" 8 #include "cc/animation/animation_id_provider.h"
9 #include "cc/animation/transform_operations.h" 9 #include "cc/animation/transform_operations.h"
10 #include "cc/layers/layer_impl.h" 10 #include "cc/layers/layer_impl.h"
11 #include "cc/test/animation_test_common.h" 11 #include "cc/test/animation_test_common.h"
12 #include "cc/test/fake_impl_task_runner_provider.h" 12 #include "cc/test/fake_impl_task_runner_provider.h"
13 #include "cc/test/fake_layer_tree_host_impl.h" 13 #include "cc/test/fake_layer_tree_host_impl.h"
14 #include "cc/test/test_shared_bitmap_manager.h" 14 #include "cc/test/test_shared_bitmap_manager.h"
15 #include "cc/test/test_task_graph_runner.h" 15 #include "cc/test/test_task_graph_runner.h"
16 #include "cc/trees/layer_tree_host_common.h"
17 #include "cc/trees/layer_tree_impl.h" 16 #include "cc/trees/layer_tree_impl.h"
18 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
19 #include "ui/gfx/geometry/box_f.h" 18 #include "ui/gfx/geometry/box_f.h"
20 #include "ui/gfx/test/gfx_util.h" 19 #include "ui/gfx/test/gfx_util.h"
21 20
22 namespace cc { 21 namespace cc {
23 namespace { 22 namespace {
24 23
25 float diagonal(float width, float height) { 24 float diagonal(float width, float height) {
26 return std::sqrt(width * width + height * height); 25 return std::sqrt(width * width + height * height);
27 } 26 }
28 27
29 class LayerUtilsGetAnimationBoundsTest : public testing::Test { 28 class LayerUtilsGetAnimationBoundsTest : public testing::Test {
30 public: 29 public:
31 LayerUtilsGetAnimationBoundsTest() 30 LayerUtilsGetAnimationBoundsTest()
32 : host_impl_(&task_runner_provider_, 31 : host_impl_(&task_runner_provider_,
33 &shared_bitmap_manager_, 32 &shared_bitmap_manager_,
34 &task_graph_runner_), 33 &task_graph_runner_),
35 root_(CreateTwoForkTree(&host_impl_)), 34 root_(CreateTwoForkTree(&host_impl_)),
36 parent1_(root_->children()[0]), 35 parent1_(root_->children()[0]),
37 parent2_(root_->children()[1]), 36 parent2_(root_->children()[1]),
38 child1_(parent1_->children()[0]), 37 child1_(parent1_->children()[0]),
39 child2_(parent2_->children()[0]), 38 child2_(parent2_->children()[0]),
40 grand_child_(child2_->children()[0]), 39 grand_child_(child2_->children()[0]),
41 great_grand_child_(grand_child_->children()[0]) { 40 great_grand_child_(grand_child_->children()[0]) {
42 timeline_ = 41 timeline_ =
43 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); 42 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId());
44 host_impl_.animation_host()->AddAnimationTimeline(timeline_); 43 host_impl_.animation_host()->AddAnimationTimeline(timeline_);
45 host_impl_.active_tree()->SetElementIdsForTesting();
46 } 44 }
47 45
48 LayerImpl* root() { return root_; } 46 LayerImpl* root() { return root_; }
49 LayerImpl* parent1() { return parent1_; } 47 LayerImpl* parent1() { return parent1_; }
50 LayerImpl* child1() { return child1_; } 48 LayerImpl* child1() { return child1_; }
51 LayerImpl* parent2() { return parent2_; } 49 LayerImpl* parent2() { return parent2_; }
52 LayerImpl* child2() { return child2_; } 50 LayerImpl* child2() { return child2_; }
53 LayerImpl* grand_child() { return grand_child_; } 51 LayerImpl* grand_child() { return grand_child_; }
54 LayerImpl* great_grand_child() { return great_grand_child_; } 52 LayerImpl* great_grand_child() { return great_grand_child_; }
55 53
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 scoped_refptr<AnimationTimeline> timeline_; 87 scoped_refptr<AnimationTimeline> timeline_;
90 }; 88 };
91 89
92 TEST_F(LayerUtilsGetAnimationBoundsTest, ScaleRoot) { 90 TEST_F(LayerUtilsGetAnimationBoundsTest, ScaleRoot) {
93 double duration = 1.0; 91 double duration = 1.0;
94 92
95 TransformOperations start; 93 TransformOperations start;
96 start.AppendScale(1.f, 1.f, 1.f); 94 start.AppendScale(1.f, 1.f, 1.f);
97 TransformOperations end; 95 TransformOperations end;
98 end.AppendScale(2.f, 2.f, 1.f); 96 end.AppendScale(2.f, 2.f, 1.f);
99 AddAnimatedTransformToElementWithPlayer(root()->element_id(), timeline(), 97 AddAnimatedTransformToLayerWithPlayer(root()->id(), timeline(), duration,
100 duration, start, end); 98 start, end);
101 99
102 root()->SetPosition(gfx::PointF()); 100 root()->SetPosition(gfx::PointF());
103 parent1()->SetPosition(gfx::PointF()); 101 parent1()->SetPosition(gfx::PointF());
104 parent1()->SetBounds(gfx::Size(350, 200)); 102 parent1()->SetBounds(gfx::Size(350, 200));
105 103
106 child1()->SetDrawsContent(true); 104 child1()->SetDrawsContent(true);
107 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 105 child1()->SetPosition(gfx::PointF(150.f, 50.f));
108 child1()->SetBounds(gfx::Size(100, 200)); 106 child1()->SetBounds(gfx::Size(100, 200));
109 107
110 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 108 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
111 109
112 gfx::BoxF box; 110 gfx::BoxF box;
113 bool success = LayerUtils::GetAnimationBounds(*child1(), &box); 111 bool success = LayerUtils::GetAnimationBounds(*child1(), &box);
114 EXPECT_TRUE(success); 112 EXPECT_TRUE(success);
115 gfx::BoxF expected(150.f, 50.f, 0.f, 350.f, 450.f, 0.f); 113 gfx::BoxF expected(150.f, 50.f, 0.f, 350.f, 450.f, 0.f);
116 EXPECT_BOXF_EQ(expected, box); 114 EXPECT_BOXF_EQ(expected, box);
117 } 115 }
118 116
119 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateParentLayer) { 117 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateParentLayer) {
120 double duration = 1.0; 118 double duration = 1.0;
121 119
122 TransformOperations start; 120 TransformOperations start;
123 start.AppendTranslate(0.f, 0.f, 0.f); 121 start.AppendTranslate(0.f, 0.f, 0.f);
124 TransformOperations end; 122 TransformOperations end;
125 end.AppendTranslate(50.f, 50.f, 0.f); 123 end.AppendTranslate(50.f, 50.f, 0.f);
126 AddAnimatedTransformToElementWithPlayer(parent1()->element_id(), timeline(), 124 AddAnimatedTransformToLayerWithPlayer(parent1()->id(), timeline(), duration,
127 duration, start, end); 125 start, end);
128 126
129 parent1()->SetBounds(gfx::Size(350, 200)); 127 parent1()->SetBounds(gfx::Size(350, 200));
130 128
131 child1()->SetDrawsContent(true); 129 child1()->SetDrawsContent(true);
132 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 130 child1()->SetPosition(gfx::PointF(150.f, 50.f));
133 child1()->SetBounds(gfx::Size(100, 200)); 131 child1()->SetBounds(gfx::Size(100, 200));
134 132
135 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 133 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
136 134
137 gfx::BoxF box; 135 gfx::BoxF box;
138 bool success = LayerUtils::GetAnimationBounds(*child1(), &box); 136 bool success = LayerUtils::GetAnimationBounds(*child1(), &box);
139 EXPECT_TRUE(success); 137 EXPECT_TRUE(success);
140 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f); 138 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f);
141 EXPECT_BOXF_EQ(expected, box); 139 EXPECT_BOXF_EQ(expected, box);
142 } 140 }
143 141
144 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateChildLayer) { 142 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateChildLayer) {
145 double duration = 1.0; 143 double duration = 1.0;
146 144
147 TransformOperations start; 145 TransformOperations start;
148 start.AppendTranslate(0.f, 0.f, 0.f); 146 start.AppendTranslate(0.f, 0.f, 0.f);
149 TransformOperations end; 147 TransformOperations end;
150 end.AppendTranslate(50.f, 50.f, 0.f); 148 end.AppendTranslate(50.f, 50.f, 0.f);
151 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 149 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
152 duration, start, end); 150 start, end);
153 parent1()->SetBounds(gfx::Size(350, 200)); 151 parent1()->SetBounds(gfx::Size(350, 200));
154 152
155 child1()->SetDrawsContent(true); 153 child1()->SetDrawsContent(true);
156 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 154 child1()->SetPosition(gfx::PointF(150.f, 50.f));
157 child1()->SetBounds(gfx::Size(100, 200)); 155 child1()->SetBounds(gfx::Size(100, 200));
158 156
159 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 157 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
160 158
161 gfx::BoxF box; 159 gfx::BoxF box;
162 bool success = LayerUtils::GetAnimationBounds(*child1(), &box); 160 bool success = LayerUtils::GetAnimationBounds(*child1(), &box);
163 EXPECT_TRUE(success); 161 EXPECT_TRUE(success);
164 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f); 162 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f);
165 EXPECT_BOXF_EQ(expected, box); 163 EXPECT_BOXF_EQ(expected, box);
166 } 164 }
167 165
168 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateBothLayers) { 166 TEST_F(LayerUtilsGetAnimationBoundsTest, TranslateBothLayers) {
169 double duration = 1.0; 167 double duration = 1.0;
170 168
171 TransformOperations start; 169 TransformOperations start;
172 start.AppendTranslate(0.f, 0.f, 0.f); 170 start.AppendTranslate(0.f, 0.f, 0.f);
173 TransformOperations child_end; 171 TransformOperations child_end;
174 child_end.AppendTranslate(50.f, 0.f, 0.f); 172 child_end.AppendTranslate(50.f, 0.f, 0.f);
175 AddAnimatedTransformToElementWithPlayer(parent1()->element_id(), timeline(), 173 AddAnimatedTransformToLayerWithPlayer(parent1()->id(), timeline(), duration,
176 duration, start, child_end); 174 start, child_end);
177 175
178 TransformOperations grand_child_end; 176 TransformOperations grand_child_end;
179 grand_child_end.AppendTranslate(0.f, 50.f, 0.f); 177 grand_child_end.AppendTranslate(0.f, 50.f, 0.f);
180 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 178 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
181 duration, start, grand_child_end); 179 start, grand_child_end);
182 180
183 parent1()->SetBounds(gfx::Size(350, 200)); 181 parent1()->SetBounds(gfx::Size(350, 200));
184 182
185 child1()->SetDrawsContent(true); 183 child1()->SetDrawsContent(true);
186 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 184 child1()->SetPosition(gfx::PointF(150.f, 50.f));
187 child1()->SetBounds(gfx::Size(100, 200)); 185 child1()->SetBounds(gfx::Size(100, 200));
188 186
189 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 187 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
190 188
191 gfx::BoxF box; 189 gfx::BoxF box;
192 bool success = LayerUtils::GetAnimationBounds(*child1(), &box); 190 bool success = LayerUtils::GetAnimationBounds(*child1(), &box);
193 EXPECT_TRUE(success); 191 EXPECT_TRUE(success);
194 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f); 192 gfx::BoxF expected(150.f, 50.f, 0.f, 150.f, 250.f, 0.f);
195 EXPECT_BOXF_EQ(expected, box); 193 EXPECT_BOXF_EQ(expected, box);
196 } 194 }
197 195
198 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateXNoPerspective) { 196 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateXNoPerspective) {
199 double duration = 1.0; 197 double duration = 1.0;
200 198
201 TransformOperations start; 199 TransformOperations start;
202 start.AppendRotate(1.f, 0.f, 0.f, 0.f); 200 start.AppendRotate(1.f, 0.f, 0.f, 0.f);
203 TransformOperations end; 201 TransformOperations end;
204 end.AppendRotate(1.f, 0.f, 0.f, 90.f); 202 end.AppendRotate(1.f, 0.f, 0.f, 90.f);
205 203
206 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 204 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
207 duration, start, end); 205 start, end);
208 206
209 parent1()->SetBounds(gfx::Size(350, 200)); 207 parent1()->SetBounds(gfx::Size(350, 200));
210 208
211 gfx::Size bounds(100, 100); 209 gfx::Size bounds(100, 100);
212 child1()->SetDrawsContent(true); 210 child1()->SetDrawsContent(true);
213 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 211 child1()->SetPosition(gfx::PointF(150.f, 50.f));
214 child1()->SetBounds(bounds); 212 child1()->SetBounds(bounds);
215 child1()->test_properties()->transform_origin = 213 child1()->test_properties()->transform_origin =
216 gfx::Point3F(bounds.width() * 0.5f, bounds.height() * 0.5f, 0); 214 gfx::Point3F(bounds.width() * 0.5f, bounds.height() * 0.5f, 0);
217 215
218 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 216 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
219 217
220 gfx::BoxF box; 218 gfx::BoxF box;
221 bool success = LayerUtils::GetAnimationBounds(*child1(), &box); 219 bool success = LayerUtils::GetAnimationBounds(*child1(), &box);
222 EXPECT_TRUE(success); 220 EXPECT_TRUE(success);
223 gfx::BoxF expected(150.f, 50.f, -50.f, 100.f, 100.f, 100.f); 221 gfx::BoxF expected(150.f, 50.f, -50.f, 100.f, 100.f, 100.f);
224 EXPECT_BOXF_EQ(expected, box); 222 EXPECT_BOXF_EQ(expected, box);
225 } 223 }
226 224
227 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateXWithPerspective) { 225 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateXWithPerspective) {
228 double duration = 1.0; 226 double duration = 1.0;
229 227
230 TransformOperations start; 228 TransformOperations start;
231 start.AppendRotate(1.f, 0.f, 0.f, 0.f); 229 start.AppendRotate(1.f, 0.f, 0.f, 0.f);
232 TransformOperations end; 230 TransformOperations end;
233 end.AppendRotate(1.f, 0.f, 0.f, 90.f); 231 end.AppendRotate(1.f, 0.f, 0.f, 90.f);
234 232
235 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 233 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
236 duration, start, end); 234 start, end);
237 235
238 // Make the anchor point not the default 0.5 value and line up with the 236 // Make the anchor point not the default 0.5 value and line up with the
239 // child center to make the math easier. 237 // child center to make the math easier.
240 parent1()->test_properties()->transform_origin = 238 parent1()->test_properties()->transform_origin =
241 gfx::Point3F(0.375f * 400.f, 0.375f * 400.f, 0.f); 239 gfx::Point3F(0.375f * 400.f, 0.375f * 400.f, 0.f);
242 parent1()->SetBounds(gfx::Size(400, 400)); 240 parent1()->SetBounds(gfx::Size(400, 400));
243 241
244 gfx::Transform perspective; 242 gfx::Transform perspective;
245 perspective.ApplyPerspectiveDepth(100.f); 243 perspective.ApplyPerspectiveDepth(100.f);
246 parent1()->SetTransform(perspective); 244 parent1()->SetTransform(perspective);
(...skipping 19 matching lines...) Expand all
266 // local transform when there is an animation applied to the layer / node. 264 // local transform when there is an animation applied to the layer / node.
267 // The intended behavior is that the animation should overwrite the transform. 265 // The intended behavior is that the animation should overwrite the transform.
268 266
269 double duration = 1.0; 267 double duration = 1.0;
270 268
271 TransformOperations start; 269 TransformOperations start;
272 start.AppendRotate(1.f, 0.f, 0.f, 0.f); 270 start.AppendRotate(1.f, 0.f, 0.f, 0.f);
273 TransformOperations end; 271 TransformOperations end;
274 end.AppendRotate(1.f, 0.f, 0.f, 90.f); 272 end.AppendRotate(1.f, 0.f, 0.f, 90.f);
275 273
276 AddAnimatedTransformToElementWithPlayer(parent1()->element_id(), timeline(), 274 AddAnimatedTransformToLayerWithPlayer(parent1()->id(), timeline(), duration,
277 duration, start, end); 275 start, end);
278 276
279 // Make the anchor point not the default 0.5 value and line up 277 // Make the anchor point not the default 0.5 value and line up
280 // with the child center to make the math easier. 278 // with the child center to make the math easier.
281 parent1()->test_properties()->transform_origin = 279 parent1()->test_properties()->transform_origin =
282 gfx::Point3F(0.375f * 400.f, 0.375f * 400.f, 0.f); 280 gfx::Point3F(0.375f * 400.f, 0.375f * 400.f, 0.f);
283 parent1()->SetBounds(gfx::Size(400, 400)); 281 parent1()->SetBounds(gfx::Size(400, 400));
284 282
285 gfx::Transform perspective; 283 gfx::Transform perspective;
286 perspective.ApplyPerspectiveDepth(100.f); 284 perspective.ApplyPerspectiveDepth(100.f);
287 parent1()->SetTransform(perspective); 285 parent1()->SetTransform(perspective);
(...skipping 14 matching lines...) Expand all
302 EXPECT_BOXF_EQ(expected, box); 300 EXPECT_BOXF_EQ(expected, box);
303 } 301 }
304 302
305 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateZ) { 303 TEST_F(LayerUtilsGetAnimationBoundsTest, RotateZ) {
306 double duration = 1.0; 304 double duration = 1.0;
307 305
308 TransformOperations start; 306 TransformOperations start;
309 start.AppendRotate(0.f, 0.f, 1.f, 0.f); 307 start.AppendRotate(0.f, 0.f, 1.f, 0.f);
310 TransformOperations end; 308 TransformOperations end;
311 end.AppendRotate(0.f, 0.f, 1.f, 90.f); 309 end.AppendRotate(0.f, 0.f, 1.f, 90.f);
312 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 310 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
313 duration, start, end); 311 start, end);
314 312
315 parent1()->SetBounds(gfx::Size(350, 200)); 313 parent1()->SetBounds(gfx::Size(350, 200));
316 314
317 gfx::Size bounds(100, 100); 315 gfx::Size bounds(100, 100);
318 child1()->SetDrawsContent(true); 316 child1()->SetDrawsContent(true);
319 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 317 child1()->SetPosition(gfx::PointF(150.f, 50.f));
320 child1()->SetBounds(bounds); 318 child1()->SetBounds(bounds);
321 child1()->test_properties()->transform_origin = 319 child1()->test_properties()->transform_origin =
322 gfx::Point3F(bounds.width() * 0.5f, bounds.height() * 0.5f, 0); 320 gfx::Point3F(bounds.width() * 0.5f, bounds.height() * 0.5f, 0);
323 321
(...skipping 12 matching lines...) Expand all
336 EXPECT_BOXF_EQ(expected, box); 334 EXPECT_BOXF_EQ(expected, box);
337 } 335 }
338 336
339 TEST_F(LayerUtilsGetAnimationBoundsTest, MismatchedTransforms) { 337 TEST_F(LayerUtilsGetAnimationBoundsTest, MismatchedTransforms) {
340 double duration = 1.0; 338 double duration = 1.0;
341 339
342 TransformOperations start; 340 TransformOperations start;
343 start.AppendTranslate(5, 6, 7); 341 start.AppendTranslate(5, 6, 7);
344 TransformOperations end; 342 TransformOperations end;
345 end.AppendRotate(0.f, 0.f, 1.f, 90.f); 343 end.AppendRotate(0.f, 0.f, 1.f, 90.f);
346 AddAnimatedTransformToElementWithPlayer(child1()->element_id(), timeline(), 344 AddAnimatedTransformToLayerWithPlayer(child1()->id(), timeline(), duration,
347 duration, start, end); 345 start, end);
348 346
349 parent1()->SetBounds(gfx::Size(350, 200)); 347 parent1()->SetBounds(gfx::Size(350, 200));
350 348
351 gfx::Size bounds(100, 100); 349 gfx::Size bounds(100, 100);
352 child1()->SetDrawsContent(true); 350 child1()->SetDrawsContent(true);
353 child1()->SetPosition(gfx::PointF(150.f, 50.f)); 351 child1()->SetPosition(gfx::PointF(150.f, 50.f));
354 child1()->SetBounds(bounds); 352 child1()->SetBounds(bounds);
355 353
356 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 354 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
357 355
(...skipping 13 matching lines...) Expand all
371 // This test is used to check if GetAnimationBounds correctly skips layers and 369 // This test is used to check if GetAnimationBounds correctly skips layers and
372 // take layers which do not own a transform_node into consideration. 370 // take layers which do not own a transform_node into consideration.
373 // Under this topology, only root and grand_child own transform_nodes. 371 // Under this topology, only root and grand_child own transform_nodes.
374 372
375 double duration = 1.0; 373 double duration = 1.0;
376 374
377 TransformOperations start; 375 TransformOperations start;
378 start.AppendTranslate(0.f, 0.f, 0.f); 376 start.AppendTranslate(0.f, 0.f, 0.f);
379 TransformOperations great_grand_child_end; 377 TransformOperations great_grand_child_end;
380 great_grand_child_end.AppendTranslate(50.f, 0.f, 0.f); 378 great_grand_child_end.AppendTranslate(50.f, 0.f, 0.f);
381 AddAnimatedTransformToElementWithPlayer(grand_child()->element_id(), 379 AddAnimatedTransformToLayerWithPlayer(grand_child()->id(), timeline(),
382 timeline(), duration, start, 380 duration, start, great_grand_child_end);
383 great_grand_child_end);
384 381
385 gfx::Transform translate_2d_transform; 382 gfx::Transform translate_2d_transform;
386 translate_2d_transform.Translate(80.f, 60.f); 383 translate_2d_transform.Translate(80.f, 60.f);
387 root()->SetBounds(gfx::Size(350, 200)); 384 root()->SetBounds(gfx::Size(350, 200));
388 parent2()->SetPosition(gfx::PointF(40.f, 45.f)); 385 parent2()->SetPosition(gfx::PointF(40.f, 45.f));
389 child2()->SetTransform(translate_2d_transform); 386 child2()->SetTransform(translate_2d_transform);
390 great_grand_child()->SetDrawsContent(true); 387 great_grand_child()->SetDrawsContent(true);
391 great_grand_child()->SetPosition(gfx::PointF(150.f, 50.f)); 388 great_grand_child()->SetPosition(gfx::PointF(150.f, 50.f));
392 great_grand_child()->SetBounds(gfx::Size(100, 200)); 389 great_grand_child()->SetBounds(gfx::Size(100, 200));
393 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 390 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
394 391
395 gfx::BoxF box; 392 gfx::BoxF box;
396 bool success = LayerUtils::GetAnimationBounds(*great_grand_child(), &box); 393 bool success = LayerUtils::GetAnimationBounds(*great_grand_child(), &box);
397 EXPECT_TRUE(success); 394 EXPECT_TRUE(success);
398 gfx::BoxF expected(270.f, 155.f, 0.f, 150.f, 200.f, 0.f); 395 gfx::BoxF expected(270.f, 155.f, 0.f, 150.f, 200.f, 0.f);
399 EXPECT_BOXF_EQ(expected, box); 396 EXPECT_BOXF_EQ(expected, box);
400 } 397 }
401 398
402 TEST_F(LayerUtilsGetAnimationBoundsTest, 399 TEST_F(LayerUtilsGetAnimationBoundsTest,
403 RotateZUnderAncestorsWithPositionOr2DTransform) { 400 RotateZUnderAncestorsWithPositionOr2DTransform) {
404 double duration = 1.0; 401 double duration = 1.0;
405 402
406 TransformOperations start; 403 TransformOperations start;
407 start.AppendRotate(0.f, 0.f, 1.f, 0.f); 404 start.AppendRotate(0.f, 0.f, 1.f, 0.f);
408 TransformOperations great_grand_child_end; 405 TransformOperations great_grand_child_end;
409 great_grand_child_end.AppendRotate(0.f, 0.f, 1.f, 90.f); 406 great_grand_child_end.AppendRotate(0.f, 0.f, 1.f, 90.f);
410 AddAnimatedTransformToElementWithPlayer(grand_child()->element_id(), 407 AddAnimatedTransformToLayerWithPlayer(grand_child()->id(), timeline(),
411 timeline(), duration, start, 408 duration, start, great_grand_child_end);
412 great_grand_child_end);
413 409
414 gfx::Transform translate_2d_transform; 410 gfx::Transform translate_2d_transform;
415 translate_2d_transform.Translate(80.f, 60.f); 411 translate_2d_transform.Translate(80.f, 60.f);
416 root()->SetBounds(gfx::Size(350, 200)); 412 root()->SetBounds(gfx::Size(350, 200));
417 parent2()->SetPosition(gfx::PointF(40.f, 45.f)); 413 parent2()->SetPosition(gfx::PointF(40.f, 45.f));
418 child2()->SetTransform(translate_2d_transform); 414 child2()->SetTransform(translate_2d_transform);
419 415
420 gfx::Size bounds(100, 100); 416 gfx::Size bounds(100, 100);
421 grand_child()->SetPosition(gfx::PointF(150.f, 50.f)); 417 grand_child()->SetPosition(gfx::PointF(150.f, 50.f));
422 grand_child()->SetBounds(bounds); 418 grand_child()->SetBounds(bounds);
(...skipping 25 matching lines...) Expand all
448 // +------grand_child (Perspective) 444 // +------grand_child (Perspective)
449 // +--------great_grand_child (RotateX, DrawsContent) 445 // +--------great_grand_child (RotateX, DrawsContent)
450 // Due to the RotateX animation, great_grand_child also owns a transform_node 446 // Due to the RotateX animation, great_grand_child also owns a transform_node
451 447
452 double duration = 1.0; 448 double duration = 1.0;
453 449
454 TransformOperations start; 450 TransformOperations start;
455 start.AppendRotate(1.f, 0.f, 0.f, 0.f); 451 start.AppendRotate(1.f, 0.f, 0.f, 0.f);
456 TransformOperations great_grand_child_end; 452 TransformOperations great_grand_child_end;
457 great_grand_child_end.AppendRotate(1.f, 0.f, 0.f, 90.f); 453 great_grand_child_end.AppendRotate(1.f, 0.f, 0.f, 90.f);
458 AddAnimatedTransformToElementWithPlayer(great_grand_child()->element_id(), 454 AddAnimatedTransformToLayerWithPlayer(great_grand_child()->id(), timeline(),
459 timeline(), duration, start, 455 duration, start, great_grand_child_end);
460 great_grand_child_end);
461 456
462 gfx::Transform translate_2d_transform; 457 gfx::Transform translate_2d_transform;
463 translate_2d_transform.Translate(80.f, 60.f); 458 translate_2d_transform.Translate(80.f, 60.f);
464 459
465 root()->SetBounds(gfx::Size(350, 200)); 460 root()->SetBounds(gfx::Size(350, 200));
466 parent2()->SetPosition(gfx::PointF(40.f, 45.f)); 461 parent2()->SetPosition(gfx::PointF(40.f, 45.f));
467 child2()->SetTransform(translate_2d_transform); 462 child2()->SetTransform(translate_2d_transform);
468 463
469 gfx::Transform perspective; 464 gfx::Transform perspective;
470 perspective.ApplyPerspectiveDepth(100.f); 465 perspective.ApplyPerspectiveDepth(100.f);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 } 525 }
531 526
532 TEST_F(LayerUtilsGetAnimationBoundsTest, 527 TEST_F(LayerUtilsGetAnimationBoundsTest,
533 RotateXNoPerspectiveUnderAncestorsWithPositionOr2DTransform) { 528 RotateXNoPerspectiveUnderAncestorsWithPositionOr2DTransform) {
534 double duration = 1.0; 529 double duration = 1.0;
535 530
536 TransformOperations start; 531 TransformOperations start;
537 start.AppendRotate(1.f, 0.f, 0.f, 0.f); 532 start.AppendRotate(1.f, 0.f, 0.f, 0.f);
538 TransformOperations rotate_x_end; 533 TransformOperations rotate_x_end;
539 rotate_x_end.AppendRotate(1.f, 0.f, 0.f, 90.f); 534 rotate_x_end.AppendRotate(1.f, 0.f, 0.f, 90.f);
540 AddAnimatedTransformToElementWithPlayer(great_grand_child()->element_id(), 535 AddAnimatedTransformToLayerWithPlayer(great_grand_child()->id(), timeline(),
541 timeline(), duration, start, 536 duration, start, rotate_x_end);
542 rotate_x_end);
543 537
544 gfx::Transform translate_2d_transform; 538 gfx::Transform translate_2d_transform;
545 translate_2d_transform.Translate(80.f, 60.f); 539 translate_2d_transform.Translate(80.f, 60.f);
546 540
547 root()->SetBounds(gfx::Size(350, 200)); 541 root()->SetBounds(gfx::Size(350, 200));
548 parent2()->SetPosition(gfx::PointF(40.f, 45.f)); 542 parent2()->SetPosition(gfx::PointF(40.f, 45.f));
549 child2()->SetTransform(translate_2d_transform); 543 child2()->SetTransform(translate_2d_transform);
550 544
551 gfx::Size bounds(100.f, 100.f); 545 gfx::Size bounds(100.f, 100.f);
552 grand_child()->SetPosition(gfx::PointF(150.f, 50.f)); 546 grand_child()->SetPosition(gfx::PointF(150.f, 50.f));
(...skipping 15 matching lines...) Expand all
568 // Same as RotateXWithPerspectiveUnderAncestorsWithPositionOr2DTransform test, 562 // Same as RotateXWithPerspectiveUnderAncestorsWithPositionOr2DTransform test,
569 // except for the perspective calculations. 563 // except for the perspective calculations.
570 564
571 gfx::BoxF expected(295.f, 180.f, -25.f, 50.f, 50.f, 50.f); 565 gfx::BoxF expected(295.f, 180.f, -25.f, 50.f, 50.f, 50.f);
572 EXPECT_BOXF_EQ(expected, box); 566 EXPECT_BOXF_EQ(expected, box);
573 } 567 }
574 568
575 } // namespace 569 } // namespace
576 570
577 } // namespace cc 571 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_unittest.cc ('k') | cc/proto/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698