OLD | NEW |
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/layers/append_quads_data.h" | 5 #include "cc/layers/append_quads_data.h" |
6 #include "cc/layers/layer_impl.h" | 6 #include "cc/layers/layer_impl.h" |
7 #include "cc/layers/render_pass_sink.h" | 7 #include "cc/layers/render_pass_sink.h" |
8 #include "cc/layers/render_surface_impl.h" | 8 #include "cc/layers/render_surface_impl.h" |
9 #include "cc/quads/shared_quad_state.h" | 9 #include "cc/quads/shared_quad_state.h" |
10 #include "cc/test/fake_compositor_frame_sink.h" | 10 #include "cc/test/fake_compositor_frame_sink.h" |
11 #include "cc/test/fake_impl_task_runner_provider.h" | 11 #include "cc/test/fake_impl_task_runner_provider.h" |
12 #include "cc/test/fake_layer_tree_host_impl.h" | 12 #include "cc/test/fake_layer_tree_host_impl.h" |
13 #include "cc/test/geometry_test_utils.h" | 13 #include "cc/test/geometry_test_utils.h" |
14 #include "cc/test/mock_occlusion_tracker.h" | 14 #include "cc/test/mock_occlusion_tracker.h" |
15 #include "cc/test/test_shared_bitmap_manager.h" | |
16 #include "cc/test/test_task_graph_runner.h" | 15 #include "cc/test/test_task_graph_runner.h" |
17 #include "cc/trees/layer_tree_impl.h" | 16 #include "cc/trees/layer_tree_impl.h" |
18 #include "cc/trees/single_thread_proxy.h" | 17 #include "cc/trees/single_thread_proxy.h" |
19 #include "testing/gmock/include/gmock/gmock.h" | 18 #include "testing/gmock/include/gmock/gmock.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
21 #include "ui/gfx/transform.h" | 20 #include "ui/gfx/transform.h" |
22 | 21 |
23 namespace cc { | 22 namespace cc { |
24 namespace { | 23 namespace { |
25 | 24 |
26 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(code_to_test) \ | 25 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(code_to_test) \ |
27 render_surface->ResetPropertyChangedFlags(); \ | 26 render_surface->ResetPropertyChangedFlags(); \ |
28 code_to_test; \ | 27 code_to_test; \ |
29 EXPECT_TRUE(render_surface->SurfacePropertyChanged()) | 28 EXPECT_TRUE(render_surface->SurfacePropertyChanged()) |
30 | 29 |
31 #define EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(code_to_test) \ | 30 #define EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(code_to_test) \ |
32 render_surface->ResetPropertyChangedFlags(); \ | 31 render_surface->ResetPropertyChangedFlags(); \ |
33 code_to_test; \ | 32 code_to_test; \ |
34 EXPECT_FALSE(render_surface->SurfacePropertyChanged()) | 33 EXPECT_FALSE(render_surface->SurfacePropertyChanged()) |
35 | 34 |
36 TEST(RenderSurfaceTest, VerifySurfaceChangesAreTrackedProperly) { | 35 TEST(RenderSurfaceTest, VerifySurfaceChangesAreTrackedProperly) { |
37 // | 36 // |
38 // This test checks that SurfacePropertyChanged() has the correct behavior. | 37 // This test checks that SurfacePropertyChanged() has the correct behavior. |
39 // | 38 // |
40 | 39 |
41 FakeImplTaskRunnerProvider task_runner_provider; | 40 FakeImplTaskRunnerProvider task_runner_provider; |
42 TestSharedBitmapManager shared_bitmap_manager; | |
43 TestTaskGraphRunner task_graph_runner; | 41 TestTaskGraphRunner task_graph_runner; |
44 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 42 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); |
45 &task_graph_runner); | |
46 std::unique_ptr<LayerImpl> owning_layer = | 43 std::unique_ptr<LayerImpl> owning_layer = |
47 LayerImpl::Create(host_impl.active_tree(), 1); | 44 LayerImpl::Create(host_impl.active_tree(), 1); |
48 owning_layer->SetHasRenderSurface(true); | 45 owning_layer->SetHasRenderSurface(true); |
49 ASSERT_TRUE(owning_layer->render_surface()); | 46 ASSERT_TRUE(owning_layer->render_surface()); |
50 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); | 47 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); |
51 gfx::Rect test_rect(3, 4, 5, 6); | 48 gfx::Rect test_rect(3, 4, 5, 6); |
52 host_impl.active_tree()->ResetAllChangeTracking(); | 49 host_impl.active_tree()->ResetAllChangeTracking(); |
53 host_impl.active_tree()->SetRootLayerForTesting(std::move(owning_layer)); | 50 host_impl.active_tree()->SetRootLayerForTesting(std::move(owning_layer)); |
54 host_impl.active_tree()->BuildPropertyTreesForTesting(); | 51 host_impl.active_tree()->BuildPropertyTreesForTesting(); |
55 | 52 |
(...skipping 27 matching lines...) Expand all Loading... |
83 // owninglayer->layerPropertyChanged(). | 80 // owninglayer->layerPropertyChanged(). |
84 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( | 81 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( |
85 render_surface->SetDrawOpacity(0.5f)); | 82 render_surface->SetDrawOpacity(0.5f)); |
86 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( | 83 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( |
87 render_surface->SetDrawTransform(dummy_matrix)); | 84 render_surface->SetDrawTransform(dummy_matrix)); |
88 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(render_surface->ClearLayerLists()); | 85 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(render_surface->ClearLayerLists()); |
89 } | 86 } |
90 | 87 |
91 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectSharedQuadState) { | 88 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectSharedQuadState) { |
92 FakeImplTaskRunnerProvider task_runner_provider; | 89 FakeImplTaskRunnerProvider task_runner_provider; |
93 TestSharedBitmapManager shared_bitmap_manager; | |
94 TestTaskGraphRunner task_graph_runner; | 90 TestTaskGraphRunner task_graph_runner; |
95 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = | 91 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
96 FakeCompositorFrameSink::Create3d(); | 92 FakeCompositorFrameSink::Create3d(); |
97 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 93 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); |
98 &task_graph_runner); | |
99 std::unique_ptr<LayerImpl> root_layer = | 94 std::unique_ptr<LayerImpl> root_layer = |
100 LayerImpl::Create(host_impl.active_tree(), 1); | 95 LayerImpl::Create(host_impl.active_tree(), 1); |
101 | 96 |
102 std::unique_ptr<LayerImpl> owning_layer = | 97 std::unique_ptr<LayerImpl> owning_layer = |
103 LayerImpl::Create(host_impl.active_tree(), 2); | 98 LayerImpl::Create(host_impl.active_tree(), 2); |
104 owning_layer->SetHasRenderSurface(true); | 99 owning_layer->SetHasRenderSurface(true); |
105 ASSERT_TRUE(owning_layer->render_surface()); | 100 ASSERT_TRUE(owning_layer->render_surface()); |
106 | 101 |
107 SkXfermode::Mode blend_mode = SkXfermode::kSoftLight_Mode; | 102 SkXfermode::Mode blend_mode = SkXfermode::kSoftLight_Mode; |
108 owning_layer->test_properties()->blend_mode = blend_mode; | 103 owning_layer->test_properties()->blend_mode = blend_mode; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 const RenderPassList& RenderPasses() const { | 151 const RenderPassList& RenderPasses() const { |
157 return render_passes_; | 152 return render_passes_; |
158 } | 153 } |
159 | 154 |
160 private: | 155 private: |
161 RenderPassList render_passes_; | 156 RenderPassList render_passes_; |
162 }; | 157 }; |
163 | 158 |
164 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { | 159 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { |
165 FakeImplTaskRunnerProvider task_runner_provider; | 160 FakeImplTaskRunnerProvider task_runner_provider; |
166 TestSharedBitmapManager shared_bitmap_manager; | |
167 TestTaskGraphRunner task_graph_runner; | 161 TestTaskGraphRunner task_graph_runner; |
168 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 162 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); |
169 &task_graph_runner); | |
170 std::unique_ptr<LayerImpl> root_layer = | 163 std::unique_ptr<LayerImpl> root_layer = |
171 LayerImpl::Create(host_impl.active_tree(), 1); | 164 LayerImpl::Create(host_impl.active_tree(), 1); |
172 | 165 |
173 std::unique_ptr<LayerImpl> owning_layer = | 166 std::unique_ptr<LayerImpl> owning_layer = |
174 LayerImpl::Create(host_impl.active_tree(), 2); | 167 LayerImpl::Create(host_impl.active_tree(), 2); |
175 owning_layer->SetHasRenderSurface(true); | 168 owning_layer->SetHasRenderSurface(true); |
176 ASSERT_TRUE(owning_layer->render_surface()); | 169 ASSERT_TRUE(owning_layer->render_surface()); |
177 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); | 170 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); |
178 | 171 |
179 root_layer->test_properties()->AddChild(std::move(owning_layer)); | 172 root_layer->test_properties()->AddChild(std::move(owning_layer)); |
(...skipping 12 matching lines...) Expand all Loading... |
192 ASSERT_EQ(1u, pass_sink.RenderPasses().size()); | 185 ASSERT_EQ(1u, pass_sink.RenderPasses().size()); |
193 RenderPass* pass = pass_sink.RenderPasses()[0].get(); | 186 RenderPass* pass = pass_sink.RenderPasses()[0].get(); |
194 | 187 |
195 EXPECT_EQ(RenderPassId(2, 0), pass->id); | 188 EXPECT_EQ(RenderPassId(2, 0), pass->id); |
196 EXPECT_EQ(content_rect, pass->output_rect); | 189 EXPECT_EQ(content_rect, pass->output_rect); |
197 EXPECT_EQ(origin, pass->transform_to_root_target); | 190 EXPECT_EQ(origin, pass->transform_to_root_target); |
198 } | 191 } |
199 | 192 |
200 } // namespace | 193 } // namespace |
201 } // namespace cc | 194 } // namespace cc |
OLD | NEW |