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

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

Issue 2337913003: Fork cc::OutputSurface into cc::CompositorFrameSink. (Closed)
Patch Set: cfsfork: android-vulkan Created 4 years, 3 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/layer_tree_host_client.h ('k') | cc/trees/layer_tree_host_impl.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 <memory> 10 #include <memory>
(...skipping 13 matching lines...) Expand all
24 #include "cc/layers/layer_client.h" 24 #include "cc/layers/layer_client.h"
25 #include "cc/layers/layer_impl.h" 25 #include "cc/layers/layer_impl.h"
26 #include "cc/layers/layer_iterator.h" 26 #include "cc/layers/layer_iterator.h"
27 #include "cc/layers/render_surface_impl.h" 27 #include "cc/layers/render_surface_impl.h"
28 #include "cc/layers/texture_layer_impl.h" 28 #include "cc/layers/texture_layer_impl.h"
29 #include "cc/output/copy_output_request.h" 29 #include "cc/output/copy_output_request.h"
30 #include "cc/output/copy_output_result.h" 30 #include "cc/output/copy_output_result.h"
31 #include "cc/proto/begin_main_frame_and_commit_state.pb.h" 31 #include "cc/proto/begin_main_frame_and_commit_state.pb.h"
32 #include "cc/proto/gfx_conversions.h" 32 #include "cc/proto/gfx_conversions.h"
33 #include "cc/test/animation_test_common.h" 33 #include "cc/test/animation_test_common.h"
34 #include "cc/test/fake_compositor_frame_sink.h"
34 #include "cc/test/fake_content_layer_client.h" 35 #include "cc/test/fake_content_layer_client.h"
35 #include "cc/test/fake_impl_task_runner_provider.h" 36 #include "cc/test/fake_impl_task_runner_provider.h"
36 #include "cc/test/fake_layer_tree_host.h" 37 #include "cc/test/fake_layer_tree_host.h"
37 #include "cc/test/fake_layer_tree_host_impl.h" 38 #include "cc/test/fake_layer_tree_host_impl.h"
38 #include "cc/test/fake_output_surface.h"
39 #include "cc/test/fake_picture_layer.h" 39 #include "cc/test/fake_picture_layer.h"
40 #include "cc/test/fake_picture_layer_impl.h" 40 #include "cc/test/fake_picture_layer_impl.h"
41 #include "cc/test/geometry_test_utils.h" 41 #include "cc/test/geometry_test_utils.h"
42 #include "cc/test/layer_test_common.h" 42 #include "cc/test/layer_test_common.h"
43 #include "cc/test/test_task_graph_runner.h" 43 #include "cc/test/test_task_graph_runner.h"
44 #include "cc/trees/clip_node.h" 44 #include "cc/trees/clip_node.h"
45 #include "cc/trees/draw_property_utils.h" 45 #include "cc/trees/draw_property_utils.h"
46 #include "cc/trees/effect_node.h" 46 #include "cc/trees/effect_node.h"
47 #include "cc/trees/layer_tree_impl.h" 47 #include "cc/trees/layer_tree_impl.h"
48 #include "cc/trees/property_tree_builder.h" 48 #include "cc/trees/property_tree_builder.h"
(...skipping 3452 matching lines...) Expand 10 before | Expand all | Expand 10 after
3501 3501
3502 // CalcDrawProps skips a subtree when a layer's screen space transform is 3502 // CalcDrawProps skips a subtree when a layer's screen space transform is
3503 // uninvertible 3503 // uninvertible
3504 EXPECT_EQ(gfx::Rect(), grand_child->visible_layer_rect()); 3504 EXPECT_EQ(gfx::Rect(), grand_child->visible_layer_rect());
3505 } 3505 }
3506 3506
3507 TEST_F(LayerTreeHostCommonTest, OcclusionBySiblingOfTarget) { 3507 TEST_F(LayerTreeHostCommonTest, OcclusionBySiblingOfTarget) {
3508 FakeImplTaskRunnerProvider task_runner_provider; 3508 FakeImplTaskRunnerProvider task_runner_provider;
3509 TestSharedBitmapManager shared_bitmap_manager; 3509 TestSharedBitmapManager shared_bitmap_manager;
3510 TestTaskGraphRunner task_graph_runner; 3510 TestTaskGraphRunner task_graph_runner;
3511 std::unique_ptr<OutputSurface> output_surface = 3511 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
3512 FakeOutputSurface::CreateDelegating3d(); 3512 FakeCompositorFrameSink::Create3d();
3513 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, 3513 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager,
3514 &task_graph_runner); 3514 &task_graph_runner);
3515 3515
3516 std::unique_ptr<LayerImpl> root = 3516 std::unique_ptr<LayerImpl> root =
3517 LayerImpl::Create(host_impl.active_tree(), 1); 3517 LayerImpl::Create(host_impl.active_tree(), 1);
3518 std::unique_ptr<LayerImpl> child = 3518 std::unique_ptr<LayerImpl> child =
3519 LayerImpl::Create(host_impl.active_tree(), 2); 3519 LayerImpl::Create(host_impl.active_tree(), 2);
3520 std::unique_ptr<TextureLayerImpl> surface = 3520 std::unique_ptr<TextureLayerImpl> surface =
3521 TextureLayerImpl::Create(host_impl.active_tree(), 3); 3521 TextureLayerImpl::Create(host_impl.active_tree(), 3);
3522 std::unique_ptr<TextureLayerImpl> surface_child = 3522 std::unique_ptr<TextureLayerImpl> surface_child =
(...skipping 30 matching lines...) Expand all
3553 3553
3554 host_impl.SetViewportSize(root->bounds()); 3554 host_impl.SetViewportSize(root->bounds());
3555 3555
3556 surface_child->test_properties()->SetMaskLayer(std::move(surface_child_mask)); 3556 surface_child->test_properties()->SetMaskLayer(std::move(surface_child_mask));
3557 surface->test_properties()->AddChild(std::move(surface_child)); 3557 surface->test_properties()->AddChild(std::move(surface_child));
3558 child->test_properties()->AddChild(std::move(surface)); 3558 child->test_properties()->AddChild(std::move(surface));
3559 child->test_properties()->AddChild(std::move(surface_sibling)); 3559 child->test_properties()->AddChild(std::move(surface_sibling));
3560 root->test_properties()->AddChild(std::move(child)); 3560 root->test_properties()->AddChild(std::move(child));
3561 host_impl.active_tree()->SetRootLayerForTesting(std::move(root)); 3561 host_impl.active_tree()->SetRootLayerForTesting(std::move(root));
3562 host_impl.SetVisible(true); 3562 host_impl.SetVisible(true);
3563 host_impl.InitializeRenderer(output_surface.get()); 3563 host_impl.InitializeRenderer(compositor_frame_sink.get());
3564 host_impl.active_tree()->BuildLayerListAndPropertyTreesForTesting(); 3564 host_impl.active_tree()->BuildLayerListAndPropertyTreesForTesting();
3565 bool update_lcd_text = false; 3565 bool update_lcd_text = false;
3566 host_impl.active_tree()->UpdateDrawProperties(update_lcd_text); 3566 host_impl.active_tree()->UpdateDrawProperties(update_lcd_text);
3567 3567
3568 EXPECT_TRANSFORMATION_MATRIX_EQ( 3568 EXPECT_TRANSFORMATION_MATRIX_EQ(
3569 surface_ptr->render_surface()->draw_transform(), translate); 3569 surface_ptr->render_surface()->draw_transform(), translate);
3570 // surface_sibling draws into the root render surface and occludes 3570 // surface_sibling draws into the root render surface and occludes
3571 // surface_child's contents. 3571 // surface_child's contents.
3572 Occlusion actual_occlusion = 3572 Occlusion actual_occlusion =
3573 surface_child_ptr->render_surface()->occlusion_in_content_space(); 3573 surface_child_ptr->render_surface()->occlusion_in_content_space();
3574 Occlusion expected_occlusion(translate, SimpleEnclosedRegion(gfx::Rect()), 3574 Occlusion expected_occlusion(translate, SimpleEnclosedRegion(gfx::Rect()),
3575 SimpleEnclosedRegion(gfx::Rect(200, 200))); 3575 SimpleEnclosedRegion(gfx::Rect(200, 200)));
3576 EXPECT_TRUE(expected_occlusion.IsEqual(actual_occlusion)); 3576 EXPECT_TRUE(expected_occlusion.IsEqual(actual_occlusion));
3577 3577
3578 // Mask layer should have the same occlusion. 3578 // Mask layer should have the same occlusion.
3579 actual_occlusion = 3579 actual_occlusion =
3580 surface_child_mask_ptr->draw_properties().occlusion_in_content_space; 3580 surface_child_mask_ptr->draw_properties().occlusion_in_content_space;
3581 EXPECT_TRUE(expected_occlusion.IsEqual(actual_occlusion)); 3581 EXPECT_TRUE(expected_occlusion.IsEqual(actual_occlusion));
3582 } 3582 }
3583 3583
3584 TEST_F(LayerTreeHostCommonTest, 3584 TEST_F(LayerTreeHostCommonTest,
3585 OcclusionForLayerWithUninvertibleDrawTransform) { 3585 OcclusionForLayerWithUninvertibleDrawTransform) {
3586 FakeImplTaskRunnerProvider task_runner_provider; 3586 FakeImplTaskRunnerProvider task_runner_provider;
3587 TestSharedBitmapManager shared_bitmap_manager; 3587 TestSharedBitmapManager shared_bitmap_manager;
3588 TestTaskGraphRunner task_graph_runner; 3588 TestTaskGraphRunner task_graph_runner;
3589 std::unique_ptr<OutputSurface> output_surface = 3589 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
3590 FakeOutputSurface::CreateDelegating3d(); 3590 FakeCompositorFrameSink::Create3d();
3591 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, 3591 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager,
3592 &task_graph_runner); 3592 &task_graph_runner);
3593 3593
3594 std::unique_ptr<LayerImpl> root = 3594 std::unique_ptr<LayerImpl> root =
3595 LayerImpl::Create(host_impl.active_tree(), 1); 3595 LayerImpl::Create(host_impl.active_tree(), 1);
3596 std::unique_ptr<LayerImpl> child = 3596 std::unique_ptr<LayerImpl> child =
3597 LayerImpl::Create(host_impl.active_tree(), 2); 3597 LayerImpl::Create(host_impl.active_tree(), 2);
3598 std::unique_ptr<LayerImpl> grand_child = 3598 std::unique_ptr<LayerImpl> grand_child =
3599 LayerImpl::Create(host_impl.active_tree(), 3); 3599 LayerImpl::Create(host_impl.active_tree(), 3);
3600 std::unique_ptr<LayerImpl> occluding_child = 3600 std::unique_ptr<LayerImpl> occluding_child =
(...skipping 23 matching lines...) Expand all
3624 occluding_child->SetDrawsContent(true); 3624 occluding_child->SetDrawsContent(true);
3625 occluding_child->SetContentsOpaque(true); 3625 occluding_child->SetContentsOpaque(true);
3626 3626
3627 host_impl.SetViewportSize(root->bounds()); 3627 host_impl.SetViewportSize(root->bounds());
3628 3628
3629 child->test_properties()->AddChild(std::move(grand_child)); 3629 child->test_properties()->AddChild(std::move(grand_child));
3630 root->test_properties()->AddChild(std::move(child)); 3630 root->test_properties()->AddChild(std::move(child));
3631 root->test_properties()->AddChild(std::move(occluding_child)); 3631 root->test_properties()->AddChild(std::move(occluding_child));
3632 host_impl.active_tree()->SetRootLayerForTesting(std::move(root)); 3632 host_impl.active_tree()->SetRootLayerForTesting(std::move(root));
3633 host_impl.SetVisible(true); 3633 host_impl.SetVisible(true);
3634 host_impl.InitializeRenderer(output_surface.get()); 3634 host_impl.InitializeRenderer(compositor_frame_sink.get());
3635 host_impl.active_tree()->BuildLayerListAndPropertyTreesForTesting(); 3635 host_impl.active_tree()->BuildLayerListAndPropertyTreesForTesting();
3636 bool update_lcd_text = false; 3636 bool update_lcd_text = false;
3637 host_impl.active_tree()->UpdateDrawProperties(update_lcd_text); 3637 host_impl.active_tree()->UpdateDrawProperties(update_lcd_text);
3638 3638
3639 LayerImpl* grand_child_ptr = host_impl.active_tree() 3639 LayerImpl* grand_child_ptr = host_impl.active_tree()
3640 ->root_layer_for_testing() 3640 ->root_layer_for_testing()
3641 ->test_properties() 3641 ->test_properties()
3642 ->children[0] 3642 ->children[0]
3643 ->test_properties() 3643 ->test_properties()
3644 ->children[0]; 3644 ->children[0];
(...skipping 6193 matching lines...) Expand 10 before | Expand all | Expand 10 after
9838 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); 9838 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index());
9839 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); 9839 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index());
9840 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); 9840 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index());
9841 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); 9841 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index());
9842 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); 9842 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index());
9843 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); 9843 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index());
9844 } 9844 }
9845 9845
9846 } // namespace 9846 } // namespace
9847 } // namespace cc 9847 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_client.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698