| 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 |