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

Side by Side Diff: cc/transform_operations_unittest.cc

Issue 12035029: Finish migrating cc/ from WebKit::WebTransformationMatrix to gfx::Transform (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix nits Created 7 years, 10 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/transform_operations.cc ('k') | ui/compositor/transform_animation_curve_adapter.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "cc/test/geometry_test_utils.h" 6 #include "cc/test/geometry_test_utils.h"
7 #include "cc/transform_operations.h" 7 #include "cc/transform_operations.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "third_party/WebKit/Source/Platform/chromium/public/WebTransformationMa trix.h" 9 #include "ui/gfx/vector3d_f.h"
10
11 using WebKit::WebTransformationMatrix;
12 10
13 namespace cc { 11 namespace cc {
14 namespace { 12 namespace {
15 13
16 TEST(TransformOperationTest, TransformTypesAreUnique) { 14 TEST(TransformOperationTest, TransformTypesAreUnique) {
17 ScopedVector<TransformOperations> transforms; 15 ScopedVector<TransformOperations> transforms;
18 16
19 TransformOperations* to_add = new TransformOperations(); 17 TransformOperations* to_add = new TransformOperations();
20 to_add->AppendTranslate(1, 0, 0); 18 to_add->AppendTranslate(1, 0, 0);
21 transforms.push_back(to_add); 19 transforms.push_back(to_add);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 to_add = new TransformOperations(); 117 to_add = new TransformOperations();
120 to_add->AppendRotate(0, 0, 1, 0); 118 to_add->AppendRotate(0, 0, 1, 0);
121 operations->push_back(to_add); 119 operations->push_back(to_add);
122 120
123 to_add = new TransformOperations(); 121 to_add = new TransformOperations();
124 to_add->AppendRotate(0, 0, 1, 0); 122 to_add->AppendRotate(0, 0, 1, 0);
125 to_add->AppendRotate(0, 0, 1, 0); 123 to_add->AppendRotate(0, 0, 1, 0);
126 operations->push_back(to_add); 124 operations->push_back(to_add);
127 125
128 to_add = new TransformOperations(); 126 to_add = new TransformOperations();
129 to_add->AppendMatrix(WebTransformationMatrix()); 127 to_add->AppendMatrix(gfx::Transform());
130 operations->push_back(to_add); 128 operations->push_back(to_add);
131 129
132 to_add = new TransformOperations(); 130 to_add = new TransformOperations();
133 to_add->AppendMatrix(WebTransformationMatrix()); 131 to_add->AppendMatrix(gfx::Transform());
134 to_add->AppendMatrix(WebTransformationMatrix()); 132 to_add->AppendMatrix(gfx::Transform());
135 operations->push_back(to_add); 133 operations->push_back(to_add);
136 } 134 }
137 135
138 TEST(TransformOperationTest, IdentityAlwaysMatches) { 136 TEST(TransformOperationTest, IdentityAlwaysMatches) {
139 ScopedVector<TransformOperations> operations; 137 ScopedVector<TransformOperations> operations;
140 GetIdentityOperations(&operations); 138 GetIdentityOperations(&operations);
141 139
142 for (size_t i = 0; i < operations.size(); ++i) { 140 for (size_t i = 0; i < operations.size(); ++i) {
143 for (size_t j = 0; j < operations.size(); ++j) 141 for (size_t j = 0; j < operations.size(); ++j)
144 EXPECT_TRUE(operations[i]->MatchesTypes(*operations[j])); 142 EXPECT_TRUE(operations[i]->MatchesTypes(*operations[j]));
145 } 143 }
146 } 144 }
147 145
148 TEST(TransformOperationTest, ApplyTranslate) { 146 TEST(TransformOperationTest, ApplyTranslate) {
149 double x = 1; 147 double x = 1;
150 double y = 2; 148 double y = 2;
151 double z = 3; 149 double z = 3;
152 TransformOperations operations; 150 TransformOperations operations;
153 operations.AppendTranslate(x, y, z); 151 operations.AppendTranslate(x, y, z);
154 WebTransformationMatrix expected; 152 gfx::Transform expected;
155 expected.translate3d(x, y, z); 153 expected.Translate3d(x, y, z);
156 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply()); 154 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply());
157 } 155 }
158 156
159 TEST(TransformOperationTest, ApplyRotate) { 157 TEST(TransformOperationTest, ApplyRotate) {
160 double x = 1; 158 double x = 1;
161 double y = 2; 159 double y = 2;
162 double z = 3; 160 double z = 3;
163 double degrees = 80; 161 double degrees = 80;
164 TransformOperations operations; 162 TransformOperations operations;
165 operations.AppendRotate(x, y, z, degrees); 163 operations.AppendRotate(x, y, z, degrees);
166 WebTransformationMatrix expected; 164 gfx::Transform expected;
167 expected.rotate3d(x, y, z, degrees); 165 expected.RotateAbout(gfx::Vector3dF(x, y, z), degrees);
168 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply()); 166 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply());
169 } 167 }
170 168
171 TEST(TransformOperationTest, ApplyScale) { 169 TEST(TransformOperationTest, ApplyScale) {
172 double x = 1; 170 double x = 1;
173 double y = 2; 171 double y = 2;
174 double z = 3; 172 double z = 3;
175 TransformOperations operations; 173 TransformOperations operations;
176 operations.AppendScale(x, y, z); 174 operations.AppendScale(x, y, z);
177 WebTransformationMatrix expected; 175 gfx::Transform expected;
178 expected.scale3d(x, y, z); 176 expected.Scale3d(x, y, z);
179 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply()); 177 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply());
180 } 178 }
181 179
182 TEST(TransformOperationTest, ApplySkew) { 180 TEST(TransformOperationTest, ApplySkew) {
183 double x = 1; 181 double x = 1;
184 double y = 2; 182 double y = 2;
185 TransformOperations operations; 183 TransformOperations operations;
186 operations.AppendSkew(x, y); 184 operations.AppendSkew(x, y);
187 WebTransformationMatrix expected; 185 gfx::Transform expected;
188 expected.skewX(x); 186 expected.SkewX(x);
189 expected.skewY(y); 187 expected.SkewY(y);
190 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply()); 188 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply());
191 } 189 }
192 190
193 TEST(TransformOperationTest, ApplyPerspective) { 191 TEST(TransformOperationTest, ApplyPerspective) {
194 double depth = 800; 192 double depth = 800;
195 TransformOperations operations; 193 TransformOperations operations;
196 operations.AppendPerspective(depth); 194 operations.AppendPerspective(depth);
197 WebTransformationMatrix expected; 195 gfx::Transform expected;
198 expected.applyPerspective(depth); 196 expected.ApplyPerspectiveDepth(depth);
199 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply()); 197 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.Apply());
200 } 198 }
201 199
202 TEST(TransformOperationTest, ApplyMatrix) { 200 TEST(TransformOperationTest, ApplyMatrix) {
203 double dx = 1; 201 double dx = 1;
204 double dy = 2; 202 double dy = 2;
205 double dz = 3; 203 double dz = 3;
206 WebTransformationMatrix expected_matrix; 204 gfx::Transform expected_matrix;
207 expected_matrix.translate3d(dx, dy, dz); 205 expected_matrix.Translate3d(dx, dy, dz);
208 TransformOperations matrix_transform; 206 TransformOperations matrix_transform;
209 matrix_transform.AppendMatrix(expected_matrix); 207 matrix_transform.AppendMatrix(expected_matrix);
210 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_matrix, matrix_transform.Apply()); 208 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_matrix, matrix_transform.Apply());
211 } 209 }
212 210
213 TEST(TransformOperationTest, ApplyOrder) { 211 TEST(TransformOperationTest, ApplyOrder) {
214 double sx = 2; 212 double sx = 2;
215 double sy = 4; 213 double sy = 4;
216 double sz = 8; 214 double sz = 8;
217 215
218 double dx = 1; 216 double dx = 1;
219 double dy = 2; 217 double dy = 2;
220 double dz = 3; 218 double dz = 3;
221 219
222 TransformOperations operations; 220 TransformOperations operations;
223 operations.AppendScale(sx, sy, sz); 221 operations.AppendScale(sx, sy, sz);
224 operations.AppendTranslate(dx, dy, dz); 222 operations.AppendTranslate(dx, dy, dz);
225 223
226 WebTransformationMatrix expected_scale_matrix; 224 gfx::Transform expected_scale_matrix;
227 expected_scale_matrix.scale3d(sx, sy, sz); 225 expected_scale_matrix.Scale3d(sx, sy, sz);
228 226
229 WebTransformationMatrix expected_translate_matrix; 227 gfx::Transform expected_translate_matrix;
230 expected_translate_matrix.translate3d(dx, dy, dz); 228 expected_translate_matrix.Translate3d(dx, dy, dz);
231 229
232 WebTransformationMatrix expected_combined_matrix = expected_scale_matrix; 230 gfx::Transform expected_combined_matrix = expected_scale_matrix;
233 expected_combined_matrix.multiply(expected_translate_matrix); 231 expected_combined_matrix.PreconcatTransform(expected_translate_matrix);
234 232
235 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_combined_matrix, operations.Apply()); 233 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_combined_matrix, operations.Apply());
236 } 234 }
237 235
238 TEST(TransformOperationTest, BlendOrder) { 236 TEST(TransformOperationTest, BlendOrder) {
239 double sx1 = 2; 237 double sx1 = 2;
240 double sy1 = 4; 238 double sy1 = 4;
241 double sz1 = 8; 239 double sz1 = 8;
242 240
243 double dx1 = 1; 241 double dx1 = 1;
244 double dy1 = 2; 242 double dy1 = 2;
245 double dz1 = 3; 243 double dz1 = 3;
246 244
247 double sx2 = 4; 245 double sx2 = 4;
248 double sy2 = 8; 246 double sy2 = 8;
249 double sz2 = 16; 247 double sz2 = 16;
250 248
251 double dx2 = 10; 249 double dx2 = 10;
252 double dy2 = 20; 250 double dy2 = 20;
253 double dz2 = 30; 251 double dz2 = 30;
254 252
255 TransformOperations operations_from; 253 TransformOperations operations_from;
256 operations_from.AppendScale(sx1, sy1, sz1); 254 operations_from.AppendScale(sx1, sy1, sz1);
257 operations_from.AppendTranslate(dx1, dy1, dz1); 255 operations_from.AppendTranslate(dx1, dy1, dz1);
258 256
259 TransformOperations operations_to; 257 TransformOperations operations_to;
260 operations_to.AppendScale(sx2, sy2, sz2); 258 operations_to.AppendScale(sx2, sy2, sz2);
261 operations_to.AppendTranslate(dx2, dy2, dz2); 259 operations_to.AppendTranslate(dx2, dy2, dz2);
262 260
263 WebTransformationMatrix scale_from; 261 gfx::Transform scale_from;
264 scale_from.scale3d(sx1, sy1, sz1); 262 scale_from.Scale3d(sx1, sy1, sz1);
265 WebTransformationMatrix translate_from; 263 gfx::Transform translate_from;
266 translate_from.translate3d(dx1, dy1, dz1); 264 translate_from.Translate3d(dx1, dy1, dz1);
267 265
268 WebTransformationMatrix scale_to; 266 gfx::Transform scale_to;
269 scale_to.scale3d(sx2, sy2, sz2); 267 scale_to.Scale3d(sx2, sy2, sz2);
270 WebTransformationMatrix translate_to; 268 gfx::Transform translate_to;
271 translate_to.translate3d(dx2, dy2, dz2); 269 translate_to.Translate3d(dx2, dy2, dz2);
272 270
273 double progress = 0.25; 271 double progress = 0.25;
274 272
275 WebTransformationMatrix blended_scale = scale_to; 273 gfx::Transform blended_scale = scale_to;
276 blended_scale.blend(scale_from, progress); 274 blended_scale.Blend(scale_from, progress);
277 275
278 WebTransformationMatrix blended_translate = translate_to; 276 gfx::Transform blended_translate = translate_to;
279 blended_translate.blend(translate_from, progress); 277 blended_translate.Blend(translate_from, progress);
280 278
281 WebTransformationMatrix expected = blended_scale; 279 gfx::Transform expected = blended_scale;
282 expected.multiply(blended_translate); 280 expected.PreconcatTransform(blended_translate);
283 281
284 EXPECT_TRANSFORMATION_MATRIX_EQ( 282 EXPECT_TRANSFORMATION_MATRIX_EQ(
285 expected, operations_to.Blend(operations_from, progress)); 283 expected, operations_to.Blend(operations_from, progress));
286 } 284 }
287 285
288 static void CheckProgress(double progress, 286 static void CheckProgress(double progress,
289 const WebTransformationMatrix& from_matrix, 287 const gfx::Transform& from_matrix,
290 const WebTransformationMatrix& to_matrix, 288 const gfx::Transform& to_matrix,
291 const TransformOperations& from_transform, 289 const TransformOperations& from_transform,
292 const TransformOperations& to_transform) { 290 const TransformOperations& to_transform) {
293 WebTransformationMatrix expected_matrix = to_matrix; 291 gfx::Transform expected_matrix = to_matrix;
294 expected_matrix.blend(from_matrix, progress); 292 expected_matrix.Blend(from_matrix, progress);
295 EXPECT_TRANSFORMATION_MATRIX_EQ( 293 EXPECT_TRANSFORMATION_MATRIX_EQ(
296 expected_matrix, to_transform.Blend(from_transform, progress)); 294 expected_matrix, to_transform.Blend(from_transform, progress));
297 } 295 }
298 296
299 TEST(TransformOperationTest, BlendProgress) { 297 TEST(TransformOperationTest, BlendProgress) {
300 double sx = 2; 298 double sx = 2;
301 double sy = 4; 299 double sy = 4;
302 double sz = 8; 300 double sz = 8;
303 TransformOperations operations_from; 301 TransformOperations operations_from;
304 operations_from.AppendScale(sx, sy, sz); 302 operations_from.AppendScale(sx, sy, sz);
305 303
306 WebTransformationMatrix matrix_from; 304 gfx::Transform matrix_from;
307 matrix_from.scale3d(sx, sy, sz); 305 matrix_from.Scale3d(sx, sy, sz);
308 306
309 sx = 4; 307 sx = 4;
310 sy = 8; 308 sy = 8;
311 sz = 16; 309 sz = 16;
312 TransformOperations operations_to; 310 TransformOperations operations_to;
313 operations_to.AppendScale(sx, sy, sz); 311 operations_to.AppendScale(sx, sy, sz);
314 312
315 WebTransformationMatrix matrix_to; 313 gfx::Transform matrix_to;
316 matrix_to.scale3d(sx, sy, sz); 314 matrix_to.Scale3d(sx, sy, sz);
317 315
318 CheckProgress(-1, matrix_from, matrix_to, operations_from, operations_to); 316 CheckProgress(-1, matrix_from, matrix_to, operations_from, operations_to);
319 CheckProgress(0, matrix_from, matrix_to, operations_from, operations_to); 317 CheckProgress(0, matrix_from, matrix_to, operations_from, operations_to);
320 CheckProgress(0.25, matrix_from, matrix_to, operations_from, operations_to); 318 CheckProgress(0.25, matrix_from, matrix_to, operations_from, operations_to);
321 CheckProgress(0.5, matrix_from, matrix_to, operations_from, operations_to); 319 CheckProgress(0.5, matrix_from, matrix_to, operations_from, operations_to);
322 CheckProgress(1, matrix_from, matrix_to, operations_from, operations_to); 320 CheckProgress(1, matrix_from, matrix_to, operations_from, operations_to);
323 CheckProgress(2, matrix_from, matrix_to, operations_from, operations_to); 321 CheckProgress(2, matrix_from, matrix_to, operations_from, operations_to);
324 } 322 }
325 323
326 TEST(TransformOperationTest, BlendWhenTypesDoNotMatch) { 324 TEST(TransformOperationTest, BlendWhenTypesDoNotMatch) {
(...skipping 14 matching lines...) Expand all
341 double dz2 = 30; 339 double dz2 = 30;
342 340
343 TransformOperations operations_from; 341 TransformOperations operations_from;
344 operations_from.AppendScale(sx1, sy1, sz1); 342 operations_from.AppendScale(sx1, sy1, sz1);
345 operations_from.AppendTranslate(dx1, dy1, dz1); 343 operations_from.AppendTranslate(dx1, dy1, dz1);
346 344
347 TransformOperations operations_to; 345 TransformOperations operations_to;
348 operations_to.AppendTranslate(dx2, dy2, dz2); 346 operations_to.AppendTranslate(dx2, dy2, dz2);
349 operations_to.AppendScale(sx2, sy2, sz2); 347 operations_to.AppendScale(sx2, sy2, sz2);
350 348
351 WebTransformationMatrix from; 349 gfx::Transform from;
352 from.scale3d(sx1, sy1, sz1); 350 from.Scale3d(sx1, sy1, sz1);
353 from.translate3d(dx1, dy1, dz1); 351 from.Translate3d(dx1, dy1, dz1);
354 352
355 WebTransformationMatrix to; 353 gfx::Transform to;
356 to.translate3d(dx2, dy2, dz2); 354 to.Translate3d(dx2, dy2, dz2);
357 to.scale3d(sx2, sy2, sz2); 355 to.Scale3d(sx2, sy2, sz2);
358 356
359 double progress = 0.25; 357 double progress = 0.25;
360 358
361 WebTransformationMatrix expected = to; 359 gfx::Transform expected = to;
362 expected.blend(from, progress); 360 expected.Blend(from, progress);
363 361
364 EXPECT_TRANSFORMATION_MATRIX_EQ( 362 EXPECT_TRANSFORMATION_MATRIX_EQ(
365 expected, operations_to.Blend(operations_from, progress)); 363 expected, operations_to.Blend(operations_from, progress));
366 } 364 }
367 365
368 TEST(TransformOperationTest, LargeRotationsWithSameAxis) { 366 TEST(TransformOperationTest, LargeRotationsWithSameAxis) {
369 TransformOperations operations_from; 367 TransformOperations operations_from;
370 operations_from.AppendRotate(0, 0, 1, 0); 368 operations_from.AppendRotate(0, 0, 1, 0);
371 369
372 TransformOperations operations_to; 370 TransformOperations operations_to;
373 operations_to.AppendRotate(0, 0, 2, 360); 371 operations_to.AppendRotate(0, 0, 2, 360);
374 372
375 double progress = 0.5; 373 double progress = 0.5;
376 374
377 WebTransformationMatrix expected; 375 gfx::Transform expected;
378 expected.rotate3d(0, 0, 1, 180); 376 expected.RotateAbout(gfx::Vector3dF(0, 0, 1), 180);
379 377
380 EXPECT_TRANSFORMATION_MATRIX_EQ( 378 EXPECT_TRANSFORMATION_MATRIX_EQ(
381 expected, operations_to.Blend(operations_from, progress)); 379 expected, operations_to.Blend(operations_from, progress));
382 } 380 }
383 381
384 TEST(TransformOperationTest, LargeRotationsWithSameAxisInDifferentDirection) { 382 TEST(TransformOperationTest, LargeRotationsWithSameAxisInDifferentDirection) {
385 TransformOperations operations_from; 383 TransformOperations operations_from;
386 operations_from.AppendRotate(0, 0, 1, 180); 384 operations_from.AppendRotate(0, 0, 1, 180);
387 385
388 TransformOperations operations_to; 386 TransformOperations operations_to;
389 operations_to.AppendRotate(0, 0, -1, 180); 387 operations_to.AppendRotate(0, 0, -1, 180);
390 388
391 double progress = 0.5; 389 double progress = 0.5;
392 390
393 WebTransformationMatrix expected; 391 gfx::Transform expected;
394 392
395 EXPECT_TRANSFORMATION_MATRIX_EQ( 393 EXPECT_TRANSFORMATION_MATRIX_EQ(
396 expected, operations_to.Blend(operations_from, progress)); 394 expected, operations_to.Blend(operations_from, progress));
397 } 395 }
398 396
399 TEST(TransformOperationTest, LargeRotationsWithDifferentAxes) { 397 TEST(TransformOperationTest, LargeRotationsWithDifferentAxes) {
400 TransformOperations operations_from; 398 TransformOperations operations_from;
401 operations_from.AppendRotate(0, 0, 1, 180); 399 operations_from.AppendRotate(0, 0, 1, 175);
402 400
403 TransformOperations operations_to; 401 TransformOperations operations_to;
404 operations_to.AppendRotate(0, 1, 0, 180); 402 operations_to.AppendRotate(0, 1, 0, 175);
405 403
406 double progress = 0.5; 404 double progress = 0.5;
407 WebTransformationMatrix matrix_from; 405 gfx::Transform matrix_from;
408 matrix_from.rotate3d(0, 0, 1, 180); 406 matrix_from.RotateAbout(gfx::Vector3dF(0, 0, 1), 175);
409 407
410 WebTransformationMatrix matrix_to; 408 gfx::Transform matrix_to;
411 matrix_to.rotate3d(0, 1, 0, 180); 409 matrix_to.RotateAbout(gfx::Vector3dF(0, 1, 0), 175);
412 410
413 WebTransformationMatrix expected = matrix_to; 411 gfx::Transform expected = matrix_to;
414 expected.blend(matrix_from, progress); 412 expected.Blend(matrix_from, progress);
415 413
416 EXPECT_TRANSFORMATION_MATRIX_EQ( 414 EXPECT_TRANSFORMATION_MATRIX_EQ(
417 expected, operations_to.Blend(operations_from, progress)); 415 expected, operations_to.Blend(operations_from, progress));
418 } 416 }
419 417
420 TEST(TransformOperationTest, BlendRotationFromIdentity) { 418 TEST(TransformOperationTest, BlendRotationFromIdentity) {
421 ScopedVector<TransformOperations> identity_operations; 419 ScopedVector<TransformOperations> identity_operations;
422 GetIdentityOperations(&identity_operations); 420 GetIdentityOperations(&identity_operations);
423 421
424 for (size_t i = 0; i < identity_operations.size(); ++i) { 422 for (size_t i = 0; i < identity_operations.size(); ++i) {
425 TransformOperations operations; 423 TransformOperations operations;
426 operations.AppendRotate(0, 0, 1, 360); 424 operations.AppendRotate(0, 0, 1, 360);
427 425
428 double progress = 0.5; 426 double progress = 0.5;
429 427
430 WebTransformationMatrix expected; 428 gfx::Transform expected;
431 expected.rotate3d(0, 0, 1, 180); 429 expected.RotateAbout(gfx::Vector3dF(0, 0, 1), 180);
432 430
433 EXPECT_TRANSFORMATION_MATRIX_EQ( 431 EXPECT_TRANSFORMATION_MATRIX_EQ(
434 expected, operations.Blend(*identity_operations[i], progress)); 432 expected, operations.Blend(*identity_operations[i], progress));
435 } 433 }
436 } 434 }
437 435
438 TEST(TransformOperationTest, BlendTranslationFromIdentity) { 436 TEST(TransformOperationTest, BlendTranslationFromIdentity) {
439 ScopedVector<TransformOperations> identity_operations; 437 ScopedVector<TransformOperations> identity_operations;
440 GetIdentityOperations(&identity_operations); 438 GetIdentityOperations(&identity_operations);
441 439
442 for (size_t i = 0; i < identity_operations.size(); ++i) { 440 for (size_t i = 0; i < identity_operations.size(); ++i) {
443 TransformOperations operations; 441 TransformOperations operations;
444 operations.AppendTranslate(2, 2, 2); 442 operations.AppendTranslate(2, 2, 2);
445 443
446 double progress = 0.5; 444 double progress = 0.5;
447 445
448 WebTransformationMatrix expected; 446 gfx::Transform expected;
449 expected.translate3d(1, 1, 1); 447 expected.Translate3d(1, 1, 1);
450 448
451 EXPECT_TRANSFORMATION_MATRIX_EQ( 449 EXPECT_TRANSFORMATION_MATRIX_EQ(
452 expected, operations.Blend(*identity_operations[i], progress)); 450 expected, operations.Blend(*identity_operations[i], progress));
453 } 451 }
454 } 452 }
455 453
456 TEST(TransformOperationTest, BlendScaleFromIdentity) { 454 TEST(TransformOperationTest, BlendScaleFromIdentity) {
457 ScopedVector<TransformOperations> identity_operations; 455 ScopedVector<TransformOperations> identity_operations;
458 GetIdentityOperations(&identity_operations); 456 GetIdentityOperations(&identity_operations);
459 457
460 for (size_t i = 0; i < identity_operations.size(); ++i) { 458 for (size_t i = 0; i < identity_operations.size(); ++i) {
461 TransformOperations operations; 459 TransformOperations operations;
462 operations.AppendScale(3, 3, 3); 460 operations.AppendScale(3, 3, 3);
463 461
464 double progress = 0.5; 462 double progress = 0.5;
465 463
466 WebTransformationMatrix expected; 464 gfx::Transform expected;
467 expected.scale3d(2, 2, 2); 465 expected.Scale3d(2, 2, 2);
468 466
469 EXPECT_TRANSFORMATION_MATRIX_EQ( 467 EXPECT_TRANSFORMATION_MATRIX_EQ(
470 expected, operations.Blend(*identity_operations[i], progress)); 468 expected, operations.Blend(*identity_operations[i], progress));
471 } 469 }
472 } 470 }
473 471
474 TEST(TransformOperationTest, BlendSkewFromIdentity) { 472 TEST(TransformOperationTest, BlendSkewFromIdentity) {
475 ScopedVector<TransformOperations> identity_operations; 473 ScopedVector<TransformOperations> identity_operations;
476 GetIdentityOperations(&identity_operations); 474 GetIdentityOperations(&identity_operations);
477 475
478 for (size_t i = 0; i < identity_operations.size(); ++i) { 476 for (size_t i = 0; i < identity_operations.size(); ++i) {
479 TransformOperations operations; 477 TransformOperations operations;
480 operations.AppendSkew(2, 2); 478 operations.AppendSkew(2, 2);
481 479
482 double progress = 0.5; 480 double progress = 0.5;
483 481
484 WebTransformationMatrix expected; 482 gfx::Transform expected;
485 expected.skewX(1); 483 expected.SkewX(1);
486 expected.skewY(1); 484 expected.SkewY(1);
487 485
488 EXPECT_TRANSFORMATION_MATRIX_EQ( 486 EXPECT_TRANSFORMATION_MATRIX_EQ(
489 expected, operations.Blend(*identity_operations[i], progress)); 487 expected, operations.Blend(*identity_operations[i], progress));
490 } 488 }
491 } 489 }
492 490
493 TEST(TransformOperationTest, BlendPerspectiveFromIdentity) { 491 TEST(TransformOperationTest, BlendPerspectiveFromIdentity) {
494 ScopedVector<TransformOperations> identity_operations; 492 ScopedVector<TransformOperations> identity_operations;
495 GetIdentityOperations(&identity_operations); 493 GetIdentityOperations(&identity_operations);
496 494
497 for (size_t i = 0; i < identity_operations.size(); ++i) { 495 for (size_t i = 0; i < identity_operations.size(); ++i) {
498 TransformOperations operations; 496 TransformOperations operations;
499 operations.AppendPerspective(1000); 497 operations.AppendPerspective(1000);
500 498
501 double progress = 0.5; 499 double progress = 0.5;
502 500
503 WebTransformationMatrix expected; 501 gfx::Transform expected;
504 expected.applyPerspective(500 + 0.5 * std::numeric_limits<double>::max()); 502 expected.ApplyPerspectiveDepth(
503 500 + 0.5 * std::numeric_limits<double>::max());
505 504
506 EXPECT_TRANSFORMATION_MATRIX_EQ( 505 EXPECT_TRANSFORMATION_MATRIX_EQ(
507 expected, operations.Blend(*identity_operations[i], progress)); 506 expected, operations.Blend(*identity_operations[i], progress));
508 } 507 }
509 } 508 }
510 509
511 TEST(TransformOperationTest, BlendRotationToIdentity) { 510 TEST(TransformOperationTest, BlendRotationToIdentity) {
512 ScopedVector<TransformOperations> identity_operations; 511 ScopedVector<TransformOperations> identity_operations;
513 GetIdentityOperations(&identity_operations); 512 GetIdentityOperations(&identity_operations);
514 513
515 for (size_t i = 0; i < identity_operations.size(); ++i) { 514 for (size_t i = 0; i < identity_operations.size(); ++i) {
516 TransformOperations operations; 515 TransformOperations operations;
517 operations.AppendRotate(0, 0, 1, 360); 516 operations.AppendRotate(0, 0, 1, 360);
518 517
519 double progress = 0.5; 518 double progress = 0.5;
520 519
521 WebTransformationMatrix expected; 520 gfx::Transform expected;
522 expected.rotate3d(0, 0, 1, 180); 521 expected.RotateAbout(gfx::Vector3dF(0, 0, 1), 180);
523 522
524 EXPECT_TRANSFORMATION_MATRIX_EQ( 523 EXPECT_TRANSFORMATION_MATRIX_EQ(
525 expected, identity_operations[i]->Blend(operations, progress)); 524 expected, identity_operations[i]->Blend(operations, progress));
526 } 525 }
527 } 526 }
528 527
529 TEST(TransformOperationTest, BlendTranslationToIdentity) { 528 TEST(TransformOperationTest, BlendTranslationToIdentity) {
530 ScopedVector<TransformOperations> identity_operations; 529 ScopedVector<TransformOperations> identity_operations;
531 GetIdentityOperations(&identity_operations); 530 GetIdentityOperations(&identity_operations);
532 531
533 for (size_t i = 0; i < identity_operations.size(); ++i) { 532 for (size_t i = 0; i < identity_operations.size(); ++i) {
534 TransformOperations operations; 533 TransformOperations operations;
535 operations.AppendTranslate(2, 2, 2); 534 operations.AppendTranslate(2, 2, 2);
536 535
537 double progress = 0.5; 536 double progress = 0.5;
538 537
539 WebTransformationMatrix expected; 538 gfx::Transform expected;
540 expected.translate3d(1, 1, 1); 539 expected.Translate3d(1, 1, 1);
541 540
542 EXPECT_TRANSFORMATION_MATRIX_EQ( 541 EXPECT_TRANSFORMATION_MATRIX_EQ(
543 expected, identity_operations[i]->Blend(operations, progress)); 542 expected, identity_operations[i]->Blend(operations, progress));
544 } 543 }
545 } 544 }
546 545
547 TEST(TransformOperationTest, BlendScaleToIdentity) { 546 TEST(TransformOperationTest, BlendScaleToIdentity) {
548 ScopedVector<TransformOperations> identity_operations; 547 ScopedVector<TransformOperations> identity_operations;
549 GetIdentityOperations(&identity_operations); 548 GetIdentityOperations(&identity_operations);
550 549
551 for (size_t i = 0; i < identity_operations.size(); ++i) { 550 for (size_t i = 0; i < identity_operations.size(); ++i) {
552 TransformOperations operations; 551 TransformOperations operations;
553 operations.AppendScale(3, 3, 3); 552 operations.AppendScale(3, 3, 3);
554 553
555 double progress = 0.5; 554 double progress = 0.5;
556 555
557 WebTransformationMatrix expected; 556 gfx::Transform expected;
558 expected.scale3d(2, 2, 2); 557 expected.Scale3d(2, 2, 2);
559 558
560 EXPECT_TRANSFORMATION_MATRIX_EQ( 559 EXPECT_TRANSFORMATION_MATRIX_EQ(
561 expected, identity_operations[i]->Blend(operations, progress)); 560 expected, identity_operations[i]->Blend(operations, progress));
562 } 561 }
563 } 562 }
564 563
565 TEST(TransformOperationTest, BlendSkewToIdentity) { 564 TEST(TransformOperationTest, BlendSkewToIdentity) {
566 ScopedVector<TransformOperations> identity_operations; 565 ScopedVector<TransformOperations> identity_operations;
567 GetIdentityOperations(&identity_operations); 566 GetIdentityOperations(&identity_operations);
568 567
569 for (size_t i = 0; i < identity_operations.size(); ++i) { 568 for (size_t i = 0; i < identity_operations.size(); ++i) {
570 TransformOperations operations; 569 TransformOperations operations;
571 operations.AppendSkew(2, 2); 570 operations.AppendSkew(2, 2);
572 571
573 double progress = 0.5; 572 double progress = 0.5;
574 573
575 WebTransformationMatrix expected; 574 gfx::Transform expected;
576 expected.skewX(1); 575 expected.SkewX(1);
577 expected.skewY(1); 576 expected.SkewY(1);
578 577
579 EXPECT_TRANSFORMATION_MATRIX_EQ( 578 EXPECT_TRANSFORMATION_MATRIX_EQ(
580 expected, identity_operations[i]->Blend(operations, progress)); 579 expected, identity_operations[i]->Blend(operations, progress));
581 } 580 }
582 } 581 }
583 582
584 TEST(TransformOperationTest, BlendPerspectiveToIdentity) { 583 TEST(TransformOperationTest, BlendPerspectiveToIdentity) {
585 ScopedVector<TransformOperations> identity_operations; 584 ScopedVector<TransformOperations> identity_operations;
586 GetIdentityOperations(&identity_operations); 585 GetIdentityOperations(&identity_operations);
587 586
588 for (size_t i = 0; i < identity_operations.size(); ++i) { 587 for (size_t i = 0; i < identity_operations.size(); ++i) {
589 TransformOperations operations; 588 TransformOperations operations;
590 operations.AppendPerspective(1000); 589 operations.AppendPerspective(1000);
591 590
592 double progress = 0.5; 591 double progress = 0.5;
593 592
594 WebTransformationMatrix expected; 593 gfx::Transform expected;
595 expected.applyPerspective(500 + 0.5 * std::numeric_limits<double>::max()); 594 expected.ApplyPerspectiveDepth(
595 500 + 0.5 * std::numeric_limits<double>::max());
596 596
597 EXPECT_TRANSFORMATION_MATRIX_EQ( 597 EXPECT_TRANSFORMATION_MATRIX_EQ(
598 expected, identity_operations[i]->Blend(operations, progress)); 598 expected, identity_operations[i]->Blend(operations, progress));
599 } 599 }
600 } 600 }
601 601
602 } // namespace 602 } // namespace
603 } // namespace cc 603 } // namespace cc
OLDNEW
« no previous file with comments | « cc/transform_operations.cc ('k') | ui/compositor/transform_animation_curve_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698