Index: cc/trees/layer_tree_host_common_unittest.cc |
diff --git a/cc/trees/layer_tree_host_common_unittest.cc b/cc/trees/layer_tree_host_common_unittest.cc |
index 3a426ec92fa14142e90828bedacea6ae7db0f5e3..19be430d4d1e6a5192535f387fed1ec3e8284927 100644 |
--- a/cc/trees/layer_tree_host_common_unittest.cc |
+++ b/cc/trees/layer_tree_host_common_unittest.cc |
@@ -6390,29 +6390,48 @@ TEST_F(LayerTreeHostCommonTest, CanRenderToSeparateSurface) { |
TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) { |
LayerImpl* root = root_layer(); |
- LayerImpl* render_surface = AddChild<LayerImpl>(root); |
- LayerImpl* child = AddChild<LayerImpl>(render_surface); |
- child->SetDrawsContent(true); |
+ LayerImpl* back_facing = AddChild<LayerImpl>(root); |
+ LayerImpl* render_surface1 = AddChild<LayerImpl>(back_facing); |
+ LayerImpl* render_surface2 = AddChild<LayerImpl>(back_facing); |
+ LayerImpl* child1 = AddChild<LayerImpl>(render_surface1); |
+ LayerImpl* child2 = AddChild<LayerImpl>(render_surface2); |
+ child1->SetDrawsContent(true); |
+ child2->SetDrawsContent(true); |
gfx::Transform identity_transform; |
SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), |
gfx::PointF(), gfx::Size(50, 50), true, false, |
true); |
- SetLayerPropertiesForTesting(render_surface, identity_transform, |
+ SetLayerPropertiesForTesting(back_facing, identity_transform, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(50, 50), true, false, |
+ false); |
+ SetLayerPropertiesForTesting(render_surface1, identity_transform, |
gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30), |
false, true, true); |
- SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), |
+ SetLayerPropertiesForTesting(render_surface2, identity_transform, |
+ gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30), |
+ false, true, true); |
+ SetLayerPropertiesForTesting(child1, identity_transform, gfx::Point3F(), |
+ gfx::PointF(), gfx::Size(20, 20), true, false, |
+ false); |
+ SetLayerPropertiesForTesting(child2, identity_transform, gfx::Point3F(), |
gfx::PointF(), gfx::Size(20, 20), true, false, |
false); |
root->SetShouldFlattenTransform(false); |
root->Set3dSortingContextId(1); |
- render_surface->SetDoubleSided(false); |
+ back_facing->Set3dSortingContextId(1); |
+ back_facing->SetShouldFlattenTransform(false); |
+ render_surface1->SetDoubleSided(false); |
+ render_surface2->Set3dSortingContextId(2); |
+ render_surface2->SetDoubleSided(false); |
ExecuteCalculateDrawProperties(root); |
- EXPECT_EQ(2u, render_surface_layer_list_impl()->size()); |
- EXPECT_EQ(1u, render_surface_layer_list_impl() |
+ EXPECT_EQ(render_surface1->sorting_context_id(), root->sorting_context_id()); |
+ EXPECT_NE(render_surface2->sorting_context_id(), root->sorting_context_id()); |
+ EXPECT_EQ(3u, render_surface_layer_list_impl()->size()); |
+ EXPECT_EQ(2u, render_surface_layer_list_impl() |
->at(0) |
->render_surface() |
->layer_list() |
@@ -6426,13 +6445,17 @@ TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) { |
gfx::Transform rotation_transform = identity_transform; |
rotation_transform.RotateAboutXAxis(180.0); |
- render_surface->SetTransform(rotation_transform); |
+ back_facing->SetTransform(rotation_transform); |
root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
ExecuteCalculateDrawProperties(root); |
- EXPECT_EQ(1u, render_surface_layer_list_impl()->size()); |
- EXPECT_EQ(0u, render_surface_layer_list_impl() |
+ // render_surface1 is in the same 3d rendering context as back_facing and is |
+ // not double sided, so it should not be in RSLL. render_surface2 is also not |
+ // double-sided, but will still be in RSLL as its in a differnt 3d rendering |
ajuma
2016/01/28 00:08:35
typos: "it's" and "different"
|
+ // context. |
+ EXPECT_EQ(2u, render_surface_layer_list_impl()->size()); |
+ EXPECT_EQ(1u, render_surface_layer_list_impl() |
->at(0) |
->render_surface() |
->layer_list() |