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

Side by Side Diff: cc/animation/layer_animation_controller_unittest.cc

Issue 719453007: Make Keyframe use TimeTicks/TimeDelta to represent time instead of double. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/animation/layer_animation_controller.h" 5 #include "cc/animation/layer_animation_controller.h"
6 6
7 #include "cc/animation/animation.h" 7 #include "cc/animation/animation.h"
8 #include "cc/animation/animation_curve.h" 8 #include "cc/animation/animation_curve.h"
9 #include "cc/animation/animation_delegate.h" 9 #include "cc/animation/animation_delegate.h"
10 #include "cc/animation/animation_registrar.h" 10 #include "cc/animation/animation_registrar.h"
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 // Choose different values for x and y to avoid coincidental values in the 503 // Choose different values for x and y to avoid coincidental values in the
504 // observed transforms. 504 // observed transforms.
505 const float delta_x = 3; 505 const float delta_x = 3;
506 const float delta_y = 4; 506 const float delta_y = 4;
507 507
508 scoped_ptr<KeyframedTransformAnimationCurve> curve( 508 scoped_ptr<KeyframedTransformAnimationCurve> curve(
509 KeyframedTransformAnimationCurve::Create()); 509 KeyframedTransformAnimationCurve::Create());
510 510
511 // Create simple Transform animation. 511 // Create simple Transform animation.
512 TransformOperations operations; 512 TransformOperations operations;
513 curve->AddKeyframe(TransformKeyframe::Create(0, operations, nullptr)); 513 curve->AddKeyframe(
514 TransformKeyframe::Create(base::TimeDelta(), operations, nullptr));
514 operations.AppendTranslate(delta_x, delta_y, 0); 515 operations.AppendTranslate(delta_x, delta_y, 0);
515 curve->AddKeyframe(TransformKeyframe::Create(1, operations, nullptr)); 516 curve->AddKeyframe(TransformKeyframe::Create(
517 base::TimeDelta::FromSecondsD(1.0), operations, nullptr));
516 518
517 scoped_ptr<Animation> animation( 519 scoped_ptr<Animation> animation(
518 Animation::Create(curve.Pass(), 1, 0, Animation::Transform)); 520 Animation::Create(curve.Pass(), 1, 0, Animation::Transform));
519 animation->set_is_impl_only(true); 521 animation->set_is_impl_only(true);
520 controller_impl->AddAnimation(animation.Pass()); 522 controller_impl->AddAnimation(animation.Pass());
521 523
522 // Run animation. 524 // Run animation.
523 controller_impl->Animate(kInitialTickTime); 525 controller_impl->Animate(kInitialTickTime);
524 controller_impl->UpdateState(true, events.get()); 526 controller_impl->UpdateState(true, events.get());
525 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 527 EXPECT_TRUE(controller_impl->HasActiveAnimation());
(...skipping 26 matching lines...) Expand all
552 FakeLayerAnimationValueObserver dummy; 554 FakeLayerAnimationValueObserver dummy;
553 scoped_refptr<LayerAnimationController> controller( 555 scoped_refptr<LayerAnimationController> controller(
554 LayerAnimationController::Create(0)); 556 LayerAnimationController::Create(0));
555 controller->AddValueObserver(&dummy); 557 controller->AddValueObserver(&dummy);
556 558
557 scoped_ptr<KeyframedFilterAnimationCurve> curve( 559 scoped_ptr<KeyframedFilterAnimationCurve> curve(
558 KeyframedFilterAnimationCurve::Create()); 560 KeyframedFilterAnimationCurve::Create());
559 561
560 FilterOperations start_filters; 562 FilterOperations start_filters;
561 start_filters.Append(FilterOperation::CreateBrightnessFilter(1.f)); 563 start_filters.Append(FilterOperation::CreateBrightnessFilter(1.f));
562 curve->AddKeyframe(FilterKeyframe::Create(0, start_filters, nullptr)); 564 curve->AddKeyframe(
565 FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr));
563 FilterOperations end_filters; 566 FilterOperations end_filters;
564 end_filters.Append(FilterOperation::CreateBrightnessFilter(2.f)); 567 end_filters.Append(FilterOperation::CreateBrightnessFilter(2.f));
565 curve->AddKeyframe(FilterKeyframe::Create(1, end_filters, nullptr)); 568 curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
569 end_filters, nullptr));
566 570
567 scoped_ptr<Animation> animation( 571 scoped_ptr<Animation> animation(
568 Animation::Create(curve.Pass(), 1, 0, Animation::Filter)); 572 Animation::Create(curve.Pass(), 1, 0, Animation::Filter));
569 controller->AddAnimation(animation.Pass()); 573 controller->AddAnimation(animation.Pass());
570 574
571 controller->Animate(kInitialTickTime); 575 controller->Animate(kInitialTickTime);
572 controller->UpdateState(true, events.get()); 576 controller->UpdateState(true, events.get());
573 EXPECT_TRUE(controller->HasActiveAnimation()); 577 EXPECT_TRUE(controller->HasActiveAnimation());
574 EXPECT_EQ(start_filters, dummy.filters()); 578 EXPECT_EQ(start_filters, dummy.filters());
575 // A non-impl-only animation should not generate property updates. 579 // A non-impl-only animation should not generate property updates.
(...skipping 23 matching lines...) Expand all
599 scoped_refptr<LayerAnimationController> controller_impl( 603 scoped_refptr<LayerAnimationController> controller_impl(
600 LayerAnimationController::Create(0)); 604 LayerAnimationController::Create(0));
601 controller_impl->AddValueObserver(&dummy_impl); 605 controller_impl->AddValueObserver(&dummy_impl);
602 606
603 scoped_ptr<KeyframedFilterAnimationCurve> curve( 607 scoped_ptr<KeyframedFilterAnimationCurve> curve(
604 KeyframedFilterAnimationCurve::Create()); 608 KeyframedFilterAnimationCurve::Create());
605 609
606 // Create simple Filter animation. 610 // Create simple Filter animation.
607 FilterOperations start_filters; 611 FilterOperations start_filters;
608 start_filters.Append(FilterOperation::CreateBrightnessFilter(1.f)); 612 start_filters.Append(FilterOperation::CreateBrightnessFilter(1.f));
609 curve->AddKeyframe(FilterKeyframe::Create(0, start_filters, nullptr)); 613 curve->AddKeyframe(
614 FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr));
610 FilterOperations end_filters; 615 FilterOperations end_filters;
611 end_filters.Append(FilterOperation::CreateBrightnessFilter(2.f)); 616 end_filters.Append(FilterOperation::CreateBrightnessFilter(2.f));
612 curve->AddKeyframe(FilterKeyframe::Create(1, end_filters, nullptr)); 617 curve->AddKeyframe(FilterKeyframe::Create(base::TimeDelta::FromSecondsD(1.0),
618 end_filters, nullptr));
613 619
614 scoped_ptr<Animation> animation( 620 scoped_ptr<Animation> animation(
615 Animation::Create(curve.Pass(), 1, 0, Animation::Filter)); 621 Animation::Create(curve.Pass(), 1, 0, Animation::Filter));
616 animation->set_is_impl_only(true); 622 animation->set_is_impl_only(true);
617 controller_impl->AddAnimation(animation.Pass()); 623 controller_impl->AddAnimation(animation.Pass());
618 624
619 // Run animation. 625 // Run animation.
620 controller_impl->Animate(kInitialTickTime); 626 controller_impl->Animate(kInitialTickTime);
621 controller_impl->UpdateState(true, events.get()); 627 controller_impl->UpdateState(true, events.get());
622 EXPECT_TRUE(controller_impl->HasActiveAnimation()); 628 EXPECT_TRUE(controller_impl->HasActiveAnimation());
(...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after
1458 } 1464 }
1459 1465
1460 TEST(LayerAnimationControllerTest, TransformAnimationBounds) { 1466 TEST(LayerAnimationControllerTest, TransformAnimationBounds) {
1461 scoped_refptr<LayerAnimationController> controller_impl( 1467 scoped_refptr<LayerAnimationController> controller_impl(
1462 LayerAnimationController::Create(0)); 1468 LayerAnimationController::Create(0));
1463 1469
1464 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1470 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1465 KeyframedTransformAnimationCurve::Create()); 1471 KeyframedTransformAnimationCurve::Create());
1466 1472
1467 TransformOperations operations1; 1473 TransformOperations operations1;
1468 curve1->AddKeyframe(TransformKeyframe::Create(0.0, operations1, nullptr)); 1474 curve1->AddKeyframe(
1475 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
1469 operations1.AppendTranslate(10.0, 15.0, 0.0); 1476 operations1.AppendTranslate(10.0, 15.0, 0.0);
1470 curve1->AddKeyframe(TransformKeyframe::Create(1.0, operations1, nullptr)); 1477 curve1->AddKeyframe(TransformKeyframe::Create(
1478 base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
1471 1479
1472 scoped_ptr<Animation> animation( 1480 scoped_ptr<Animation> animation(
1473 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform)); 1481 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform));
1474 controller_impl->AddAnimation(animation.Pass()); 1482 controller_impl->AddAnimation(animation.Pass());
1475 1483
1476 scoped_ptr<KeyframedTransformAnimationCurve> curve2( 1484 scoped_ptr<KeyframedTransformAnimationCurve> curve2(
1477 KeyframedTransformAnimationCurve::Create()); 1485 KeyframedTransformAnimationCurve::Create());
1478 1486
1479 TransformOperations operations2; 1487 TransformOperations operations2;
1480 curve2->AddKeyframe(TransformKeyframe::Create(0.0, operations2, nullptr)); 1488 curve2->AddKeyframe(
1489 TransformKeyframe::Create(base::TimeDelta(), operations2, nullptr));
1481 operations2.AppendScale(2.0, 3.0, 4.0); 1490 operations2.AppendScale(2.0, 3.0, 4.0);
1482 curve2->AddKeyframe(TransformKeyframe::Create(1.0, operations2, nullptr)); 1491 curve2->AddKeyframe(TransformKeyframe::Create(
1492 base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
1483 1493
1484 animation = Animation::Create(curve2.Pass(), 2, 2, Animation::Transform); 1494 animation = Animation::Create(curve2.Pass(), 2, 2, Animation::Transform);
1485 controller_impl->AddAnimation(animation.Pass()); 1495 controller_impl->AddAnimation(animation.Pass());
1486 1496
1487 gfx::BoxF box(1.f, 2.f, -1.f, 3.f, 4.f, 5.f); 1497 gfx::BoxF box(1.f, 2.f, -1.f, 3.f, 4.f, 5.f);
1488 gfx::BoxF bounds; 1498 gfx::BoxF bounds;
1489 1499
1490 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds)); 1500 EXPECT_TRUE(controller_impl->TransformAnimationBoundsForBox(box, &bounds));
1491 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 13.f, 19.f, 20.f).ToString(), 1501 EXPECT_EQ(gfx::BoxF(1.f, 2.f, -4.f, 13.f, 19.f, 20.f).ToString(),
1492 bounds.ToString()); 1502 bounds.ToString());
(...skipping 11 matching lines...) Expand all
1504 1514
1505 // There are no longer any running animations. 1515 // There are no longer any running animations.
1506 EXPECT_FALSE(controller_impl->HasTransformAnimationThatInflatesBounds()); 1516 EXPECT_FALSE(controller_impl->HasTransformAnimationThatInflatesBounds());
1507 1517
1508 // Add an animation whose bounds we don't yet support computing. 1518 // Add an animation whose bounds we don't yet support computing.
1509 scoped_ptr<KeyframedTransformAnimationCurve> curve3( 1519 scoped_ptr<KeyframedTransformAnimationCurve> curve3(
1510 KeyframedTransformAnimationCurve::Create()); 1520 KeyframedTransformAnimationCurve::Create());
1511 TransformOperations operations3; 1521 TransformOperations operations3;
1512 gfx::Transform transform3; 1522 gfx::Transform transform3;
1513 transform3.Scale3d(1.0, 2.0, 3.0); 1523 transform3.Scale3d(1.0, 2.0, 3.0);
1514 curve3->AddKeyframe(TransformKeyframe::Create(0.0, operations3, nullptr)); 1524 curve3->AddKeyframe(
1525 TransformKeyframe::Create(base::TimeDelta(), operations3, nullptr));
1515 operations3.AppendMatrix(transform3); 1526 operations3.AppendMatrix(transform3);
1516 curve3->AddKeyframe(TransformKeyframe::Create(1.0, operations3, nullptr)); 1527 curve3->AddKeyframe(TransformKeyframe::Create(
1528 base::TimeDelta::FromSecondsD(1.0), operations3, nullptr));
1517 animation = Animation::Create(curve3.Pass(), 3, 3, Animation::Transform); 1529 animation = Animation::Create(curve3.Pass(), 3, 3, Animation::Transform);
1518 controller_impl->AddAnimation(animation.Pass()); 1530 controller_impl->AddAnimation(animation.Pass());
1519 EXPECT_FALSE(controller_impl->TransformAnimationBoundsForBox(box, &bounds)); 1531 EXPECT_FALSE(controller_impl->TransformAnimationBoundsForBox(box, &bounds));
1520 } 1532 }
1521 1533
1522 // Tests that AbortAnimations aborts all animations targeting the specified 1534 // Tests that AbortAnimations aborts all animations targeting the specified
1523 // property. 1535 // property.
1524 TEST(LayerAnimationControllerTest, AbortAnimations) { 1536 TEST(LayerAnimationControllerTest, AbortAnimations) {
1525 FakeLayerAnimationValueObserver dummy; 1537 FakeLayerAnimationValueObserver dummy;
1526 scoped_refptr<LayerAnimationController> controller( 1538 scoped_refptr<LayerAnimationController> controller(
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1774 1, 1786 1,
1775 Animation::Opacity)); 1787 Animation::Opacity));
1776 1788
1777 // Opacity animations don't affect scale. 1789 // Opacity animations don't affect scale.
1778 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale()); 1790 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale());
1779 1791
1780 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1792 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1781 KeyframedTransformAnimationCurve::Create()); 1793 KeyframedTransformAnimationCurve::Create());
1782 1794
1783 TransformOperations operations1; 1795 TransformOperations operations1;
1784 curve1->AddKeyframe(TransformKeyframe::Create(0.0, operations1, nullptr)); 1796 curve1->AddKeyframe(
1797 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
1785 operations1.AppendTranslate(10.0, 15.0, 0.0); 1798 operations1.AppendTranslate(10.0, 15.0, 0.0);
1786 curve1->AddKeyframe(TransformKeyframe::Create(1.0, operations1, nullptr)); 1799 curve1->AddKeyframe(TransformKeyframe::Create(
1800 base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
1787 1801
1788 scoped_ptr<Animation> animation( 1802 scoped_ptr<Animation> animation(
1789 Animation::Create(curve1.Pass(), 2, 2, Animation::Transform)); 1803 Animation::Create(curve1.Pass(), 2, 2, Animation::Transform));
1790 controller_impl->AddAnimation(animation.Pass()); 1804 controller_impl->AddAnimation(animation.Pass());
1791 1805
1792 // Translations don't affect scale. 1806 // Translations don't affect scale.
1793 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale()); 1807 EXPECT_FALSE(controller_impl->HasAnimationThatAffectsScale());
1794 1808
1795 scoped_ptr<KeyframedTransformAnimationCurve> curve2( 1809 scoped_ptr<KeyframedTransformAnimationCurve> curve2(
1796 KeyframedTransformAnimationCurve::Create()); 1810 KeyframedTransformAnimationCurve::Create());
1797 1811
1798 TransformOperations operations2; 1812 TransformOperations operations2;
1799 curve2->AddKeyframe(TransformKeyframe::Create(0.0, operations2, nullptr)); 1813 curve2->AddKeyframe(
1814 TransformKeyframe::Create(base::TimeDelta(), operations2, nullptr));
1800 operations2.AppendScale(2.0, 3.0, 4.0); 1815 operations2.AppendScale(2.0, 3.0, 4.0);
1801 curve2->AddKeyframe(TransformKeyframe::Create(1.0, operations2, nullptr)); 1816 curve2->AddKeyframe(TransformKeyframe::Create(
1817 base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
1802 1818
1803 animation = Animation::Create(curve2.Pass(), 3, 3, Animation::Transform); 1819 animation = Animation::Create(curve2.Pass(), 3, 3, Animation::Transform);
1804 controller_impl->AddAnimation(animation.Pass()); 1820 controller_impl->AddAnimation(animation.Pass());
1805 1821
1806 EXPECT_TRUE(controller_impl->HasAnimationThatAffectsScale()); 1822 EXPECT_TRUE(controller_impl->HasAnimationThatAffectsScale());
1807 1823
1808 controller_impl->GetAnimation(3, Animation::Transform) 1824 controller_impl->GetAnimation(3, Animation::Transform)
1809 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); 1825 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1810 1826
1811 // Only unfinished animations should be considered by 1827 // Only unfinished animations should be considered by
(...skipping 12 matching lines...) Expand all
1824 1, 1840 1,
1825 Animation::Opacity)); 1841 Animation::Opacity));
1826 1842
1827 // Opacity animations aren't non-translation transforms. 1843 // Opacity animations aren't non-translation transforms.
1828 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms()); 1844 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms());
1829 1845
1830 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1846 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1831 KeyframedTransformAnimationCurve::Create()); 1847 KeyframedTransformAnimationCurve::Create());
1832 1848
1833 TransformOperations operations1; 1849 TransformOperations operations1;
1834 curve1->AddKeyframe(TransformKeyframe::Create(0.0, operations1, nullptr)); 1850 curve1->AddKeyframe(
1851 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
1835 operations1.AppendTranslate(10.0, 15.0, 0.0); 1852 operations1.AppendTranslate(10.0, 15.0, 0.0);
1836 curve1->AddKeyframe(TransformKeyframe::Create(1.0, operations1, nullptr)); 1853 curve1->AddKeyframe(TransformKeyframe::Create(
1854 base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
1837 1855
1838 scoped_ptr<Animation> animation( 1856 scoped_ptr<Animation> animation(
1839 Animation::Create(curve1.Pass(), 2, 2, Animation::Transform)); 1857 Animation::Create(curve1.Pass(), 2, 2, Animation::Transform));
1840 controller_impl->AddAnimation(animation.Pass()); 1858 controller_impl->AddAnimation(animation.Pass());
1841 1859
1842 // The only transform animation we've added is a translation. 1860 // The only transform animation we've added is a translation.
1843 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms()); 1861 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms());
1844 1862
1845 scoped_ptr<KeyframedTransformAnimationCurve> curve2( 1863 scoped_ptr<KeyframedTransformAnimationCurve> curve2(
1846 KeyframedTransformAnimationCurve::Create()); 1864 KeyframedTransformAnimationCurve::Create());
1847 1865
1848 TransformOperations operations2; 1866 TransformOperations operations2;
1849 curve2->AddKeyframe(TransformKeyframe::Create(0.0, operations2, nullptr)); 1867 curve2->AddKeyframe(
1868 TransformKeyframe::Create(base::TimeDelta(), operations2, nullptr));
1850 operations2.AppendScale(2.0, 3.0, 4.0); 1869 operations2.AppendScale(2.0, 3.0, 4.0);
1851 curve2->AddKeyframe(TransformKeyframe::Create(1.0, operations2, nullptr)); 1870 curve2->AddKeyframe(TransformKeyframe::Create(
1871 base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
1852 1872
1853 animation = Animation::Create(curve2.Pass(), 3, 3, Animation::Transform); 1873 animation = Animation::Create(curve2.Pass(), 3, 3, Animation::Transform);
1854 controller_impl->AddAnimation(animation.Pass()); 1874 controller_impl->AddAnimation(animation.Pass());
1855 1875
1856 // A scale animation is not a translation. 1876 // A scale animation is not a translation.
1857 EXPECT_FALSE(controller_impl->HasOnlyTranslationTransforms()); 1877 EXPECT_FALSE(controller_impl->HasOnlyTranslationTransforms());
1858 1878
1859 controller_impl->GetAnimation(3, Animation::Transform) 1879 controller_impl->GetAnimation(3, Animation::Transform)
1860 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); 1880 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1861 1881
1862 // Only unfinished animations should be considered by 1882 // Only unfinished animations should be considered by
1863 // HasOnlyTranslationTransforms. 1883 // HasOnlyTranslationTransforms.
1864 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms()); 1884 EXPECT_TRUE(controller_impl->HasOnlyTranslationTransforms());
1865 } 1885 }
1866 1886
1867 TEST(LayerAnimationControllerTest, MaximumTargetScale) { 1887 TEST(LayerAnimationControllerTest, MaximumTargetScale) {
1868 scoped_refptr<LayerAnimationController> controller_impl( 1888 scoped_refptr<LayerAnimationController> controller_impl(
1869 LayerAnimationController::Create(0)); 1889 LayerAnimationController::Create(0));
1870 1890
1871 float max_scale = 0.f; 1891 float max_scale = 0.f;
1872 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale)); 1892 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale));
1873 EXPECT_EQ(0.f, max_scale); 1893 EXPECT_EQ(0.f, max_scale);
1874 1894
1875 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1895 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1876 KeyframedTransformAnimationCurve::Create()); 1896 KeyframedTransformAnimationCurve::Create());
1877 1897
1878 TransformOperations operations1; 1898 TransformOperations operations1;
1879 curve1->AddKeyframe(TransformKeyframe::Create(0.0, operations1, nullptr)); 1899 curve1->AddKeyframe(
1900 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
1880 operations1.AppendScale(2.0, 3.0, 4.0); 1901 operations1.AppendScale(2.0, 3.0, 4.0);
1881 curve1->AddKeyframe(TransformKeyframe::Create(1.0, operations1, nullptr)); 1902 curve1->AddKeyframe(TransformKeyframe::Create(
1903 base::TimeDelta::FromSecondsD(1.0), operations1, nullptr));
1882 1904
1883 scoped_ptr<Animation> animation( 1905 scoped_ptr<Animation> animation(
1884 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform)); 1906 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform));
1885 controller_impl->AddAnimation(animation.Pass()); 1907 controller_impl->AddAnimation(animation.Pass());
1886 1908
1887 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale)); 1909 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale));
1888 EXPECT_EQ(4.f, max_scale); 1910 EXPECT_EQ(4.f, max_scale);
1889 1911
1890 scoped_ptr<KeyframedTransformAnimationCurve> curve2( 1912 scoped_ptr<KeyframedTransformAnimationCurve> curve2(
1891 KeyframedTransformAnimationCurve::Create()); 1913 KeyframedTransformAnimationCurve::Create());
1892 1914
1893 TransformOperations operations2; 1915 TransformOperations operations2;
1894 curve2->AddKeyframe(TransformKeyframe::Create(0.0, operations2, nullptr)); 1916 curve2->AddKeyframe(
1917 TransformKeyframe::Create(base::TimeDelta(), operations2, nullptr));
1895 operations2.AppendScale(6.0, 5.0, 4.0); 1918 operations2.AppendScale(6.0, 5.0, 4.0);
1896 curve2->AddKeyframe(TransformKeyframe::Create(1.0, operations2, nullptr)); 1919 curve2->AddKeyframe(TransformKeyframe::Create(
1920 base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
1897 1921
1898 animation = Animation::Create(curve2.Pass(), 2, 2, Animation::Transform); 1922 animation = Animation::Create(curve2.Pass(), 2, 2, Animation::Transform);
1899 controller_impl->AddAnimation(animation.Pass()); 1923 controller_impl->AddAnimation(animation.Pass());
1900 1924
1901 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale)); 1925 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale));
1902 EXPECT_EQ(6.f, max_scale); 1926 EXPECT_EQ(6.f, max_scale);
1903 1927
1904 scoped_ptr<KeyframedTransformAnimationCurve> curve3( 1928 scoped_ptr<KeyframedTransformAnimationCurve> curve3(
1905 KeyframedTransformAnimationCurve::Create()); 1929 KeyframedTransformAnimationCurve::Create());
1906 1930
1907 TransformOperations operations3; 1931 TransformOperations operations3;
1908 curve3->AddKeyframe(TransformKeyframe::Create(0.0, operations3, nullptr)); 1932 curve3->AddKeyframe(
1933 TransformKeyframe::Create(base::TimeDelta(), operations3, nullptr));
1909 operations3.AppendPerspective(6.0); 1934 operations3.AppendPerspective(6.0);
1910 curve3->AddKeyframe(TransformKeyframe::Create(1.0, operations3, nullptr)); 1935 curve3->AddKeyframe(TransformKeyframe::Create(
1936 base::TimeDelta::FromSecondsD(1.0), operations3, nullptr));
1911 1937
1912 animation = Animation::Create(curve3.Pass(), 3, 3, Animation::Transform); 1938 animation = Animation::Create(curve3.Pass(), 3, 3, Animation::Transform);
1913 controller_impl->AddAnimation(animation.Pass()); 1939 controller_impl->AddAnimation(animation.Pass());
1914 1940
1915 EXPECT_FALSE(controller_impl->MaximumTargetScale(&max_scale)); 1941 EXPECT_FALSE(controller_impl->MaximumTargetScale(&max_scale));
1916 1942
1917 controller_impl->GetAnimation(3, Animation::Transform) 1943 controller_impl->GetAnimation(3, Animation::Transform)
1918 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); 1944 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1919 controller_impl->GetAnimation(2, Animation::Transform) 1945 controller_impl->GetAnimation(2, Animation::Transform)
1920 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0)); 1946 ->SetRunState(Animation::Finished, TicksFromSecondsF(0.0));
1921 1947
1922 // Only unfinished animations should be considered by 1948 // Only unfinished animations should be considered by
1923 // MaximumTargetScale. 1949 // MaximumTargetScale.
1924 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale)); 1950 EXPECT_TRUE(controller_impl->MaximumTargetScale(&max_scale));
1925 EXPECT_EQ(4.f, max_scale); 1951 EXPECT_EQ(4.f, max_scale);
1926 } 1952 }
1927 1953
1928 TEST(LayerAnimationControllerTest, MaximumTargetScaleWithDirection) { 1954 TEST(LayerAnimationControllerTest, MaximumTargetScaleWithDirection) {
1929 scoped_refptr<LayerAnimationController> controller_impl( 1955 scoped_refptr<LayerAnimationController> controller_impl(
1930 LayerAnimationController::Create(0)); 1956 LayerAnimationController::Create(0));
1931 1957
1932 scoped_ptr<KeyframedTransformAnimationCurve> curve1( 1958 scoped_ptr<KeyframedTransformAnimationCurve> curve1(
1933 KeyframedTransformAnimationCurve::Create()); 1959 KeyframedTransformAnimationCurve::Create());
1934 TransformOperations operations1; 1960 TransformOperations operations1;
1935 operations1.AppendScale(1.0, 2.0, 3.0); 1961 operations1.AppendScale(1.0, 2.0, 3.0);
1936 curve1->AddKeyframe(TransformKeyframe::Create(0.0, operations1, nullptr)); 1962 curve1->AddKeyframe(
1963 TransformKeyframe::Create(base::TimeDelta(), operations1, nullptr));
1937 TransformOperations operations2; 1964 TransformOperations operations2;
1938 operations2.AppendScale(4.0, 5.0, 6.0); 1965 operations2.AppendScale(4.0, 5.0, 6.0);
1939 curve1->AddKeyframe(TransformKeyframe::Create(1.0, operations2, nullptr)); 1966 curve1->AddKeyframe(TransformKeyframe::Create(
1967 base::TimeDelta::FromSecondsD(1.0), operations2, nullptr));
1940 1968
1941 scoped_ptr<Animation> animation_owned( 1969 scoped_ptr<Animation> animation_owned(
1942 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform)); 1970 Animation::Create(curve1.Pass(), 1, 1, Animation::Transform));
1943 Animation* animation = animation_owned.get(); 1971 Animation* animation = animation_owned.get();
1944 controller_impl->AddAnimation(animation_owned.Pass()); 1972 controller_impl->AddAnimation(animation_owned.Pass());
1945 1973
1946 float max_scale = 0.f; 1974 float max_scale = 0.f;
1947 1975
1948 EXPECT_GT(animation->playback_rate(), 0.0); 1976 EXPECT_GT(animation->playback_rate(), 0.0);
1949 1977
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
2333 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Opacity)); 2361 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Opacity));
2334 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Filter)); 2362 EXPECT_FALSE(controller->IsAnimatingProperty(Animation::Filter));
2335 2363
2336 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000)); 2364 controller->Animate(kInitialTickTime + TimeDelta::FromMilliseconds(2000));
2337 controller->UpdateState(true, nullptr); 2365 controller->UpdateState(true, nullptr);
2338 EXPECT_TRUE(controller->IsAnimatingProperty(Animation::Opacity)); 2366 EXPECT_TRUE(controller->IsAnimatingProperty(Animation::Opacity));
2339 } 2367 }
2340 2368
2341 } // namespace 2369 } // namespace
2342 } // namespace cc 2370 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/layer_animation_controller.cc ('k') | cc/animation/scroll_offset_animation_curve.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698