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/base/scoped_ptr_vector.h" | 5 #include "cc/base/scoped_ptr_vector.h" |
6 #include "cc/layers/append_quads_data.h" | 6 #include "cc/layers/append_quads_data.h" |
7 #include "cc/layers/layer_impl.h" | 7 #include "cc/layers/layer_impl.h" |
8 #include "cc/layers/render_pass_sink.h" | 8 #include "cc/layers/render_pass_sink.h" |
9 #include "cc/layers/render_surface_impl.h" | 9 #include "cc/layers/render_surface_impl.h" |
10 #include "cc/quads/shared_quad_state.h" | 10 #include "cc/quads/shared_quad_state.h" |
11 #include "cc/test/fake_impl_proxy.h" | 11 #include "cc/test/fake_impl_proxy.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_quad_culler.h" | 14 #include "cc/test/mock_quad_culler.h" |
| 15 #include "cc/test/test_shared_bitmap_manager.h" |
15 #include "cc/trees/single_thread_proxy.h" | 16 #include "cc/trees/single_thread_proxy.h" |
16 #include "testing/gmock/include/gmock/gmock.h" | 17 #include "testing/gmock/include/gmock/gmock.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
18 #include "ui/gfx/transform.h" | 19 #include "ui/gfx/transform.h" |
19 | 20 |
20 namespace cc { | 21 namespace cc { |
21 namespace { | 22 namespace { |
22 | 23 |
23 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(code_to_test) \ | 24 #define EXECUTE_AND_VERIFY_SURFACE_CHANGED(code_to_test) \ |
24 render_surface->ResetPropertyChangedFlag(); \ | 25 render_surface->ResetPropertyChangedFlag(); \ |
25 code_to_test; \ | 26 code_to_test; \ |
26 EXPECT_TRUE(render_surface->SurfacePropertyChanged()) | 27 EXPECT_TRUE(render_surface->SurfacePropertyChanged()) |
27 | 28 |
28 #define EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(code_to_test) \ | 29 #define EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(code_to_test) \ |
29 render_surface->ResetPropertyChangedFlag(); \ | 30 render_surface->ResetPropertyChangedFlag(); \ |
30 code_to_test; \ | 31 code_to_test; \ |
31 EXPECT_FALSE(render_surface->SurfacePropertyChanged()) | 32 EXPECT_FALSE(render_surface->SurfacePropertyChanged()) |
32 | 33 |
33 TEST(RenderSurfaceTest, VerifySurfaceChangesAreTrackedProperly) { | 34 TEST(RenderSurfaceTest, VerifySurfaceChangesAreTrackedProperly) { |
34 // | 35 // |
35 // This test checks that SurfacePropertyChanged() has the correct behavior. | 36 // This test checks that SurfacePropertyChanged() has the correct behavior. |
36 // | 37 // |
37 | 38 |
38 FakeImplProxy proxy; | 39 FakeImplProxy proxy; |
39 FakeLayerTreeHostImpl host_impl(&proxy); | 40 TestSharedBitmapManager shared_bitmap_manager; |
| 41 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
40 scoped_ptr<LayerImpl> owning_layer = | 42 scoped_ptr<LayerImpl> owning_layer = |
41 LayerImpl::Create(host_impl.active_tree(), 1); | 43 LayerImpl::Create(host_impl.active_tree(), 1); |
42 owning_layer->CreateRenderSurface(); | 44 owning_layer->CreateRenderSurface(); |
43 ASSERT_TRUE(owning_layer->render_surface()); | 45 ASSERT_TRUE(owning_layer->render_surface()); |
44 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); | 46 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); |
45 gfx::Rect test_rect(3, 4, 5, 6); | 47 gfx::Rect test_rect(3, 4, 5, 6); |
46 owning_layer->ResetAllChangeTrackingForSubtree(); | 48 owning_layer->ResetAllChangeTrackingForSubtree(); |
47 | 49 |
48 // Currently, the content_rect, clip_rect, and | 50 // Currently, the content_rect, clip_rect, and |
49 // owning_layer->layerPropertyChanged() are the only sources of change. | 51 // owning_layer->layerPropertyChanged() are the only sources of change. |
(...skipping 23 matching lines...) Expand all Loading... |
73 render_surface->SetDrawOpacity(0.5f)); | 75 render_surface->SetDrawOpacity(0.5f)); |
74 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( | 76 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( |
75 render_surface->SetDrawTransform(dummy_matrix)); | 77 render_surface->SetDrawTransform(dummy_matrix)); |
76 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( | 78 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE( |
77 render_surface->SetReplicaDrawTransform(dummy_matrix)); | 79 render_surface->SetReplicaDrawTransform(dummy_matrix)); |
78 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(render_surface->ClearLayerLists()); | 80 EXECUTE_AND_VERIFY_SURFACE_DID_NOT_CHANGE(render_surface->ClearLayerLists()); |
79 } | 81 } |
80 | 82 |
81 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectSharedQuadState) { | 83 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectSharedQuadState) { |
82 FakeImplProxy proxy; | 84 FakeImplProxy proxy; |
83 FakeLayerTreeHostImpl host_impl(&proxy); | 85 TestSharedBitmapManager shared_bitmap_manager; |
| 86 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
84 scoped_ptr<LayerImpl> root_layer = | 87 scoped_ptr<LayerImpl> root_layer = |
85 LayerImpl::Create(host_impl.active_tree(), 1); | 88 LayerImpl::Create(host_impl.active_tree(), 1); |
86 | 89 |
87 scoped_ptr<LayerImpl> owning_layer = | 90 scoped_ptr<LayerImpl> owning_layer = |
88 LayerImpl::Create(host_impl.active_tree(), 2); | 91 LayerImpl::Create(host_impl.active_tree(), 2); |
89 owning_layer->CreateRenderSurface(); | 92 owning_layer->CreateRenderSurface(); |
90 ASSERT_TRUE(owning_layer->render_surface()); | 93 ASSERT_TRUE(owning_layer->render_surface()); |
91 owning_layer->draw_properties().render_target = owning_layer.get(); | 94 owning_layer->draw_properties().render_target = owning_layer.get(); |
92 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); | 95 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); |
93 | 96 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const ScopedPtrVector<RenderPass>& RenderPasses() const { | 139 const ScopedPtrVector<RenderPass>& RenderPasses() const { |
137 return render_passes_; | 140 return render_passes_; |
138 } | 141 } |
139 | 142 |
140 private: | 143 private: |
141 ScopedPtrVector<RenderPass> render_passes_; | 144 ScopedPtrVector<RenderPass> render_passes_; |
142 }; | 145 }; |
143 | 146 |
144 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { | 147 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { |
145 FakeImplProxy proxy; | 148 FakeImplProxy proxy; |
146 FakeLayerTreeHostImpl host_impl(&proxy); | 149 TestSharedBitmapManager shared_bitmap_manager; |
| 150 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
147 scoped_ptr<LayerImpl> root_layer = | 151 scoped_ptr<LayerImpl> root_layer = |
148 LayerImpl::Create(host_impl.active_tree(), 1); | 152 LayerImpl::Create(host_impl.active_tree(), 1); |
149 | 153 |
150 scoped_ptr<LayerImpl> owning_layer = | 154 scoped_ptr<LayerImpl> owning_layer = |
151 LayerImpl::Create(host_impl.active_tree(), 2); | 155 LayerImpl::Create(host_impl.active_tree(), 2); |
152 owning_layer->CreateRenderSurface(); | 156 owning_layer->CreateRenderSurface(); |
153 ASSERT_TRUE(owning_layer->render_surface()); | 157 ASSERT_TRUE(owning_layer->render_surface()); |
154 owning_layer->draw_properties().render_target = owning_layer.get(); | 158 owning_layer->draw_properties().render_target = owning_layer.get(); |
155 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); | 159 RenderSurfaceImpl* render_surface = owning_layer->render_surface(); |
156 | 160 |
(...skipping 13 matching lines...) Expand all Loading... |
170 ASSERT_EQ(1u, pass_sink.RenderPasses().size()); | 174 ASSERT_EQ(1u, pass_sink.RenderPasses().size()); |
171 RenderPass* pass = pass_sink.RenderPasses()[0]; | 175 RenderPass* pass = pass_sink.RenderPasses()[0]; |
172 | 176 |
173 EXPECT_EQ(RenderPass::Id(2, 0), pass->id); | 177 EXPECT_EQ(RenderPass::Id(2, 0), pass->id); |
174 EXPECT_RECT_EQ(content_rect, pass->output_rect); | 178 EXPECT_RECT_EQ(content_rect, pass->output_rect); |
175 EXPECT_EQ(origin, pass->transform_to_root_target); | 179 EXPECT_EQ(origin, pass->transform_to_root_target); |
176 } | 180 } |
177 | 181 |
178 } // namespace | 182 } // namespace |
179 } // namespace cc | 183 } // namespace cc |
OLD | NEW |