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

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

Issue 1624693004: cc:: Add transform nodes at boundaries of 3d rendering contexts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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/trees/draw_property_utils.cc ('k') | cc/trees/property_tree.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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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_host_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <set> 10 #include <set>
(...skipping 6372 matching lines...) Expand 10 before | Expand all | Expand 10 after
6383 EXPECT_EQ(1, count_represents_target_render_surface); 6383 EXPECT_EQ(1, count_represents_target_render_surface);
6384 // No layer contributes a render surface to root render surface. 6384 // No layer contributes a render surface to root render surface.
6385 EXPECT_EQ(0, count_represents_contributing_render_surface); 6385 EXPECT_EQ(0, count_represents_contributing_render_surface);
6386 // All 4 layers represent itself. 6386 // All 4 layers represent itself.
6387 EXPECT_EQ(4, count_represents_itself); 6387 EXPECT_EQ(4, count_represents_itself);
6388 } 6388 }
6389 } 6389 }
6390 6390
6391 TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) { 6391 TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleSurfaces) {
6392 LayerImpl* root = root_layer(); 6392 LayerImpl* root = root_layer();
6393 LayerImpl* render_surface = AddChild<LayerImpl>(root); 6393 LayerImpl* back_facing = AddChild<LayerImpl>(root);
6394 LayerImpl* child = AddChild<LayerImpl>(render_surface); 6394 LayerImpl* render_surface1 = AddChild<LayerImpl>(back_facing);
6395 child->SetDrawsContent(true); 6395 LayerImpl* render_surface2 = AddChild<LayerImpl>(back_facing);
6396 LayerImpl* child1 = AddChild<LayerImpl>(render_surface1);
6397 LayerImpl* child2 = AddChild<LayerImpl>(render_surface2);
6398 child1->SetDrawsContent(true);
6399 child2->SetDrawsContent(true);
6396 6400
6397 gfx::Transform identity_transform; 6401 gfx::Transform identity_transform;
6398 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), 6402 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(),
6399 gfx::PointF(), gfx::Size(50, 50), true, false, 6403 gfx::PointF(), gfx::Size(50, 50), true, false,
6400 true); 6404 true);
6401 SetLayerPropertiesForTesting(render_surface, identity_transform, 6405 SetLayerPropertiesForTesting(back_facing, identity_transform, gfx::Point3F(),
6406 gfx::PointF(), gfx::Size(50, 50), true, false,
6407 false);
6408 SetLayerPropertiesForTesting(render_surface1, identity_transform,
6402 gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30), 6409 gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30),
6403 false, true, true); 6410 false, true, true);
6404 SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), 6411 SetLayerPropertiesForTesting(render_surface2, identity_transform,
6412 gfx::Point3F(), gfx::PointF(), gfx::Size(30, 30),
6413 false, true, true);
6414 SetLayerPropertiesForTesting(child1, identity_transform, gfx::Point3F(),
6415 gfx::PointF(), gfx::Size(20, 20), true, false,
6416 false);
6417 SetLayerPropertiesForTesting(child2, identity_transform, gfx::Point3F(),
6405 gfx::PointF(), gfx::Size(20, 20), true, false, 6418 gfx::PointF(), gfx::Size(20, 20), true, false,
6406 false); 6419 false);
6407 6420
6408 root->SetShouldFlattenTransform(false); 6421 root->SetShouldFlattenTransform(false);
6409 root->Set3dSortingContextId(1); 6422 root->Set3dSortingContextId(1);
6410 render_surface->SetDoubleSided(false); 6423 back_facing->Set3dSortingContextId(1);
6424 back_facing->SetShouldFlattenTransform(false);
6425 render_surface1->SetDoubleSided(false);
6426 render_surface2->Set3dSortingContextId(2);
6427 render_surface2->SetDoubleSided(false);
6411 6428
6412 ExecuteCalculateDrawProperties(root); 6429 ExecuteCalculateDrawProperties(root);
6413 6430
6414 EXPECT_EQ(2u, render_surface_layer_list_impl()->size()); 6431 EXPECT_EQ(render_surface1->sorting_context_id(), root->sorting_context_id());
6415 EXPECT_EQ(1u, render_surface_layer_list_impl() 6432 EXPECT_NE(render_surface2->sorting_context_id(), root->sorting_context_id());
6433 EXPECT_EQ(3u, render_surface_layer_list_impl()->size());
6434 EXPECT_EQ(2u, render_surface_layer_list_impl()
6416 ->at(0) 6435 ->at(0)
6417 ->render_surface() 6436 ->render_surface()
6418 ->layer_list() 6437 ->layer_list()
6419 .size()); 6438 .size());
6420 EXPECT_EQ(1u, render_surface_layer_list_impl() 6439 EXPECT_EQ(1u, render_surface_layer_list_impl()
6421 ->at(1) 6440 ->at(1)
6422 ->render_surface() 6441 ->render_surface()
6423 ->layer_list() 6442 ->layer_list()
6424 .size()); 6443 .size());
6425 6444
6426 gfx::Transform rotation_transform = identity_transform; 6445 gfx::Transform rotation_transform = identity_transform;
6427 rotation_transform.RotateAboutXAxis(180.0); 6446 rotation_transform.RotateAboutXAxis(180.0);
6428 6447
6429 render_surface->SetTransform(rotation_transform); 6448 back_facing->SetTransform(rotation_transform);
6430 root->layer_tree_impl()->property_trees()->needs_rebuild = true; 6449 root->layer_tree_impl()->property_trees()->needs_rebuild = true;
6431 6450
6432 ExecuteCalculateDrawProperties(root); 6451 ExecuteCalculateDrawProperties(root);
6433 6452
6434 EXPECT_EQ(1u, render_surface_layer_list_impl()->size()); 6453 // render_surface1 is in the same 3d rendering context as back_facing and is
6435 EXPECT_EQ(0u, render_surface_layer_list_impl() 6454 // not double sided, so it should not be in RSLL. render_surface2 is also not
6455 // double-sided, but will still be in RSLL as it's in a different 3d rendering
6456 // context.
6457 EXPECT_EQ(2u, render_surface_layer_list_impl()->size());
6458 EXPECT_EQ(1u, render_surface_layer_list_impl()
6436 ->at(0) 6459 ->at(0)
6437 ->render_surface() 6460 ->render_surface()
6438 ->layer_list() 6461 ->layer_list()
6439 .size()); 6462 .size());
6440 } 6463 }
6441 6464
6442 TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleLayers) { 6465 TEST_F(LayerTreeHostCommonTest, DoNotIncludeBackfaceInvisibleLayers) {
6443 LayerImpl* root = root_layer(); 6466 LayerImpl* root = root_layer();
6444 LayerImpl* child = AddChild<LayerImpl>(root); 6467 LayerImpl* child = AddChild<LayerImpl>(root);
6445 LayerImpl* grand_child = AddChild<LayerImpl>(child); 6468 LayerImpl* grand_child = AddChild<LayerImpl>(child);
(...skipping 3386 matching lines...) Expand 10 before | Expand all | Expand 10 after
9832 proto::ScrollAndScaleSet proto; 9855 proto::ScrollAndScaleSet proto;
9833 scroll_and_scale_set.ToProtobuf(&proto); 9856 scroll_and_scale_set.ToProtobuf(&proto);
9834 ScrollAndScaleSet new_scroll_and_scale_set; 9857 ScrollAndScaleSet new_scroll_and_scale_set;
9835 new_scroll_and_scale_set.FromProtobuf(proto); 9858 new_scroll_and_scale_set.FromProtobuf(proto);
9836 9859
9837 EXPECT_TRUE(scroll_and_scale_set.EqualsForTesting(new_scroll_and_scale_set)); 9860 EXPECT_TRUE(scroll_and_scale_set.EqualsForTesting(new_scroll_and_scale_set));
9838 } 9861 }
9839 9862
9840 } // namespace 9863 } // namespace
9841 } // namespace cc 9864 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/draw_property_utils.cc ('k') | cc/trees/property_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698