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

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

Issue 2851193002: cc: Rename LayerImpl::is_drawn_render_surface_layer_list_member (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 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/trees/layer_tree_impl.h" 5 #include "cc/trees/layer_tree_impl.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "cc/layers/heads_up_display_layer_impl.h" 9 #include "cc/layers/heads_up_display_layer_impl.h"
10 #include "cc/test/fake_layer_tree_host_impl.h" 10 #include "cc/test/fake_layer_tree_host_impl.h"
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 root->test_properties()->AddChild(std::move(clipping_layer)); 566 root->test_properties()->AddChild(std::move(clipping_layer));
567 } 567 }
568 568
569 host_impl().SetViewportSize(root->bounds()); 569 host_impl().SetViewportSize(root->bounds());
570 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 570 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
571 571
572 // Sanity check the scenario we just created. 572 // Sanity check the scenario we just created.
573 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 573 ASSERT_EQ(1u, GetRenderSurfaceList().size());
574 ASSERT_EQ(1, root_layer()->GetRenderSurface()->num_contributors()); 574 ASSERT_EQ(1, root_layer()->GetRenderSurface()->num_contributors());
575 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456); 575 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456);
576 EXPECT_TRUE(child_layer->is_drawn_render_surface_layer_list_member()); 576 EXPECT_TRUE(child_layer->contributes_to_drawn_render_surface());
577 577
578 // Hit testing for a point outside the layer should return a null pointer. 578 // Hit testing for a point outside the layer should return a null pointer.
579 // Despite the child layer being very large, it should be clipped to the root 579 // Despite the child layer being very large, it should be clipped to the root
580 // layer's bounds. 580 // layer's bounds.
581 gfx::PointF test_point(24.f, 24.f); 581 gfx::PointF test_point(24.f, 24.f);
582 LayerImpl* result_layer = 582 LayerImpl* result_layer =
583 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point); 583 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point);
584 EXPECT_FALSE(result_layer); 584 EXPECT_FALSE(result_layer);
585 585
586 // Even though the layer exists at (101, 101), it should not be visible there 586 // Even though the layer exists at (101, 101), it should not be visible there
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 root->test_properties()->AddChild(std::move(intermediate_layer)); 744 root->test_properties()->AddChild(std::move(intermediate_layer));
745 } 745 }
746 746
747 host_impl().SetViewportSize(root->bounds()); 747 host_impl().SetViewportSize(root->bounds());
748 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 748 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
749 749
750 // Sanity check the scenario we just created. 750 // Sanity check the scenario we just created.
751 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 751 ASSERT_EQ(1u, GetRenderSurfaceList().size());
752 ASSERT_EQ(1, root_layer()->GetRenderSurface()->num_contributors()); 752 ASSERT_EQ(1, root_layer()->GetRenderSurface()->num_contributors());
753 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456); 753 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456);
754 EXPECT_TRUE(child_layer->is_drawn_render_surface_layer_list_member()); 754 EXPECT_TRUE(child_layer->contributes_to_drawn_render_surface());
755 755
756 // Hit testing for a point outside the layer should return a null pointer. 756 // Hit testing for a point outside the layer should return a null pointer.
757 gfx::PointF test_point(69.f, 69.f); 757 gfx::PointF test_point(69.f, 69.f);
758 LayerImpl* result_layer = 758 LayerImpl* result_layer =
759 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point); 759 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point);
760 EXPECT_FALSE(result_layer); 760 EXPECT_FALSE(result_layer);
761 761
762 test_point = gfx::PointF(91.f, 91.f); 762 test_point = gfx::PointF(91.f, 91.f);
763 result_layer = 763 result_layer =
764 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point); 764 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 826 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
827 827
828 // Sanity check the scenario we just created. 828 // Sanity check the scenario we just created.
829 ASSERT_TRUE(child1); 829 ASSERT_TRUE(child1);
830 ASSERT_TRUE(child2); 830 ASSERT_TRUE(child2);
831 ASSERT_TRUE(grand_child1); 831 ASSERT_TRUE(grand_child1);
832 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 832 ASSERT_EQ(1u, GetRenderSurfaceList().size());
833 833
834 RenderSurfaceImpl* root_render_surface = root->GetRenderSurface(); 834 RenderSurfaceImpl* root_render_surface = root->GetRenderSurface();
835 ASSERT_EQ(4, root_render_surface->num_contributors()); 835 ASSERT_EQ(4, root_render_surface->num_contributors());
836 EXPECT_TRUE(root_layer()->is_drawn_render_surface_layer_list_member()); 836 EXPECT_TRUE(root_layer()->contributes_to_drawn_render_surface());
837 EXPECT_TRUE(child1->is_drawn_render_surface_layer_list_member()); 837 EXPECT_TRUE(child1->contributes_to_drawn_render_surface());
838 EXPECT_TRUE(child2->is_drawn_render_surface_layer_list_member()); 838 EXPECT_TRUE(child2->contributes_to_drawn_render_surface());
839 EXPECT_TRUE(grand_child1->is_drawn_render_surface_layer_list_member()); 839 EXPECT_TRUE(grand_child1->contributes_to_drawn_render_surface());
840 840
841 // Nothing overlaps the root at (1, 1), so hit testing there should find 841 // Nothing overlaps the root at (1, 1), so hit testing there should find
842 // the root layer. 842 // the root layer.
843 gfx::PointF test_point = gfx::PointF(1.f, 1.f); 843 gfx::PointF test_point = gfx::PointF(1.f, 1.f);
844 LayerImpl* result_layer = 844 LayerImpl* result_layer =
845 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point); 845 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point);
846 ASSERT_TRUE(result_layer); 846 ASSERT_TRUE(result_layer);
847 EXPECT_EQ(1, result_layer->id()); 847 EXPECT_EQ(1, result_layer->id());
848 848
849 // At (15, 15), child1 and root are the only layers. child1 is expected to be 849 // At (15, 15), child1 and root are the only layers. child1 is expected to be
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
1182 ASSERT_TRUE(child2->GetRenderSurface()); 1182 ASSERT_TRUE(child2->GetRenderSurface());
1183 ASSERT_TRUE(grand_child1->GetRenderSurface()); 1183 ASSERT_TRUE(grand_child1->GetRenderSurface());
1184 ASSERT_EQ(4u, GetRenderSurfaceList().size()); 1184 ASSERT_EQ(4u, GetRenderSurfaceList().size());
1185 // The root surface has the root layer, and child1's and child2's render 1185 // The root surface has the root layer, and child1's and child2's render
1186 // surfaces. 1186 // surfaces.
1187 ASSERT_EQ(3, root->GetRenderSurface()->num_contributors()); 1187 ASSERT_EQ(3, root->GetRenderSurface()->num_contributors());
1188 // The child1 surface has the child1 layer and grand_child1's render surface. 1188 // The child1 surface has the child1 layer and grand_child1's render surface.
1189 ASSERT_EQ(2, child1->GetRenderSurface()->num_contributors()); 1189 ASSERT_EQ(2, child1->GetRenderSurface()->num_contributors());
1190 ASSERT_EQ(1, child2->GetRenderSurface()->num_contributors()); 1190 ASSERT_EQ(1, child2->GetRenderSurface()->num_contributors());
1191 ASSERT_EQ(1, grand_child1->GetRenderSurface()->num_contributors()); 1191 ASSERT_EQ(1, grand_child1->GetRenderSurface()->num_contributors());
1192 EXPECT_TRUE(root_layer()->is_drawn_render_surface_layer_list_member()); 1192 EXPECT_TRUE(root_layer()->contributes_to_drawn_render_surface());
1193 EXPECT_TRUE(child1->is_drawn_render_surface_layer_list_member()); 1193 EXPECT_TRUE(child1->contributes_to_drawn_render_surface());
1194 EXPECT_TRUE(grand_child1->is_drawn_render_surface_layer_list_member()); 1194 EXPECT_TRUE(grand_child1->contributes_to_drawn_render_surface());
1195 EXPECT_TRUE(child2->is_drawn_render_surface_layer_list_member()); 1195 EXPECT_TRUE(child2->contributes_to_drawn_render_surface());
1196 1196
1197 // Nothing overlaps the root at (1, 1), so hit testing there should find 1197 // Nothing overlaps the root at (1, 1), so hit testing there should find
1198 // the root layer. 1198 // the root layer.
1199 gfx::PointF test_point(1.f, 1.f); 1199 gfx::PointF test_point(1.f, 1.f);
1200 LayerImpl* result_layer = 1200 LayerImpl* result_layer =
1201 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point); 1201 host_impl().active_tree()->FindLayerThatIsHitByPoint(test_point);
1202 ASSERT_TRUE(result_layer); 1202 ASSERT_TRUE(result_layer);
1203 EXPECT_EQ(1, result_layer->id()); 1203 EXPECT_EQ(1, result_layer->id());
1204 1204
1205 // At (15, 15), child1 and root are the only layers. child1 is expected to be 1205 // At (15, 15), child1 and root are the only layers. child1 is expected to be
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1605 root->test_properties()->AddChild(std::move(clipping_layer)); 1605 root->test_properties()->AddChild(std::move(clipping_layer));
1606 } 1606 }
1607 1607
1608 host_impl().SetViewportSize(root->bounds()); 1608 host_impl().SetViewportSize(root->bounds());
1609 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 1609 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
1610 1610
1611 // Sanity check the scenario we just created. 1611 // Sanity check the scenario we just created.
1612 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 1612 ASSERT_EQ(1u, GetRenderSurfaceList().size());
1613 ASSERT_EQ(1, root->GetRenderSurface()->num_contributors()); 1613 ASSERT_EQ(1, root->GetRenderSurface()->num_contributors());
1614 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456); 1614 LayerImpl* child_layer = host_impl().active_tree()->LayerById(456);
1615 EXPECT_TRUE(child_layer->is_drawn_render_surface_layer_list_member()); 1615 EXPECT_TRUE(child_layer->contributes_to_drawn_render_surface());
1616 1616
1617 // Hit checking for a point outside the layer should return a null pointer. 1617 // Hit checking for a point outside the layer should return a null pointer.
1618 // Despite the child layer being very large, it should be clipped to the root 1618 // Despite the child layer being very large, it should be clipped to the root
1619 // layer's bounds. 1619 // layer's bounds.
1620 gfx::PointF test_point(24.f, 24.f); 1620 gfx::PointF test_point(24.f, 24.f);
1621 LayerImpl* result_layer = 1621 LayerImpl* result_layer =
1622 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion( 1622 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion(
1623 test_point); 1623 test_point);
1624 EXPECT_FALSE(result_layer); 1624 EXPECT_FALSE(result_layer);
1625 1625
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1760 } 1760 }
1761 1761
1762 host_impl().SetViewportSize(root->bounds()); 1762 host_impl().SetViewportSize(root->bounds());
1763 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 1763 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
1764 1764
1765 // Sanity check the scenario we just created. 1765 // Sanity check the scenario we just created.
1766 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 1766 ASSERT_EQ(1u, GetRenderSurfaceList().size());
1767 ASSERT_EQ(2, root->GetRenderSurface()->num_contributors()); 1767 ASSERT_EQ(2, root->GetRenderSurface()->num_contributors());
1768 LayerImpl* touch_layer = host_impl().active_tree()->LayerById(123); 1768 LayerImpl* touch_layer = host_impl().active_tree()->LayerById(123);
1769 LayerImpl* notouch_layer = host_impl().active_tree()->LayerById(1234); 1769 LayerImpl* notouch_layer = host_impl().active_tree()->LayerById(1234);
1770 EXPECT_TRUE(touch_layer->is_drawn_render_surface_layer_list_member()); 1770 EXPECT_TRUE(touch_layer->contributes_to_drawn_render_surface());
1771 EXPECT_TRUE(notouch_layer->is_drawn_render_surface_layer_list_member()); 1771 EXPECT_TRUE(notouch_layer->contributes_to_drawn_render_surface());
1772 1772
1773 gfx::PointF test_point(35.f, 35.f); 1773 gfx::PointF test_point(35.f, 35.f);
1774 LayerImpl* result_layer = 1774 LayerImpl* result_layer =
1775 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion( 1775 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion(
1776 test_point); 1776 test_point);
1777 1777
1778 // We should have passed through the no-touch layer and found the layer 1778 // We should have passed through the no-touch layer and found the layer
1779 // behind it. 1779 // behind it.
1780 EXPECT_TRUE(result_layer); 1780 EXPECT_TRUE(result_layer);
1781 1781
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 test_layer->SetTouchEventHandlerRegion(touch_handler_region); 1817 test_layer->SetTouchEventHandlerRegion(touch_handler_region);
1818 root->test_properties()->AddChild(std::move(test_layer)); 1818 root->test_properties()->AddChild(std::move(test_layer));
1819 } 1819 }
1820 host_impl().SetViewportSize(root->bounds()); 1820 host_impl().SetViewportSize(root->bounds());
1821 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree(); 1821 host_impl().UpdateNumChildrenAndDrawPropertiesForActiveTree();
1822 1822
1823 LayerImpl* test_layer = root->test_properties()->children[0]; 1823 LayerImpl* test_layer = root->test_properties()->children[0];
1824 // As test_layer doesn't draw content, it shouldn't contribute content to the 1824 // As test_layer doesn't draw content, it shouldn't contribute content to the
1825 // root surface. 1825 // root surface.
1826 ASSERT_EQ(1u, GetRenderSurfaceList().size()); 1826 ASSERT_EQ(1u, GetRenderSurfaceList().size());
1827 EXPECT_FALSE(test_layer->is_drawn_render_surface_layer_list_member()); 1827 EXPECT_FALSE(test_layer->contributes_to_drawn_render_surface());
1828 1828
1829 // Hit testing for a point outside the test layer should return null pointer. 1829 // Hit testing for a point outside the test layer should return null pointer.
1830 // We also implicitly check that the updated screen space transform of a layer 1830 // We also implicitly check that the updated screen space transform of a layer
1831 // that is not in drawn render surface layer list (test_layer) is used during 1831 // that is not in drawn render surface layer list (test_layer) is used during
1832 // hit testing (becuase the point is inside test_layer with respect to the old 1832 // hit testing (becuase the point is inside test_layer with respect to the old
1833 // screen space transform). 1833 // screen space transform).
1834 gfx::PointF test_point(24.f, 24.f); 1834 gfx::PointF test_point(24.f, 24.f);
1835 test_layer->SetPosition(gfx::PointF(25.f, 25.f)); 1835 test_layer->SetPosition(gfx::PointF(25.f, 25.f));
1836 gfx::Transform expected_screen_space_transform; 1836 gfx::Transform expected_screen_space_transform;
1837 expected_screen_space_transform.Translate(25.f, 25.f); 1837 expected_screen_space_transform.Translate(25.f, 25.f);
1838 1838
1839 host_impl().active_tree()->property_trees()->needs_rebuild = true; 1839 host_impl().active_tree()->property_trees()->needs_rebuild = true;
1840 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 1840 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
1841 LayerImpl* result_layer = 1841 LayerImpl* result_layer =
1842 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion( 1842 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion(
1843 test_point); 1843 test_point);
1844 EXPECT_FALSE(result_layer); 1844 EXPECT_FALSE(result_layer);
1845 EXPECT_FALSE(test_layer->is_drawn_render_surface_layer_list_member()); 1845 EXPECT_FALSE(test_layer->contributes_to_drawn_render_surface());
1846 EXPECT_TRANSFORMATION_MATRIX_EQ( 1846 EXPECT_TRANSFORMATION_MATRIX_EQ(
1847 expected_screen_space_transform, 1847 expected_screen_space_transform,
1848 draw_property_utils::ScreenSpaceTransform( 1848 draw_property_utils::ScreenSpaceTransform(
1849 test_layer, 1849 test_layer,
1850 host_impl().active_tree()->property_trees()->transform_tree)); 1850 host_impl().active_tree()->property_trees()->transform_tree));
1851 1851
1852 // We change the position of the test layer such that the test point is now 1852 // We change the position of the test layer such that the test point is now
1853 // inside the test_layer. 1853 // inside the test_layer.
1854 test_layer = root->test_properties()->children[0]; 1854 test_layer = root->test_properties()->children[0];
1855 test_layer->SetPosition(gfx::PointF(10.f, 10.f)); 1855 test_layer->SetPosition(gfx::PointF(10.f, 10.f));
1856 test_layer->NoteLayerPropertyChanged(); 1856 test_layer->NoteLayerPropertyChanged();
1857 expected_screen_space_transform.MakeIdentity(); 1857 expected_screen_space_transform.MakeIdentity();
1858 expected_screen_space_transform.Translate(10.f, 10.f); 1858 expected_screen_space_transform.Translate(10.f, 10.f);
1859 1859
1860 host_impl().active_tree()->property_trees()->needs_rebuild = true; 1860 host_impl().active_tree()->property_trees()->needs_rebuild = true;
1861 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting(); 1861 host_impl().active_tree()->BuildLayerListAndPropertyTreesForTesting();
1862 result_layer = 1862 result_layer =
1863 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion( 1863 host_impl().active_tree()->FindLayerThatIsHitByPointInTouchHandlerRegion(
1864 test_point); 1864 test_point);
1865 ASSERT_TRUE(result_layer); 1865 ASSERT_TRUE(result_layer);
1866 ASSERT_EQ(test_layer, result_layer); 1866 ASSERT_EQ(test_layer, result_layer);
1867 EXPECT_FALSE(result_layer->is_drawn_render_surface_layer_list_member()); 1867 EXPECT_FALSE(result_layer->contributes_to_drawn_render_surface());
1868 EXPECT_TRANSFORMATION_MATRIX_EQ( 1868 EXPECT_TRANSFORMATION_MATRIX_EQ(
1869 expected_screen_space_transform, 1869 expected_screen_space_transform,
1870 draw_property_utils::ScreenSpaceTransform( 1870 draw_property_utils::ScreenSpaceTransform(
1871 test_layer, 1871 test_layer,
1872 host_impl().active_tree()->property_trees()->transform_tree)); 1872 host_impl().active_tree()->property_trees()->transform_tree));
1873 } 1873 }
1874 1874
1875 TEST_F(LayerTreeImplTest, SelectionBoundsForSingleLayer) { 1875 TEST_F(LayerTreeImplTest, SelectionBoundsForSingleLayer) {
1876 LayerImpl* root = root_layer(); 1876 LayerImpl* root = root_layer();
1877 root->SetBounds(gfx::Size(100, 100)); 1877 root->SetBounds(gfx::Size(100, 100));
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
2381 auto weak_promise = promise->AsWeakPtr(); 2381 auto weak_promise = promise->AsWeakPtr();
2382 host_impl().active_tree()->QueueSwapPromise(std::move(promise)); 2382 host_impl().active_tree()->QueueSwapPromise(std::move(promise));
2383 host_impl().active_tree()->BreakSwapPromises( 2383 host_impl().active_tree()->BreakSwapPromises(
2384 SwapPromise::DidNotSwapReason::SWAP_FAILS); 2384 SwapPromise::DidNotSwapReason::SWAP_FAILS);
2385 EXPECT_FALSE(weak_promise); 2385 EXPECT_FALSE(weak_promise);
2386 } 2386 }
2387 } 2387 }
2388 2388
2389 } // namespace 2389 } // namespace
2390 } // namespace cc 2390 } // namespace cc
OLDNEW
« cc/trees/layer_tree_host_common_unittest.cc ('K') | « cc/trees/layer_tree_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698