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" | |
8 #include "cc/layers/render_surface_impl.h" | 7 #include "cc/layers/render_surface_impl.h" |
9 #include "cc/quads/shared_quad_state.h" | 8 #include "cc/quads/shared_quad_state.h" |
10 #include "cc/test/fake_compositor_frame_sink.h" | 9 #include "cc/test/fake_compositor_frame_sink.h" |
11 #include "cc/test/fake_impl_task_runner_provider.h" | 10 #include "cc/test/fake_impl_task_runner_provider.h" |
12 #include "cc/test/fake_layer_tree_host_impl.h" | 11 #include "cc/test/fake_layer_tree_host_impl.h" |
13 #include "cc/test/geometry_test_utils.h" | 12 #include "cc/test/geometry_test_utils.h" |
14 #include "cc/test/mock_occlusion_tracker.h" | 13 #include "cc/test/mock_occlusion_tracker.h" |
15 #include "cc/test/test_task_graph_runner.h" | 14 #include "cc/test/test_task_graph_runner.h" |
16 #include "cc/trees/layer_tree_impl.h" | 15 #include "cc/trees/layer_tree_impl.h" |
17 #include "cc/trees/single_thread_proxy.h" | 16 #include "cc/trees/single_thread_proxy.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
145 shared_quad_state->quad_to_target_transform.matrix().getDouble(0, 3)); | 144 shared_quad_state->quad_to_target_transform.matrix().getDouble(0, 3)); |
146 EXPECT_EQ( | 145 EXPECT_EQ( |
147 40.0, | 146 40.0, |
148 shared_quad_state->quad_to_target_transform.matrix().getDouble(1, 3)); | 147 shared_quad_state->quad_to_target_transform.matrix().getDouble(1, 3)); |
149 EXPECT_EQ(content_rect, | 148 EXPECT_EQ(content_rect, |
150 gfx::Rect(shared_quad_state->visible_quad_layer_rect)); | 149 gfx::Rect(shared_quad_state->visible_quad_layer_rect)); |
151 EXPECT_EQ(1.f, shared_quad_state->opacity); | 150 EXPECT_EQ(1.f, shared_quad_state->opacity); |
152 EXPECT_EQ(blend_mode, shared_quad_state->blend_mode); | 151 EXPECT_EQ(blend_mode, shared_quad_state->blend_mode); |
153 } | 152 } |
154 | 153 |
155 class TestRenderPassSink : public RenderPassSink { | |
156 public: | |
157 void AppendRenderPass(std::unique_ptr<RenderPass> render_pass) override { | |
158 render_passes_.push_back(std::move(render_pass)); | |
159 } | |
160 | |
161 const RenderPassList& RenderPasses() const { | |
162 return render_passes_; | |
163 } | |
164 | |
165 private: | |
166 RenderPassList render_passes_; | |
167 }; | |
168 | 154 |
169 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { | 155 TEST(RenderSurfaceTest, SanityCheckSurfaceCreatesCorrectRenderPass) { |
170 FakeImplTaskRunnerProvider task_runner_provider; | 156 FakeImplTaskRunnerProvider task_runner_provider; |
171 TestTaskGraphRunner task_graph_runner; | 157 TestTaskGraphRunner task_graph_runner; |
172 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = | 158 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
173 FakeCompositorFrameSink::Create3d(); | 159 FakeCompositorFrameSink::Create3d(); |
174 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); | 160 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); |
175 std::unique_ptr<LayerImpl> root_layer = | 161 std::unique_ptr<LayerImpl> root_layer = |
176 LayerImpl::Create(host_impl.active_tree(), 1); | 162 LayerImpl::Create(host_impl.active_tree(), 1); |
177 | 163 |
(...skipping 14 matching lines...) Expand all Loading... | |
192 RenderSurfaceImpl* render_surface = | 178 RenderSurfaceImpl* render_surface = |
193 host_impl.active_tree()->LayerById(owning_layer_id)->GetRenderSurface(); | 179 host_impl.active_tree()->LayerById(owning_layer_id)->GetRenderSurface(); |
194 | 180 |
195 gfx::Rect content_rect(0, 0, 50, 50); | 181 gfx::Rect content_rect(0, 0, 50, 50); |
196 gfx::Transform origin; | 182 gfx::Transform origin; |
197 origin.Translate(30.0, 40.0); | 183 origin.Translate(30.0, 40.0); |
198 | 184 |
199 render_surface->SetScreenSpaceTransform(origin); | 185 render_surface->SetScreenSpaceTransform(origin); |
200 render_surface->SetContentRectForTesting(content_rect); | 186 render_surface->SetContentRectForTesting(content_rect); |
201 | 187 |
202 TestRenderPassSink pass_sink; | 188 RenderPassList render_passes; |
danakj
2017/03/15 15:22:16
you don't need this list, just
auto pass = render
| |
203 | 189 |
204 render_surface->AppendRenderPasses(&pass_sink); | 190 render_passes.push_back(render_surface->CreateRenderPass()); |
205 | 191 |
206 ASSERT_EQ(1u, pass_sink.RenderPasses().size()); | 192 RenderPass* pass = render_passes[0].get(); |
207 RenderPass* pass = pass_sink.RenderPasses()[0].get(); | |
208 | 193 |
209 EXPECT_EQ(2, pass->id); | 194 EXPECT_EQ(2, pass->id); |
210 EXPECT_EQ(content_rect, pass->output_rect); | 195 EXPECT_EQ(content_rect, pass->output_rect); |
211 EXPECT_EQ(origin, pass->transform_to_root_target); | 196 EXPECT_EQ(origin, pass->transform_to_root_target); |
212 } | 197 } |
213 | 198 |
214 } // namespace | 199 } // namespace |
215 } // namespace cc | 200 } // namespace cc |
OLD | NEW |