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

Side by Side Diff: cc/delegated_renderer_layer_impl_unittest.cc

Issue 11413106: cc: Make RenderPass into a struct-like class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/direct_renderer.cc » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/delegated_renderer_layer_impl.h" 5 #include "cc/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/append_quads_data.h" 7 #include "cc/append_quads_data.h"
8 #include "cc/layer_tree_host_impl.h" 8 #include "cc/layer_tree_host_impl.h"
9 #include "cc/quad_sink.h" 9 #include "cc/quad_sink.h"
10 #include "cc/render_pass_draw_quad.h" 10 #include "cc/render_pass_draw_quad.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>(); 61 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>();
62 } 62 }
63 63
64 FakeProxy m_proxy; 64 FakeProxy m_proxy;
65 DebugScopedSetImplThreadAndMainThreadBlocked m_alwaysImplThreadAndMainThread Blocked; 65 DebugScopedSetImplThreadAndMainThreadBlocked m_alwaysImplThreadAndMainThread Blocked;
66 scoped_ptr<LayerTreeHostImpl> m_hostImpl; 66 scoped_ptr<LayerTreeHostImpl> m_hostImpl;
67 }; 67 };
68 68
69 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend erPass::Id id, gfx::Rect outputRect, WebTransformationMatrix rootTransform) 69 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend erPass::Id id, gfx::Rect outputRect, WebTransformationMatrix rootTransform)
70 { 70 {
71 scoped_ptr<TestRenderPass> pass(TestRenderPass::create(id, outputRect, rootT ransform)); 71 scoped_ptr<TestRenderPass> pass(TestRenderPass::Create());
72 pass->SetNew(id, outputRect, outputRect, rootTransform);
72 TestRenderPass* saved = pass.get(); 73 TestRenderPass* saved = pass.get();
73 passList.append(pass.PassAs<RenderPass>()); 74 passList.append(pass.PassAs<RenderPass>());
74 return saved; 75 return saved;
75 } 76 }
76 77
77 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, gfx::Rect rect, SkColor color) 78 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, gfx::Rect rect, SkColor color)
78 { 79 {
79 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList()); 80 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list);
80 AppendQuadsData data(pass->id()); 81 AppendQuadsData data(pass->id);
81 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: Create()); 82 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: Create());
82 sharedState->SetAll(WebTransformationMatrix(), rect, rect, 1); 83 sharedState->SetAll(WebTransformationMatrix(), rect, rect, 1);
83 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); 84 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
84 quad->SetNew(sharedState, rect, color); 85 quad->SetNew(sharedState, rect, color);
85 SolidColorDrawQuad* quadPtr = quad.get(); 86 SolidColorDrawQuad* quadPtr = quad.get();
86 quadSink.append(quad.PassAs<DrawQuad>(), data); 87 quadSink.append(quad.PassAs<DrawQuad>(), data);
87 return quadPtr; 88 return quadPtr;
88 } 89 }
89 90
90 static void addRenderPassQuad(TestRenderPass* toPass, TestRenderPass* contributi ngPass) 91 static void addRenderPassQuad(TestRenderPass* toPass, TestRenderPass* contributi ngPass)
91 { 92 {
92 MockQuadCuller quadSink(toPass->quadList(), toPass->sharedQuadStateList()); 93 MockQuadCuller quadSink(toPass->quad_list, toPass->shared_quad_state_list);
93 AppendQuadsData data(toPass->id()); 94 AppendQuadsData data(toPass->id);
94 gfx::Rect outputRect = contributingPass->outputRect(); 95 gfx::Rect outputRect = contributingPass->output_rect;
95 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: Create()); 96 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState:: Create());
96 sharedState->SetAll(WebTransformationMatrix(), outputRect, outputRect, 1); 97 sharedState->SetAll(WebTransformationMatrix(), outputRect, outputRect, 1);
97 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); 98 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
98 quad->SetNew(sharedState, outputRect, contributingPass->id(), false, 0, outp utRect, 0, 0, 0, 0); 99 quad->SetNew(sharedState, outputRect, contributingPass->id, false, 0, output Rect, 0, 0, 0, 0);
99 quadSink.append(quad.PassAs<DrawQuad>(), data); 100 quadSink.append(quad.PassAs<DrawQuad>(), data);
100 } 101 }
101 102
102 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe st { 103 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe st {
103 public: 104 public:
104 DelegatedRendererLayerImplTestSimple() 105 DelegatedRendererLayerImplTestSimple()
105 : DelegatedRendererLayerImplTest() 106 : DelegatedRendererLayerImplTest()
106 { 107 {
107 scoped_ptr<LayerImpl> rootLayer = SolidColorLayerImpl::create(1).PassAs< LayerImpl>(); 108 scoped_ptr<LayerImpl> rootLayer = SolidColorLayerImpl::create(1).PassAs< LayerImpl>();
108 scoped_ptr<LayerImpl> layerBefore = SolidColorLayerImpl::create(2).PassA s<LayerImpl>(); 109 scoped_ptr<LayerImpl> layerBefore = SolidColorLayerImpl::create(2).PassA s<LayerImpl>();
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 { 172 {
172 LayerTreeHostImpl::FrameData frame; 173 LayerTreeHostImpl::FrameData frame;
173 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 174 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
174 m_hostImpl->drawLayers(frame); 175 m_hostImpl->drawLayers(frame);
175 m_hostImpl->didDrawAllLayers(frame); 176 m_hostImpl->didDrawAllLayers(frame);
176 177
177 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 178 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
178 ASSERT_EQ(5u, frame.renderPasses.size()); 179 ASSERT_EQ(5u, frame.renderPasses.size());
179 180
180 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 181 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
181 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 182 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id);
182 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 183 EXPECT_EQ(1, frame.renderPasses[1]->id.index);
183 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 184 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id);
184 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 185 EXPECT_EQ(2, frame.renderPasses[2]->id.index);
185 // And all other RenderPasses should be non-delegated. 186 // And all other RenderPasses should be non-delegated.
186 EXPECT_NE(4, frame.renderPasses[0]->id().layerId); 187 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id);
187 EXPECT_EQ(0, frame.renderPasses[0]->id().index); 188 EXPECT_EQ(0, frame.renderPasses[0]->id.index);
188 EXPECT_NE(4, frame.renderPasses[3]->id().layerId); 189 EXPECT_NE(4, frame.renderPasses[3]->id.layer_id);
189 EXPECT_EQ(0, frame.renderPasses[3]->id().index); 190 EXPECT_EQ(0, frame.renderPasses[3]->id.index);
190 EXPECT_NE(4, frame.renderPasses[4]->id().layerId); 191 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id);
191 EXPECT_EQ(0, frame.renderPasses[4]->id().index); 192 EXPECT_EQ(0, frame.renderPasses[4]->id.index);
192 193
193 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order. 194 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order.
194 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->outputRect()); 195 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->output_rect);
195 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->outputRect()); 196 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->output_rect);
196 } 197 }
197 198
198 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToContributingRenderPasses ) 199 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToContributingRenderPasses )
199 { 200 {
200 LayerTreeHostImpl::FrameData frame; 201 LayerTreeHostImpl::FrameData frame;
201 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 202 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
202 m_hostImpl->drawLayers(frame); 203 m_hostImpl->drawLayers(frame);
203 m_hostImpl->didDrawAllLayers(frame); 204 m_hostImpl->didDrawAllLayers(frame);
204 205
205 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 206 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
206 ASSERT_EQ(5u, frame.renderPasses.size()); 207 ASSERT_EQ(5u, frame.renderPasses.size());
207 208
208 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 209 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
209 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 210 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id);
210 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 211 EXPECT_EQ(1, frame.renderPasses[1]->id.index);
211 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 212 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id);
212 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 213 EXPECT_EQ(2, frame.renderPasses[2]->id.index);
213 214
214 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses. 215 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses.
215 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 216 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
216 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> rect); 217 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quad_list[0]->r ect);
217 218
218 // Verify it added the right quads. 219 // Verify it added the right quads.
219 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 220 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size());
220 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]-> rect); 221 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quad_list[0]->r ect);
221 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]-> rect); 222 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quad_list[1]->r ect);
222 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 223 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
223 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> rect); 224 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quad_list[0]->r ect);
224 } 225 }
225 226
226 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) 227 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass)
227 { 228 {
228 LayerTreeHostImpl::FrameData frame; 229 LayerTreeHostImpl::FrameData frame;
229 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 230 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
230 m_hostImpl->drawLayers(frame); 231 m_hostImpl->drawLayers(frame);
231 m_hostImpl->didDrawAllLayers(frame); 232 m_hostImpl->didDrawAllLayers(frame);
232 233
233 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 234 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
234 ASSERT_EQ(5u, frame.renderPasses.size()); 235 ASSERT_EQ(5u, frame.renderPasses.size());
235 236
236 // The layer's target is the RenderPass from m_layerAfter. 237 // The layer's target is the RenderPass from m_layerAfter.
237 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id()); 238 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id);
238 239
239 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass. 240 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass.
240 // The m_layerAfter also adds one quad. 241 // The m_layerAfter also adds one quad.
241 ASSERT_EQ(2u, frame.renderPasses[3]->quadList().size()); 242 ASSERT_EQ(2u, frame.renderPasses[3]->quad_list.size());
242 243
243 // Verify it added the right quads. 244 // Verify it added the right quads.
244 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]-> rect); 245 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quad_list[0]->r ect);
245 246
246 // Its target layer should have a quad as well. 247 // Its target layer should have a quad as well.
247 EXPECT_RECT_EQ(gfx::Rect(0, 0, 15, 15), frame.renderPasses[3]->quadList()[1] ->rect); 248 EXPECT_RECT_EQ(gfx::Rect(0, 0, 15, 15), frame.renderPasses[3]->quad_list[1]- >rect);
248 } 249 }
249 250
250 TEST_F(DelegatedRendererLayerImplTestSimple, QuadsFromRootRenderPassAreModifiedF orTheTarget) 251 TEST_F(DelegatedRendererLayerImplTestSimple, QuadsFromRootRenderPassAreModifiedF orTheTarget)
251 { 252 {
252 LayerTreeHostImpl::FrameData frame; 253 LayerTreeHostImpl::FrameData frame;
253 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 254 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
254 m_hostImpl->drawLayers(frame); 255 m_hostImpl->drawLayers(frame);
255 m_hostImpl->didDrawAllLayers(frame); 256 m_hostImpl->didDrawAllLayers(frame);
256 257
257 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes. 258 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes.
258 ASSERT_EQ(5u, frame.renderPasses.size()); 259 ASSERT_EQ(5u, frame.renderPasses.size());
259 260
260 // The DelegatedRendererLayer is at position 3,3 compared to its target, and has a translation transform of 1,1. 261 // The DelegatedRendererLayer is at position 3,3 compared to its target, and has a translation transform of 1,1.
261 // So its root RenderPass' quads should all be transformed by that combined amount. 262 // So its root RenderPass' quads should all be transformed by that combined amount.
262 WebTransformationMatrix transform; 263 WebTransformationMatrix transform;
263 transform.translate(4, 4); 264 transform.translate(4, 4);
264 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, frame.renderPasses[3]->quadList() [0]->quadTransform()); 265 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, frame.renderPasses[3]->quad_list[ 0]->quadTransform());
265 266
266 // Quads from non-root RenderPasses should not be shifted though. 267 // Quads from non-root RenderPasses should not be shifted though.
267 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 268 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size());
268 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quadList()[0]->quadTransform()); 269 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quad_list[0]->quadTransform());
269 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quadList()[1]->quadTransform()); 270 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quad_list[1]->quadTransform());
270 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 271 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
271 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[1]->quadList()[0]->quadTransform()); 272 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[1]->quad_list[0]->quadTransform());
272 } 273 }
273 274
274 class DelegatedRendererLayerImplTestOwnSurface : public DelegatedRendererLayerIm plTestSimple { 275 class DelegatedRendererLayerImplTestOwnSurface : public DelegatedRendererLayerIm plTestSimple {
275 public: 276 public:
276 DelegatedRendererLayerImplTestOwnSurface() 277 DelegatedRendererLayerImplTestOwnSurface()
277 : DelegatedRendererLayerImplTestSimple() 278 : DelegatedRendererLayerImplTestSimple()
278 { 279 {
279 m_delegatedRendererLayerPtr->setForceRenderSurface(true); 280 m_delegatedRendererLayerPtr->setForceRenderSurface(true);
280 } 281 }
281 }; 282 };
282 283
283 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) 284 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses)
284 { 285 {
285 LayerTreeHostImpl::FrameData frame; 286 LayerTreeHostImpl::FrameData frame;
286 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 287 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
287 m_hostImpl->drawLayers(frame); 288 m_hostImpl->drawLayers(frame);
288 m_hostImpl->didDrawAllLayers(frame); 289 m_hostImpl->didDrawAllLayers(frame);
289 290
290 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 291 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
291 ASSERT_EQ(6u, frame.renderPasses.size()); 292 ASSERT_EQ(6u, frame.renderPasses.size());
292 293
293 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 294 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
294 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 295 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id);
295 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 296 EXPECT_EQ(1, frame.renderPasses[1]->id.index);
296 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 297 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id);
297 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 298 EXPECT_EQ(2, frame.renderPasses[2]->id.index);
298 // The DelegatedRendererLayer should have added a RenderPass for its surface to the frame. 299 // The DelegatedRendererLayer should have added a RenderPass for its surface to the frame.
299 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 300 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id);
300 EXPECT_EQ(0, frame.renderPasses[3]->id().index); 301 EXPECT_EQ(0, frame.renderPasses[3]->id.index);
301 // And all other RenderPasses should be non-delegated. 302 // And all other RenderPasses should be non-delegated.
302 EXPECT_NE(4, frame.renderPasses[0]->id().layerId); 303 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id);
303 EXPECT_EQ(0, frame.renderPasses[0]->id().index); 304 EXPECT_EQ(0, frame.renderPasses[0]->id.index);
304 EXPECT_NE(4, frame.renderPasses[4]->id().layerId); 305 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id);
305 EXPECT_EQ(0, frame.renderPasses[4]->id().index); 306 EXPECT_EQ(0, frame.renderPasses[4]->id.index);
306 EXPECT_NE(4, frame.renderPasses[5]->id().layerId); 307 EXPECT_NE(4, frame.renderPasses[5]->id.layer_id);
307 EXPECT_EQ(0, frame.renderPasses[5]->id().index); 308 EXPECT_EQ(0, frame.renderPasses[5]->id.index);
308 309
309 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order. 310 // The DelegatedRendererLayer should have added its RenderPasses to the fram e in order.
310 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->outputRect()); 311 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->output_rect);
311 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->outputRect()); 312 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->output_rect);
312 } 313 }
313 314
314 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToContributingRenderPa sses) 315 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToContributingRenderPa sses)
315 { 316 {
316 LayerTreeHostImpl::FrameData frame; 317 LayerTreeHostImpl::FrameData frame;
317 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 318 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
318 m_hostImpl->drawLayers(frame); 319 m_hostImpl->drawLayers(frame);
319 m_hostImpl->didDrawAllLayers(frame); 320 m_hostImpl->didDrawAllLayers(frame);
320 321
321 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 322 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
322 ASSERT_EQ(6u, frame.renderPasses.size()); 323 ASSERT_EQ(6u, frame.renderPasses.size());
323 324
324 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame. 325 // The DelegatedRendererLayer should have added its contributing RenderPasse s to the frame.
325 EXPECT_EQ(4, frame.renderPasses[1]->id().layerId); 326 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id);
326 EXPECT_EQ(1, frame.renderPasses[1]->id().index); 327 EXPECT_EQ(1, frame.renderPasses[1]->id.index);
327 EXPECT_EQ(4, frame.renderPasses[2]->id().layerId); 328 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id);
328 EXPECT_EQ(2, frame.renderPasses[2]->id().index); 329 EXPECT_EQ(2, frame.renderPasses[2]->id.index);
329 330
330 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses. 331 // The DelegatedRendererLayer should have added copies of its quads to contr ibuting RenderPasses.
331 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 332 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
332 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> rect); 333 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quad_list[0]->r ect);
333 334
334 // Verify it added the right quads. 335 // Verify it added the right quads.
335 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 336 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size());
336 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quadList()[0]-> rect); 337 EXPECT_RECT_EQ(gfx::Rect(0, 0, 7, 7), frame.renderPasses[2]->quad_list[0]->r ect);
337 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quadList()[1]-> rect); 338 EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[2]->quad_list[1]->r ect);
338 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 339 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
339 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quadList()[0]-> rect); 340 EXPECT_RECT_EQ(gfx::Rect(0, 0, 6, 6), frame.renderPasses[1]->quad_list[0]->r ect);
340 } 341 }
341 342
342 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) 343 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass)
343 { 344 {
344 LayerTreeHostImpl::FrameData frame; 345 LayerTreeHostImpl::FrameData frame;
345 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 346 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
346 m_hostImpl->drawLayers(frame); 347 m_hostImpl->drawLayers(frame);
347 m_hostImpl->didDrawAllLayers(frame); 348 m_hostImpl->didDrawAllLayers(frame);
348 349
349 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 350 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
350 ASSERT_EQ(6u, frame.renderPasses.size()); 351 ASSERT_EQ(6u, frame.renderPasses.size());
351 352
352 // The layer's target is the RenderPass owned by itself. 353 // The layer's target is the RenderPass owned by itself.
353 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id()); 354 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id);
354 355
355 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass. 356 // The DelegatedRendererLayer should have added copies of quads in its root RenderPass to its target RenderPass.
356 // The m_layerAfter also adds one quad. 357 // The m_layerAfter also adds one quad.
357 ASSERT_EQ(1u, frame.renderPasses[3]->quadList().size()); 358 ASSERT_EQ(1u, frame.renderPasses[3]->quad_list.size());
358 359
359 // Verify it added the right quads. 360 // Verify it added the right quads.
360 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quadList()[0]-> rect); 361 EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[3]->quad_list[0]->r ect);
361 } 362 }
362 363
363 TEST_F(DelegatedRendererLayerImplTestOwnSurface, QuadsFromRootRenderPassAreNotMo difiedForTheTarget) 364 TEST_F(DelegatedRendererLayerImplTestOwnSurface, QuadsFromRootRenderPassAreNotMo difiedForTheTarget)
364 { 365 {
365 LayerTreeHostImpl::FrameData frame; 366 LayerTreeHostImpl::FrameData frame;
366 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 367 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
367 m_hostImpl->drawLayers(frame); 368 m_hostImpl->drawLayers(frame);
368 m_hostImpl->didDrawAllLayers(frame); 369 m_hostImpl->didDrawAllLayers(frame);
369 370
370 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass. 371 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender erLayer added two contributing passes and its owned surface added one pass.
371 ASSERT_EQ(6u, frame.renderPasses.size()); 372 ASSERT_EQ(6u, frame.renderPasses.size());
372 373
373 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root Ren derPass' quads do not need to be 374 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root Ren derPass' quads do not need to be
374 // modified at all. 375 // modified at all.
375 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[3]->quadList()[0]->quadTransform()); 376 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[3]->quad_list[0]->quadTransform());
376 377
377 // Quads from non-root RenderPasses should not be shifted though. 378 // Quads from non-root RenderPasses should not be shifted though.
378 ASSERT_EQ(2u, frame.renderPasses[2]->quadList().size()); 379 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size());
379 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quadList()[0]->quadTransform()); 380 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quad_list[0]->quadTransform());
380 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quadList()[1]->quadTransform()); 381 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[2]->quad_list[1]->quadTransform());
381 ASSERT_EQ(1u, frame.renderPasses[1]->quadList().size()); 382 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size());
382 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[1]->quadList()[0]->quadTransform()); 383 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse s[1]->quad_list[0]->quadTransform());
383 } 384 }
384 385
385 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm plTest { 386 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm plTest {
386 public: 387 public:
387 DelegatedRendererLayerImplTestSharedData() 388 DelegatedRendererLayerImplTestSharedData()
388 : DelegatedRendererLayerImplTest() 389 : DelegatedRendererLayerImplTest()
389 { 390 {
390 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1); 391 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1);
391 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(2); 392 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate dRendererLayerImpl::create(2);
392 393
393 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); 394 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
394 rootLayer->setBounds(gfx::Size(100, 100)); 395 rootLayer->setBounds(gfx::Size(100, 100));
395 396
396 delegatedRendererLayer->setPosition(gfx::Point(20, 20)); 397 delegatedRendererLayer->setPosition(gfx::Point(20, 20));
397 delegatedRendererLayer->setBounds(gfx::Size(20, 20)); 398 delegatedRendererLayer->setBounds(gfx::Size(20, 20));
398 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20)); 399 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20));
399 delegatedRendererLayer->setDrawsContent(true); 400 delegatedRendererLayer->setDrawsContent(true);
400 WebTransformationMatrix transform; 401 WebTransformationMatrix transform;
401 transform.translate(10, 10); 402 transform.translate(10, 10);
402 delegatedRendererLayer->setTransform(transform); 403 delegatedRendererLayer->setTransform(transform);
403 404
404 ScopedPtrVector<RenderPass> delegatedRenderPasses; 405 ScopedPtrVector<RenderPass> delegatedRenderPasses;
405 gfx::Rect passRect(0, 0, 50, 50); 406 gfx::Rect passRect(0, 0, 50, 50);
406 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass:: Id(9, 6), passRect, WebTransformationMatrix()); 407 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass:: Id(9, 6), passRect, WebTransformationMatrix());
407 MockQuadCuller quadSink(pass->quadList(), pass->sharedQuadStateList()); 408 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list);
408 AppendQuadsData data(pass->id()); 409 AppendQuadsData data(pass->id);
409 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta te::Create()); 410 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta te::Create());
410 sharedState->SetAll(WebTransformationMatrix(), passRect, passRect, 1); 411 sharedState->SetAll(WebTransformationMatrix(), passRect, passRect, 1);
411 scoped_ptr<SolidColorDrawQuad> colorQuad; 412 scoped_ptr<SolidColorDrawQuad> colorQuad;
412 413
413 colorQuad = SolidColorDrawQuad::Create(); 414 colorQuad = SolidColorDrawQuad::Create();
414 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u); 415 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u);
415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); 416 quadSink.append(colorQuad.PassAs<DrawQuad>(), data);
416 417
417 colorQuad = SolidColorDrawQuad::Create(); 418 colorQuad = SolidColorDrawQuad::Create();
418 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u); 419 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u);
(...skipping 26 matching lines...) Expand all
445 }; 446 };
446 447
447 TEST_F(DelegatedRendererLayerImplTestSharedData, SharedData) 448 TEST_F(DelegatedRendererLayerImplTestSharedData, SharedData)
448 { 449 {
449 LayerTreeHostImpl::FrameData frame; 450 LayerTreeHostImpl::FrameData frame;
450 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); 451 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame));
451 m_hostImpl->drawLayers(frame); 452 m_hostImpl->drawLayers(frame);
452 m_hostImpl->didDrawAllLayers(frame); 453 m_hostImpl->didDrawAllLayers(frame);
453 454
454 ASSERT_EQ(1u, frame.renderPasses.size()); 455 ASSERT_EQ(1u, frame.renderPasses.size());
455 EXPECT_EQ(1, frame.renderPasses[0]->id().layerId); 456 EXPECT_EQ(1, frame.renderPasses[0]->id.layer_id);
456 EXPECT_EQ(0, frame.renderPasses[0]->id().index); 457 EXPECT_EQ(0, frame.renderPasses[0]->id.index);
457 458
458 const QuadList& quadList = frame.renderPasses[0]->quadList(); 459 const QuadList& quadList = frame.renderPasses[0]->quad_list;
459 ASSERT_EQ(4u, quadList.size()); 460 ASSERT_EQ(4u, quadList.size());
460 461
461 // All quads should share the same state. 462 // All quads should share the same state.
462 const SharedQuadState* sharedState = quadList[0]->shared_quad_state; 463 const SharedQuadState* sharedState = quadList[0]->shared_quad_state;
463 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); 464 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state);
464 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); 465 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state);
465 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); 466 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state);
466 467
467 // The state should be transformed only once. 468 // The state should be transformed only once.
468 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clipped_rect_in_targe t); 469 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clipped_rect_in_targe t);
469 WebTransformationMatrix expected; 470 WebTransformationMatrix expected;
470 expected.translate(30, 30); 471 expected.translate(30, 30);
471 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra nsform); 472 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra nsform);
472 } 473 }
473 474
474 } // namespace 475 } // namespace
475 } // namespace cc 476 } // namespace cc
OLDNEW
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/direct_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698