| OLD | NEW |
| 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 "cc/layers/layer_position_constraint.h" | 5 #include "cc/layers/layer_position_constraint.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "cc/animation/animation_host.h" | 9 #include "cc/animation/animation_host.h" |
| 10 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 452 // Case 1: scroll delta of 0, 0 | 452 // Case 1: scroll delta of 0, 0 |
| 453 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); | 453 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); |
| 454 ExecuteCalculateDrawProperties(root_impl_); | 454 ExecuteCalculateDrawProperties(root_impl_); |
| 455 | 455 |
| 456 gfx::Transform expected_child_transform; | 456 gfx::Transform expected_child_transform; |
| 457 gfx::Transform expected_surface_draw_transform; | 457 gfx::Transform expected_surface_draw_transform; |
| 458 expected_surface_draw_transform.Translate(8.0, 6.0); | 458 expected_surface_draw_transform.Translate(8.0, 6.0); |
| 459 gfx::Transform expected_grand_child_transform; | 459 gfx::Transform expected_grand_child_transform; |
| 460 gfx::Transform expected_great_grand_child_transform; | 460 gfx::Transform expected_great_grand_child_transform; |
| 461 expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); | 461 expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); |
| 462 EXPECT_TRUE(grand_child_impl_->render_surface()); | 462 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 463 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 463 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 464 child_impl_->DrawTransform()); | 464 child_impl_->DrawTransform()); |
| 465 EXPECT_TRANSFORMATION_MATRIX_EQ( | 465 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 466 expected_surface_draw_transform, | 466 expected_surface_draw_transform, |
| 467 grand_child_impl_->render_surface()->draw_transform()); | 467 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 468 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 468 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 469 grand_child_impl_->DrawTransform()); | 469 grand_child_impl_->DrawTransform()); |
| 470 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 470 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 471 great_grand_child_impl_->DrawTransform()); | 471 great_grand_child_impl_->DrawTransform()); |
| 472 | 472 |
| 473 // Case 2: scroll delta of 10, 30 | 473 // Case 2: scroll delta of 10, 30 |
| 474 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 474 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |
| 475 child_impl_->SetDrawsContent(true); | 475 child_impl_->SetDrawsContent(true); |
| 476 ExecuteCalculateDrawProperties(root_impl_); | 476 ExecuteCalculateDrawProperties(root_impl_); |
| 477 | 477 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 489 expected_surface_draw_transform.MakeIdentity(); | 489 expected_surface_draw_transform.MakeIdentity(); |
| 490 expected_surface_draw_transform.Translate(-10.0, -30.0); // scroll delta | 490 expected_surface_draw_transform.Translate(-10.0, -30.0); // scroll delta |
| 491 expected_surface_draw_transform.Translate(8.0, 6.0); | 491 expected_surface_draw_transform.Translate(8.0, 6.0); |
| 492 | 492 |
| 493 expected_great_grand_child_transform.MakeIdentity(); | 493 expected_great_grand_child_transform.MakeIdentity(); |
| 494 // explicit canceling out the scroll delta that gets embedded in the fixed | 494 // explicit canceling out the scroll delta that gets embedded in the fixed |
| 495 // position layer's surface. | 495 // position layer's surface. |
| 496 expected_great_grand_child_transform.Translate(10.0, 30.0); | 496 expected_great_grand_child_transform.Translate(10.0, 30.0); |
| 497 expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); | 497 expected_great_grand_child_transform.PreconcatTransform(rotation_about_z); |
| 498 | 498 |
| 499 EXPECT_TRUE(grand_child_impl_->render_surface()); | 499 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 500 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 500 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 501 child_impl_->DrawTransform()); | 501 child_impl_->DrawTransform()); |
| 502 EXPECT_TRANSFORMATION_MATRIX_EQ( | 502 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 503 expected_surface_draw_transform, | 503 expected_surface_draw_transform, |
| 504 grand_child_impl_->render_surface()->draw_transform()); | 504 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 505 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 505 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 506 grand_child_impl_->DrawTransform()); | 506 grand_child_impl_->DrawTransform()); |
| 507 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 507 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 508 great_grand_child_impl_->DrawTransform()); | 508 great_grand_child_impl_->DrawTransform()); |
| 509 | 509 |
| 510 // Case 3: fixed-container size delta of 20, 20 | 510 // Case 3: fixed-container size delta of 20, 20 |
| 511 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 511 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |
| 512 ExecuteCalculateDrawProperties(root_impl_); | 512 ExecuteCalculateDrawProperties(root_impl_); |
| 513 | 513 |
| 514 // Top-left fixed-position layer should not be affected by container size. | 514 // Top-left fixed-position layer should not be affected by container size. |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 gfx::Transform expected_grand_child_transform; | 596 gfx::Transform expected_grand_child_transform; |
| 597 | 597 |
| 598 gfx::Transform expected_great_grand_child_surface_draw_transform; | 598 gfx::Transform expected_great_grand_child_surface_draw_transform; |
| 599 expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); | 599 expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); |
| 600 | 600 |
| 601 gfx::Transform expected_great_grand_child_transform; | 601 gfx::Transform expected_great_grand_child_transform; |
| 602 | 602 |
| 603 gfx::Transform expected_fixed_position_child_transform; | 603 gfx::Transform expected_fixed_position_child_transform; |
| 604 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 604 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |
| 605 | 605 |
| 606 EXPECT_TRUE(grand_child_impl_->render_surface()); | 606 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 607 EXPECT_TRUE(great_grand_child_impl_->render_surface()); | 607 EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); |
| 608 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 608 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 609 child_impl_->DrawTransform()); | 609 child_impl_->DrawTransform()); |
| 610 EXPECT_TRANSFORMATION_MATRIX_EQ( | 610 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 611 expected_grand_child_surface_draw_transform, | 611 expected_grand_child_surface_draw_transform, |
| 612 grand_child_impl_->render_surface()->draw_transform()); | 612 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 613 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 613 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 614 grand_child_impl_->DrawTransform()); | 614 grand_child_impl_->DrawTransform()); |
| 615 EXPECT_TRANSFORMATION_MATRIX_EQ( | 615 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 616 expected_great_grand_child_surface_draw_transform, | 616 expected_great_grand_child_surface_draw_transform, |
| 617 great_grand_child_impl_->render_surface()->draw_transform()); | 617 great_grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 618 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 618 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 619 great_grand_child_impl_->DrawTransform()); | 619 great_grand_child_impl_->DrawTransform()); |
| 620 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 620 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |
| 621 fixed_position_child_impl->DrawTransform()); | 621 fixed_position_child_impl->DrawTransform()); |
| 622 | 622 |
| 623 // Case 2: scroll delta of 10, 30 | 623 // Case 2: scroll delta of 10, 30 |
| 624 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 624 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |
| 625 ExecuteCalculateDrawProperties(root_impl_); | 625 ExecuteCalculateDrawProperties(root_impl_); |
| 626 | 626 |
| 627 expected_child_transform.MakeIdentity(); | 627 expected_child_transform.MakeIdentity(); |
| 628 expected_child_transform.Translate(-10.0, -30.0); // scroll delta | 628 expected_child_transform.Translate(-10.0, -30.0); // scroll delta |
| 629 | 629 |
| 630 expected_grand_child_surface_draw_transform.MakeIdentity(); | 630 expected_grand_child_surface_draw_transform.MakeIdentity(); |
| 631 expected_grand_child_surface_draw_transform.Translate(-10.0, | 631 expected_grand_child_surface_draw_transform.Translate(-10.0, |
| 632 -30.0); // scroll delta | 632 -30.0); // scroll delta |
| 633 expected_grand_child_surface_draw_transform.Translate(8.0, 6.0); | 633 expected_grand_child_surface_draw_transform.Translate(8.0, 6.0); |
| 634 | 634 |
| 635 // grand_child, great_grand_child, and great_grand_child's surface are not | 635 // grand_child, great_grand_child, and great_grand_child's surface are not |
| 636 // expected to change, since they are all not fixed, and they are all drawn | 636 // expected to change, since they are all not fixed, and they are all drawn |
| 637 // with respect to grand_child's surface that already has the scroll delta | 637 // with respect to grand_child's surface that already has the scroll delta |
| 638 // accounted for. | 638 // accounted for. |
| 639 | 639 |
| 640 // But the great-great grandchild, "fixed_position_child", should have a | 640 // But the great-great grandchild, "fixed_position_child", should have a |
| 641 // transform that explicitly cancels out the scroll delta. | 641 // transform that explicitly cancels out the scroll delta. |
| 642 expected_fixed_position_child_transform.MakeIdentity(); | 642 expected_fixed_position_child_transform.MakeIdentity(); |
| 643 expected_fixed_position_child_transform.Translate(10.0, 30.0); | 643 expected_fixed_position_child_transform.Translate(10.0, 30.0); |
| 644 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 644 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |
| 645 | 645 |
| 646 EXPECT_TRUE(grand_child_impl_->render_surface()); | 646 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 647 EXPECT_TRUE(great_grand_child_impl_->render_surface()); | 647 EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); |
| 648 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 648 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 649 child_impl_->DrawTransform()); | 649 child_impl_->DrawTransform()); |
| 650 EXPECT_TRANSFORMATION_MATRIX_EQ( | 650 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 651 expected_grand_child_surface_draw_transform, | 651 expected_grand_child_surface_draw_transform, |
| 652 grand_child_impl_->render_surface()->draw_transform()); | 652 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 653 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 653 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 654 grand_child_impl_->DrawTransform()); | 654 grand_child_impl_->DrawTransform()); |
| 655 EXPECT_TRANSFORMATION_MATRIX_EQ( | 655 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 656 expected_great_grand_child_surface_draw_transform, | 656 expected_great_grand_child_surface_draw_transform, |
| 657 great_grand_child_impl_->render_surface()->draw_transform()); | 657 great_grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 658 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 658 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 659 great_grand_child_impl_->DrawTransform()); | 659 great_grand_child_impl_->DrawTransform()); |
| 660 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 660 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |
| 661 fixed_position_child_impl->DrawTransform()); | 661 fixed_position_child_impl->DrawTransform()); |
| 662 | 662 |
| 663 // Case 3: fixed-container size delta of 20, 20 | 663 // Case 3: fixed-container size delta of 20, 20 |
| 664 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 664 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |
| 665 ExecuteCalculateDrawProperties(root_impl_); | 665 ExecuteCalculateDrawProperties(root_impl_); |
| 666 | 666 |
| 667 // Top-left fixed-position layer should not be affected by container size. | 667 // Top-left fixed-position layer should not be affected by container size. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 gfx::Transform expected_grand_child_transform; | 758 gfx::Transform expected_grand_child_transform; |
| 759 | 759 |
| 760 gfx::Transform expected_great_grand_child_surface_draw_transform; | 760 gfx::Transform expected_great_grand_child_surface_draw_transform; |
| 761 expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); | 761 expected_great_grand_child_surface_draw_transform.Translate(40.0, 60.0); |
| 762 | 762 |
| 763 gfx::Transform expected_great_grand_child_transform; | 763 gfx::Transform expected_great_grand_child_transform; |
| 764 | 764 |
| 765 gfx::Transform expected_fixed_position_child_transform; | 765 gfx::Transform expected_fixed_position_child_transform; |
| 766 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 766 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |
| 767 | 767 |
| 768 EXPECT_TRUE(grand_child_impl_->render_surface()); | 768 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 769 EXPECT_TRUE(great_grand_child_impl_->render_surface()); | 769 EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); |
| 770 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 770 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 771 child_impl_->DrawTransform()); | 771 child_impl_->DrawTransform()); |
| 772 EXPECT_TRANSFORMATION_MATRIX_EQ( | 772 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 773 expected_grand_child_surface_draw_transform, | 773 expected_grand_child_surface_draw_transform, |
| 774 grand_child_impl_->render_surface()->draw_transform()); | 774 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 775 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 775 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 776 grand_child_impl_->DrawTransform()); | 776 grand_child_impl_->DrawTransform()); |
| 777 EXPECT_TRANSFORMATION_MATRIX_EQ( | 777 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 778 expected_great_grand_child_surface_draw_transform, | 778 expected_great_grand_child_surface_draw_transform, |
| 779 great_grand_child_impl_->render_surface()->draw_transform()); | 779 great_grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 780 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 780 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 781 great_grand_child_impl_->DrawTransform()); | 781 great_grand_child_impl_->DrawTransform()); |
| 782 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 782 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |
| 783 fixed_position_child_impl->DrawTransform()); | 783 fixed_position_child_impl->DrawTransform()); |
| 784 | 784 |
| 785 // Case 2: scroll delta of 10, 30 | 785 // Case 2: scroll delta of 10, 30 |
| 786 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); | 786 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 30)); |
| 787 ExecuteCalculateDrawProperties(root_impl_); | 787 ExecuteCalculateDrawProperties(root_impl_); |
| 788 | 788 |
| 789 expected_child_transform.MakeIdentity(); | 789 expected_child_transform.MakeIdentity(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 803 // accounted for. | 803 // accounted for. |
| 804 | 804 |
| 805 // But the great-great grandchild, "fixed_position_child", should have a | 805 // But the great-great grandchild, "fixed_position_child", should have a |
| 806 // transform that explicitly cancels out the scroll delta. | 806 // transform that explicitly cancels out the scroll delta. |
| 807 expected_fixed_position_child_transform.MakeIdentity(); | 807 expected_fixed_position_child_transform.MakeIdentity(); |
| 808 // explicit canceling out the scroll delta that gets embedded in the fixed | 808 // explicit canceling out the scroll delta that gets embedded in the fixed |
| 809 // position layer's surface. | 809 // position layer's surface. |
| 810 expected_fixed_position_child_transform.Translate(10.0, 30.0); | 810 expected_fixed_position_child_transform.Translate(10.0, 30.0); |
| 811 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); | 811 expected_fixed_position_child_transform.PreconcatTransform(rotation_about_z); |
| 812 | 812 |
| 813 EXPECT_TRUE(grand_child_impl_->render_surface()); | 813 EXPECT_TRUE(grand_child_impl_->GetRenderSurface()); |
| 814 EXPECT_TRUE(great_grand_child_impl_->render_surface()); | 814 EXPECT_TRUE(great_grand_child_impl_->GetRenderSurface()); |
| 815 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 815 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 816 child_impl_->DrawTransform()); | 816 child_impl_->DrawTransform()); |
| 817 EXPECT_TRANSFORMATION_MATRIX_EQ( | 817 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 818 expected_grand_child_surface_draw_transform, | 818 expected_grand_child_surface_draw_transform, |
| 819 grand_child_impl_->render_surface()->draw_transform()); | 819 grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 820 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 820 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 821 grand_child_impl_->DrawTransform()); | 821 grand_child_impl_->DrawTransform()); |
| 822 EXPECT_TRANSFORMATION_MATRIX_EQ( | 822 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 823 expected_great_grand_child_surface_draw_transform, | 823 expected_great_grand_child_surface_draw_transform, |
| 824 great_grand_child_impl_->render_surface()->draw_transform()); | 824 great_grand_child_impl_->GetRenderSurface()->draw_transform()); |
| 825 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, | 825 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_great_grand_child_transform, |
| 826 great_grand_child_impl_->DrawTransform()); | 826 great_grand_child_impl_->DrawTransform()); |
| 827 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, | 827 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_position_child_transform, |
| 828 fixed_position_child_impl->DrawTransform()); | 828 fixed_position_child_impl->DrawTransform()); |
| 829 } | 829 } |
| 830 | 830 |
| 831 TEST_F(LayerPositionConstraintTest, | 831 TEST_F(LayerPositionConstraintTest, |
| 832 ScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface) { | 832 ScrollCompensationForFixedPositionLayerWithContainerLayerThatHasSurface) { |
| 833 // This test checks for correct scroll compensation when the fixed-position | 833 // This test checks for correct scroll compensation when the fixed-position |
| 834 // container itself has a render surface. In this case, the container layer | 834 // container itself has a render surface. In this case, the container layer |
| 835 // should be treated like a layer that contributes to a render target, and | 835 // should be treated like a layer that contributes to a render target, and |
| 836 // that render target is completely irrelevant; it should not affect the | 836 // that render target is completely irrelevant; it should not affect the |
| 837 // scroll compensation. | 837 // scroll compensation. |
| 838 child_->SetIsContainerForFixedPositionLayers(true); | 838 child_->SetIsContainerForFixedPositionLayers(true); |
| 839 child_->SetForceRenderSurfaceForTesting(true); | 839 child_->SetForceRenderSurfaceForTesting(true); |
| 840 grand_child_->SetPositionConstraint(fixed_to_top_left_); | 840 grand_child_->SetPositionConstraint(fixed_to_top_left_); |
| 841 | 841 |
| 842 CommitAndUpdateImplPointers(); | 842 CommitAndUpdateImplPointers(); |
| 843 | 843 |
| 844 // Case 1: scroll delta of 0, 0 | 844 // Case 1: scroll delta of 0, 0 |
| 845 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); | 845 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(0, 0)); |
| 846 ExecuteCalculateDrawProperties(root_impl_); | 846 ExecuteCalculateDrawProperties(root_impl_); |
| 847 | 847 |
| 848 gfx::Transform expected_surface_draw_transform; | 848 gfx::Transform expected_surface_draw_transform; |
| 849 gfx::Transform expected_child_transform; | 849 gfx::Transform expected_child_transform; |
| 850 gfx::Transform expected_grand_child_transform; | 850 gfx::Transform expected_grand_child_transform; |
| 851 EXPECT_TRUE(child_impl_->render_surface()); | 851 EXPECT_TRUE(child_impl_->GetRenderSurface()); |
| 852 EXPECT_TRANSFORMATION_MATRIX_EQ( | 852 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 853 expected_surface_draw_transform, | 853 expected_surface_draw_transform, |
| 854 child_impl_->render_surface()->draw_transform()); | 854 child_impl_->GetRenderSurface()->draw_transform()); |
| 855 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 855 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 856 child_impl_->DrawTransform()); | 856 child_impl_->DrawTransform()); |
| 857 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 857 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 858 grand_child_impl_->DrawTransform()); | 858 grand_child_impl_->DrawTransform()); |
| 859 | 859 |
| 860 // Case 2: scroll delta of 10, 10 | 860 // Case 2: scroll delta of 10, 10 |
| 861 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 10)); | 861 SetScrollOffsetDelta(child_impl_, gfx::Vector2d(10, 10)); |
| 862 ExecuteCalculateDrawProperties(root_impl_); | 862 ExecuteCalculateDrawProperties(root_impl_); |
| 863 | 863 |
| 864 // The surface is translated by scroll delta, the child transform doesn't | 864 // The surface is translated by scroll delta, the child transform doesn't |
| 865 // change because it scrolls along with the surface, but the fixed position | 865 // change because it scrolls along with the surface, but the fixed position |
| 866 // grand_child needs to compensate for the scroll translation. | 866 // grand_child needs to compensate for the scroll translation. |
| 867 expected_surface_draw_transform.MakeIdentity(); | 867 expected_surface_draw_transform.MakeIdentity(); |
| 868 expected_surface_draw_transform.Translate(-10.0, -10.0); | 868 expected_surface_draw_transform.Translate(-10.0, -10.0); |
| 869 expected_grand_child_transform.MakeIdentity(); | 869 expected_grand_child_transform.MakeIdentity(); |
| 870 expected_grand_child_transform.Translate(10.0, 10.0); | 870 expected_grand_child_transform.Translate(10.0, 10.0); |
| 871 | 871 |
| 872 EXPECT_TRUE(child_impl_->render_surface()); | 872 EXPECT_TRUE(child_impl_->GetRenderSurface()); |
| 873 EXPECT_TRANSFORMATION_MATRIX_EQ( | 873 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 874 expected_surface_draw_transform, | 874 expected_surface_draw_transform, |
| 875 child_impl_->render_surface()->draw_transform()); | 875 child_impl_->GetRenderSurface()->draw_transform()); |
| 876 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, | 876 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_child_transform, |
| 877 child_impl_->DrawTransform()); | 877 child_impl_->DrawTransform()); |
| 878 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, | 878 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_grand_child_transform, |
| 879 grand_child_impl_->DrawTransform()); | 879 grand_child_impl_->DrawTransform()); |
| 880 | 880 |
| 881 // Case 3: fixed-container size delta of 20, 20 | 881 // Case 3: fixed-container size delta of 20, 20 |
| 882 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); | 882 SetFixedContainerSizeDelta(child_impl_, gfx::Vector2d(20, 20)); |
| 883 ExecuteCalculateDrawProperties(root_impl_); | 883 ExecuteCalculateDrawProperties(root_impl_); |
| 884 | 884 |
| 885 // Top-left fixed-position layer should not be affected by container size. | 885 // Top-left fixed-position layer should not be affected by container size. |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1141 expected_fixed_child_transform.Translate(20.0, 20.0); | 1141 expected_fixed_child_transform.Translate(20.0, 20.0); |
| 1142 | 1142 |
| 1143 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scroll_layer_transform, | 1143 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_scroll_layer_transform, |
| 1144 scroll_layer_impl_->DrawTransform()); | 1144 scroll_layer_impl_->DrawTransform()); |
| 1145 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_child_transform, | 1145 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_fixed_child_transform, |
| 1146 fixed_child_impl->DrawTransform()); | 1146 fixed_child_impl->DrawTransform()); |
| 1147 } | 1147 } |
| 1148 | 1148 |
| 1149 } // namespace | 1149 } // namespace |
| 1150 } // namespace cc | 1150 } // namespace cc |
| OLD | NEW |