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

Side by Side Diff: cc/layers/delegated_renderer_layer_impl_unittest.cc

Issue 279013002: Remove CompositeAndReadback from LayerTreeHost(Impl) and the Proxys. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-cnr-lth-proxy-renderer: rebase-on-drawresult Created 6 years, 7 months 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 | « no previous file | cc/output/delegating_renderer.h » ('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/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/layers/quad_sink.h" 8 #include "cc/layers/quad_sink.h"
9 #include "cc/layers/solid_color_layer_impl.h" 9 #include "cc/layers/solid_color_layer_impl.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 133
134 protected: 134 protected:
135 LayerImpl* root_layer_; 135 LayerImpl* root_layer_;
136 LayerImpl* layer_before_; 136 LayerImpl* layer_before_;
137 LayerImpl* layer_after_; 137 LayerImpl* layer_after_;
138 DelegatedRendererLayerImpl* delegated_renderer_layer_; 138 DelegatedRendererLayerImpl* delegated_renderer_layer_;
139 }; 139 };
140 140
141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
142 LayerTreeHostImpl::FrameData frame; 142 LayerTreeHostImpl::FrameData frame;
143 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 143 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
144 144
145 // Each non-DelegatedRendererLayer added one RenderPass. The 145 // Each non-DelegatedRendererLayer added one RenderPass. The
146 // DelegatedRendererLayer added two contributing passes. 146 // DelegatedRendererLayer added two contributing passes.
147 ASSERT_EQ(5u, frame.render_passes.size()); 147 ASSERT_EQ(5u, frame.render_passes.size());
148 148
149 // The DelegatedRendererLayer should have added its contributing RenderPasses 149 // The DelegatedRendererLayer should have added its contributing RenderPasses
150 // to the frame. 150 // to the frame.
151 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 151 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
152 EXPECT_EQ(1, frame.render_passes[1]->id.index); 152 EXPECT_EQ(1, frame.render_passes[1]->id.index);
153 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 153 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 13 matching lines...) Expand all
167 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 167 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
168 frame.render_passes[2]->output_rect.ToString()); 168 frame.render_passes[2]->output_rect.ToString());
169 169
170 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 170 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
171 host_impl_->DidDrawAllLayers(frame); 171 host_impl_->DidDrawAllLayers(frame);
172 } 172 }
173 173
174 TEST_F(DelegatedRendererLayerImplTestSimple, 174 TEST_F(DelegatedRendererLayerImplTestSimple,
175 AddsQuadsToContributingRenderPasses) { 175 AddsQuadsToContributingRenderPasses) {
176 LayerTreeHostImpl::FrameData frame; 176 LayerTreeHostImpl::FrameData frame;
177 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 177 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
178 178
179 // Each non-DelegatedRendererLayer added one RenderPass. The 179 // Each non-DelegatedRendererLayer added one RenderPass. The
180 // DelegatedRendererLayer added two contributing passes. 180 // DelegatedRendererLayer added two contributing passes.
181 ASSERT_EQ(5u, frame.render_passes.size()); 181 ASSERT_EQ(5u, frame.render_passes.size());
182 182
183 // The DelegatedRendererLayer should have added its contributing RenderPasses 183 // The DelegatedRendererLayer should have added its contributing RenderPasses
184 // to the frame. 184 // to the frame.
185 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 185 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
186 EXPECT_EQ(1, frame.render_passes[1]->id.index); 186 EXPECT_EQ(1, frame.render_passes[1]->id.index);
187 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 187 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 14 matching lines...) Expand all
202 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 202 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
203 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 203 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
204 frame.render_passes[1]->quad_list[0]->rect.ToString()); 204 frame.render_passes[1]->quad_list[0]->rect.ToString());
205 205
206 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 206 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
207 host_impl_->DidDrawAllLayers(frame); 207 host_impl_->DidDrawAllLayers(frame);
208 } 208 }
209 209
210 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 210 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
211 LayerTreeHostImpl::FrameData frame; 211 LayerTreeHostImpl::FrameData frame;
212 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 212 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
213 213
214 // Each non-DelegatedRendererLayer added one RenderPass. The 214 // Each non-DelegatedRendererLayer added one RenderPass. The
215 // DelegatedRendererLayer added two contributing passes. 215 // DelegatedRendererLayer added two contributing passes.
216 ASSERT_EQ(5u, frame.render_passes.size()); 216 ASSERT_EQ(5u, frame.render_passes.size());
217 217
218 // The layer's target is the RenderPass from layer_after_. 218 // The layer's target is the RenderPass from layer_after_.
219 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 219 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
220 220
221 // The DelegatedRendererLayer should have added copies of quads in its root 221 // The DelegatedRendererLayer should have added copies of quads in its root
222 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 222 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
223 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 223 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
224 224
225 // Verify it added the right quads. 225 // Verify it added the right quads.
226 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 226 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
227 frame.render_passes[3]->quad_list[0]->rect.ToString()); 227 frame.render_passes[3]->quad_list[0]->rect.ToString());
228 228
229 // Its target layer should have a quad as well. 229 // Its target layer should have a quad as well.
230 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 230 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
231 frame.render_passes[3]->quad_list[1]->rect.ToString()); 231 frame.render_passes[3]->quad_list[1]->rect.ToString());
232 232
233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
234 host_impl_->DidDrawAllLayers(frame); 234 host_impl_->DidDrawAllLayers(frame);
235 } 235 }
236 236
237 TEST_F(DelegatedRendererLayerImplTestSimple, 237 TEST_F(DelegatedRendererLayerImplTestSimple,
238 QuadsFromRootRenderPassAreModifiedForTheTarget) { 238 QuadsFromRootRenderPassAreModifiedForTheTarget) {
239 LayerTreeHostImpl::FrameData frame; 239 LayerTreeHostImpl::FrameData frame;
240 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 240 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
241 241
242 // Each non-DelegatedRendererLayer added one RenderPass. The 242 // Each non-DelegatedRendererLayer added one RenderPass. The
243 // DelegatedRendererLayer added two contributing passes. 243 // DelegatedRendererLayer added two contributing passes.
244 ASSERT_EQ(5u, frame.render_passes.size()); 244 ASSERT_EQ(5u, frame.render_passes.size());
245 245
246 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 246 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
247 // has a translation transform of 1,1. So its root RenderPass' quads should 247 // has a translation transform of 1,1. So its root RenderPass' quads should
248 // all be transformed by that combined amount. 248 // all be transformed by that combined amount.
249 // The DelegatedRendererLayer has a size of 10x10, but the root delegated 249 // The DelegatedRendererLayer has a size of 10x10, but the root delegated
250 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. 250 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8.
(...skipping 12 matching lines...) Expand all
263 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 263 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
264 EXPECT_TRANSFORMATION_MATRIX_EQ( 264 EXPECT_TRANSFORMATION_MATRIX_EQ(
265 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 265 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
266 266
267 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 267 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
268 host_impl_->DidDrawAllLayers(frame); 268 host_impl_->DidDrawAllLayers(frame);
269 } 269 }
270 270
271 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 271 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
272 LayerTreeHostImpl::FrameData frame; 272 LayerTreeHostImpl::FrameData frame;
273 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 273 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
274 274
275 // The delegated layer has a surface between it and the root. 275 // The delegated layer has a surface between it and the root.
276 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 276 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
277 277
278 // Each non-DelegatedRendererLayer added one RenderPass. The 278 // Each non-DelegatedRendererLayer added one RenderPass. The
279 // DelegatedRendererLayer added two contributing passes. 279 // DelegatedRendererLayer added two contributing passes.
280 ASSERT_EQ(5u, frame.render_passes.size()); 280 ASSERT_EQ(5u, frame.render_passes.size());
281 281
282 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all 282 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all
283 // render pass' transforms to the root should be shifted by this amount. 283 // render pass' transforms to the root should be shifted by this amount.
(...skipping 15 matching lines...) Expand all
299 EXPECT_TRANSFORMATION_MATRIX_EQ( 299 EXPECT_TRANSFORMATION_MATRIX_EQ(
300 transform * seven_eight, 300 transform * seven_eight,
301 frame.render_passes[2]->transform_to_root_target); 301 frame.render_passes[2]->transform_to_root_target);
302 302
303 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 303 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
304 host_impl_->DidDrawAllLayers(frame); 304 host_impl_->DidDrawAllLayers(frame);
305 } 305 }
306 306
307 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 307 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
308 LayerTreeHostImpl::FrameData frame; 308 LayerTreeHostImpl::FrameData frame;
309 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 309 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
310 310
311 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 311 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
312 // has no need to be a RenderSurface for the quads it carries. 312 // has no need to be a RenderSurface for the quads it carries.
313 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 313 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
314 314
315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
316 host_impl_->DidDrawAllLayers(frame); 316 host_impl_->DidDrawAllLayers(frame);
317 } 317 }
318 318
319 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 319 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
320 delegated_renderer_layer_->SetOpacity(0.5f); 320 delegated_renderer_layer_->SetOpacity(0.5f);
321 321
322 LayerTreeHostImpl::FrameData frame; 322 LayerTreeHostImpl::FrameData frame;
323 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 323 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
324 324
325 // This test case has quads from multiple layers in the delegated renderer, so 325 // This test case has quads from multiple layers in the delegated renderer, so
326 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 326 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
327 // render surface. 327 // render surface.
328 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 328 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
329 329
330 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 330 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
331 host_impl_->DidDrawAllLayers(frame); 331 host_impl_->DidDrawAllLayers(frame);
332 } 332 }
333 333
334 TEST_F(DelegatedRendererLayerImplTestSimple, 334 TEST_F(DelegatedRendererLayerImplTestSimple,
335 DoesOwnARenderSurfaceForTransform) { 335 DoesOwnARenderSurfaceForTransform) {
336 gfx::Transform rotation; 336 gfx::Transform rotation;
337 rotation.RotateAboutZAxis(30.0); 337 rotation.RotateAboutZAxis(30.0);
338 delegated_renderer_layer_->SetTransform(rotation); 338 delegated_renderer_layer_->SetTransform(rotation);
339 339
340 LayerTreeHostImpl::FrameData frame; 340 LayerTreeHostImpl::FrameData frame;
341 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 341 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
342 342
343 // This test case has quads from multiple layers in the delegated renderer, so 343 // This test case has quads from multiple layers in the delegated renderer, so
344 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 344 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
345 // render surface. 345 // render surface.
346 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 346 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
347 347
348 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 348 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
349 host_impl_->DidDrawAllLayers(frame); 349 host_impl_->DidDrawAllLayers(frame);
350 } 350 }
351 351
352 class DelegatedRendererLayerImplTestOwnSurface 352 class DelegatedRendererLayerImplTestOwnSurface
353 : public DelegatedRendererLayerImplTestSimple { 353 : public DelegatedRendererLayerImplTestSimple {
354 public: 354 public:
355 DelegatedRendererLayerImplTestOwnSurface() 355 DelegatedRendererLayerImplTestOwnSurface()
356 : DelegatedRendererLayerImplTestSimple() { 356 : DelegatedRendererLayerImplTestSimple() {
357 delegated_renderer_layer_->SetForceRenderSurface(true); 357 delegated_renderer_layer_->SetForceRenderSurface(true);
358 } 358 }
359 }; 359 };
360 360
361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
362 LayerTreeHostImpl::FrameData frame; 362 LayerTreeHostImpl::FrameData frame;
363 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 363 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
364 364
365 // Each non-DelegatedRendererLayer added one RenderPass. The 365 // Each non-DelegatedRendererLayer added one RenderPass. The
366 // DelegatedRendererLayer added two contributing passes and its owned surface 366 // DelegatedRendererLayer added two contributing passes and its owned surface
367 // added one pass. 367 // added one pass.
368 ASSERT_EQ(6u, frame.render_passes.size()); 368 ASSERT_EQ(6u, frame.render_passes.size());
369 369
370 // The DelegatedRendererLayer should have added its contributing RenderPasses 370 // The DelegatedRendererLayer should have added its contributing RenderPasses
371 // to the frame. 371 // to the frame.
372 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 372 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
373 EXPECT_EQ(1, frame.render_passes[1]->id.index); 373 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 18 matching lines...) Expand all
392 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 392 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
393 frame.render_passes[2]->output_rect.ToString()); 393 frame.render_passes[2]->output_rect.ToString());
394 394
395 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 395 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
396 host_impl_->DidDrawAllLayers(frame); 396 host_impl_->DidDrawAllLayers(frame);
397 } 397 }
398 398
399 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 399 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
400 AddsQuadsToContributingRenderPasses) { 400 AddsQuadsToContributingRenderPasses) {
401 LayerTreeHostImpl::FrameData frame; 401 LayerTreeHostImpl::FrameData frame;
402 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 402 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
403 403
404 // Each non-DelegatedRendererLayer added one RenderPass. The 404 // Each non-DelegatedRendererLayer added one RenderPass. The
405 // DelegatedRendererLayer added two contributing passes and its owned surface 405 // DelegatedRendererLayer added two contributing passes and its owned surface
406 // added one pass. 406 // added one pass.
407 ASSERT_EQ(6u, frame.render_passes.size()); 407 ASSERT_EQ(6u, frame.render_passes.size());
408 408
409 // The DelegatedRendererLayer should have added its contributing RenderPasses 409 // The DelegatedRendererLayer should have added its contributing RenderPasses
410 // to the frame. 410 // to the frame.
411 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 411 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
412 EXPECT_EQ(1, frame.render_passes[1]->id.index); 412 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 15 matching lines...) Expand all
428 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 428 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
429 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 429 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
430 frame.render_passes[1]->quad_list[0]->rect.ToString()); 430 frame.render_passes[1]->quad_list[0]->rect.ToString());
431 431
432 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 432 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
433 host_impl_->DidDrawAllLayers(frame); 433 host_impl_->DidDrawAllLayers(frame);
434 } 434 }
435 435
436 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 436 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
437 LayerTreeHostImpl::FrameData frame; 437 LayerTreeHostImpl::FrameData frame;
438 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 438 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
439 439
440 // Each non-DelegatedRendererLayer added one RenderPass. The 440 // Each non-DelegatedRendererLayer added one RenderPass. The
441 // DelegatedRendererLayer added two contributing passes and its owned surface 441 // DelegatedRendererLayer added two contributing passes and its owned surface
442 // added one pass. 442 // added one pass.
443 ASSERT_EQ(6u, frame.render_passes.size()); 443 ASSERT_EQ(6u, frame.render_passes.size());
444 444
445 // The layer's target is the RenderPass owned by itself. 445 // The layer's target is the RenderPass owned by itself.
446 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 446 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
447 447
448 // The DelegatedRendererLayer should have added copies of quads in its root 448 // The DelegatedRendererLayer should have added copies of quads in its root
449 // RenderPass to its target RenderPass. 449 // RenderPass to its target RenderPass.
450 // The layer_after also adds one quad. 450 // The layer_after also adds one quad.
451 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 451 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
452 452
453 // Verify it added the right quads. 453 // Verify it added the right quads.
454 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 454 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
455 frame.render_passes[3]->quad_list[0]->rect.ToString()); 455 frame.render_passes[3]->quad_list[0]->rect.ToString());
456 456
457 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 457 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
458 host_impl_->DidDrawAllLayers(frame); 458 host_impl_->DidDrawAllLayers(frame);
459 } 459 }
460 460
461 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 461 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
462 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 462 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
463 LayerTreeHostImpl::FrameData frame; 463 LayerTreeHostImpl::FrameData frame;
464 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 464 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
465 465
466 // Each non-DelegatedRendererLayer added one RenderPass. The 466 // Each non-DelegatedRendererLayer added one RenderPass. The
467 // DelegatedRendererLayer added two contributing passes and its owned surface 467 // DelegatedRendererLayer added two contributing passes and its owned surface
468 // added one pass. 468 // added one pass.
469 ASSERT_EQ(6u, frame.render_passes.size()); 469 ASSERT_EQ(6u, frame.render_passes.size());
470 470
471 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 471 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
472 // RenderPass' quads do not need to be translated at all. However, they are 472 // RenderPass' quads do not need to be translated at all. However, they are
473 // scaled from the frame's size (8x8) to the layer's bounds (10x10). 473 // scaled from the frame's size (8x8) to the layer's bounds (10x10).
474 gfx::Transform transform; 474 gfx::Transform transform;
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 LayerImpl* root_layer_; 687 LayerImpl* root_layer_;
688 DelegatedRendererLayerImpl* delegated_renderer_layer_; 688 DelegatedRendererLayerImpl* delegated_renderer_layer_;
689 bool root_delegated_render_pass_is_clipped_; 689 bool root_delegated_render_pass_is_clipped_;
690 }; 690 };
691 691
692 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 692 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
693 root_delegated_render_pass_is_clipped_ = false; 693 root_delegated_render_pass_is_clipped_ = false;
694 SetUpTest(); 694 SetUpTest();
695 695
696 LayerTreeHostImpl::FrameData frame; 696 LayerTreeHostImpl::FrameData frame;
697 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 697 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
698 698
699 const SharedQuadState* root_delegated_shared_quad_state = NULL; 699 const SharedQuadState* root_delegated_shared_quad_state = NULL;
700 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 700 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
701 VerifyRenderPasses( 701 VerifyRenderPasses(
702 frame, 702 frame,
703 2, 703 2,
704 &root_delegated_shared_quad_state, 704 &root_delegated_shared_quad_state,
705 &contrib_delegated_shared_quad_state); 705 &contrib_delegated_shared_quad_state);
706 706
707 // When the quads don't have a clip of their own, the clip rect is set to 707 // When the quads don't have a clip of their own, the clip rect is set to
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 743
744 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 744 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
745 host_impl_->DidDrawAllLayers(frame); 745 host_impl_->DidDrawAllLayers(frame);
746 } 746 }
747 747
748 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 748 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
749 root_delegated_render_pass_is_clipped_ = true; 749 root_delegated_render_pass_is_clipped_ = true;
750 SetUpTest(); 750 SetUpTest();
751 751
752 LayerTreeHostImpl::FrameData frame; 752 LayerTreeHostImpl::FrameData frame;
753 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 753 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
754 754
755 const SharedQuadState* root_delegated_shared_quad_state = NULL; 755 const SharedQuadState* root_delegated_shared_quad_state = NULL;
756 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 756 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
757 VerifyRenderPasses( 757 VerifyRenderPasses(
758 frame, 758 frame,
759 2, 759 2,
760 &root_delegated_shared_quad_state, 760 &root_delegated_shared_quad_state,
761 &contrib_delegated_shared_quad_state); 761 &contrib_delegated_shared_quad_state);
762 762
763 // Since the quads have a clip_rect it should be modified by delegated 763 // Since the quads have a clip_rect it should be modified by delegated
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 host_impl_->DidDrawAllLayers(frame); 808 host_impl_->DidDrawAllLayers(frame);
809 } 809 }
810 810
811 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 811 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
812 root_delegated_render_pass_is_clipped_ = false; 812 root_delegated_render_pass_is_clipped_ = false;
813 SetUpTest(); 813 SetUpTest();
814 814
815 delegated_renderer_layer_->SetForceRenderSurface(true); 815 delegated_renderer_layer_->SetForceRenderSurface(true);
816 816
817 LayerTreeHostImpl::FrameData frame; 817 LayerTreeHostImpl::FrameData frame;
818 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 818 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
819 819
820 const SharedQuadState* root_delegated_shared_quad_state = NULL; 820 const SharedQuadState* root_delegated_shared_quad_state = NULL;
821 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 821 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
822 VerifyRenderPasses( 822 VerifyRenderPasses(
823 frame, 823 frame,
824 3, 824 3,
825 &root_delegated_shared_quad_state, 825 &root_delegated_shared_quad_state,
826 &contrib_delegated_shared_quad_state); 826 &contrib_delegated_shared_quad_state);
827 827
828 // When the layer owns a surface, then its position and translation are not 828 // When the layer owns a surface, then its position and translation are not
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 host_impl_->DidDrawAllLayers(frame); 864 host_impl_->DidDrawAllLayers(frame);
865 } 865 }
866 866
867 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 867 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
868 root_delegated_render_pass_is_clipped_ = true; 868 root_delegated_render_pass_is_clipped_ = true;
869 SetUpTest(); 869 SetUpTest();
870 870
871 delegated_renderer_layer_->SetForceRenderSurface(true); 871 delegated_renderer_layer_->SetForceRenderSurface(true);
872 872
873 LayerTreeHostImpl::FrameData frame; 873 LayerTreeHostImpl::FrameData frame;
874 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 874 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
875 875
876 const SharedQuadState* root_delegated_shared_quad_state = NULL; 876 const SharedQuadState* root_delegated_shared_quad_state = NULL;
877 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 877 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
878 VerifyRenderPasses( 878 VerifyRenderPasses(
879 frame, 879 frame,
880 3, 880 3,
881 &root_delegated_shared_quad_state, 881 &root_delegated_shared_quad_state,
882 &contrib_delegated_shared_quad_state); 882 &contrib_delegated_shared_quad_state);
883 883
884 // When the layer owns a surface, then its position and translation are not 884 // When the layer owns a surface, then its position and translation are not
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 bool clip_delegated_renderer_layer_; 1088 bool clip_delegated_renderer_layer_;
1089 }; 1089 };
1090 1090
1091 TEST_F(DelegatedRendererLayerImplTestClip, 1091 TEST_F(DelegatedRendererLayerImplTestClip,
1092 QuadsUnclipped_LayerUnclipped_NoSurface) { 1092 QuadsUnclipped_LayerUnclipped_NoSurface) {
1093 root_delegated_render_pass_is_clipped_ = false; 1093 root_delegated_render_pass_is_clipped_ = false;
1094 clip_delegated_renderer_layer_ = false; 1094 clip_delegated_renderer_layer_ = false;
1095 SetUpTest(); 1095 SetUpTest();
1096 1096
1097 LayerTreeHostImpl::FrameData frame; 1097 LayerTreeHostImpl::FrameData frame;
1098 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1098 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1099 1099
1100 ASSERT_EQ(2u, frame.render_passes.size()); 1100 ASSERT_EQ(2u, frame.render_passes.size());
1101 const QuadList& contrib_delegated_quad_list = 1101 const QuadList& contrib_delegated_quad_list =
1102 frame.render_passes[0]->quad_list; 1102 frame.render_passes[0]->quad_list;
1103 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1103 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1104 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1104 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1105 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1105 ASSERT_EQ(5u, root_delegated_quad_list.size());
1106 const SharedQuadState* root_delegated_shared_quad_state = 1106 const SharedQuadState* root_delegated_shared_quad_state =
1107 root_delegated_quad_list[0]->shared_quad_state; 1107 root_delegated_quad_list[0]->shared_quad_state;
1108 1108
1109 // When the quads don't have a clip of their own, the clip rect is set to 1109 // When the quads don't have a clip of their own, the clip rect is set to
1110 // the drawable_content_rect of the delegated renderer layer. 1110 // the drawable_content_rect of the delegated renderer layer.
1111 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1111 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1112 root_delegated_shared_quad_state->clip_rect.ToString()); 1112 root_delegated_shared_quad_state->clip_rect.ToString());
1113 // Quads are clipped to the delegated renderer layer. 1113 // Quads are clipped to the delegated renderer layer.
1114 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1114 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1115 1115
1116 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1116 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1117 host_impl_->DidDrawAllLayers(frame); 1117 host_impl_->DidDrawAllLayers(frame);
1118 } 1118 }
1119 1119
1120 TEST_F(DelegatedRendererLayerImplTestClip, 1120 TEST_F(DelegatedRendererLayerImplTestClip,
1121 QuadsClipped_LayerUnclipped_NoSurface) { 1121 QuadsClipped_LayerUnclipped_NoSurface) {
1122 root_delegated_render_pass_is_clipped_ = true; 1122 root_delegated_render_pass_is_clipped_ = true;
1123 clip_delegated_renderer_layer_ = false; 1123 clip_delegated_renderer_layer_ = false;
1124 SetUpTest(); 1124 SetUpTest();
1125 1125
1126 LayerTreeHostImpl::FrameData frame; 1126 LayerTreeHostImpl::FrameData frame;
1127 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1127 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1128 1128
1129 ASSERT_EQ(2u, frame.render_passes.size()); 1129 ASSERT_EQ(2u, frame.render_passes.size());
1130 const QuadList& contrib_delegated_quad_list = 1130 const QuadList& contrib_delegated_quad_list =
1131 frame.render_passes[0]->quad_list; 1131 frame.render_passes[0]->quad_list;
1132 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1132 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1133 const QuadList& root_delegated_quad_list = 1133 const QuadList& root_delegated_quad_list =
1134 frame.render_passes[1]->quad_list; 1134 frame.render_passes[1]->quad_list;
1135 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1135 ASSERT_EQ(5u, root_delegated_quad_list.size());
1136 const SharedQuadState* root_delegated_shared_quad_state = 1136 const SharedQuadState* root_delegated_shared_quad_state =
1137 root_delegated_quad_list[0]->shared_quad_state; 1137 root_delegated_quad_list[0]->shared_quad_state;
1138 1138
1139 // When the quads have a clip of their own, it is used. 1139 // When the quads have a clip of their own, it is used.
1140 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1140 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1141 root_delegated_shared_quad_state->clip_rect.ToString()); 1141 root_delegated_shared_quad_state->clip_rect.ToString());
1142 // Quads came with a clip rect. 1142 // Quads came with a clip rect.
1143 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1143 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1144 1144
1145 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1145 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1146 host_impl_->DidDrawAllLayers(frame); 1146 host_impl_->DidDrawAllLayers(frame);
1147 } 1147 }
1148 1148
1149 TEST_F(DelegatedRendererLayerImplTestClip, 1149 TEST_F(DelegatedRendererLayerImplTestClip,
1150 QuadsUnclipped_LayerClipped_NoSurface) { 1150 QuadsUnclipped_LayerClipped_NoSurface) {
1151 root_delegated_render_pass_is_clipped_ = false; 1151 root_delegated_render_pass_is_clipped_ = false;
1152 clip_delegated_renderer_layer_ = true; 1152 clip_delegated_renderer_layer_ = true;
1153 SetUpTest(); 1153 SetUpTest();
1154 1154
1155 LayerTreeHostImpl::FrameData frame; 1155 LayerTreeHostImpl::FrameData frame;
1156 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1156 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1157 1157
1158 ASSERT_EQ(2u, frame.render_passes.size()); 1158 ASSERT_EQ(2u, frame.render_passes.size());
1159 const QuadList& contrib_delegated_quad_list = 1159 const QuadList& contrib_delegated_quad_list =
1160 frame.render_passes[0]->quad_list; 1160 frame.render_passes[0]->quad_list;
1161 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1161 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1162 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1162 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1163 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1163 ASSERT_EQ(5u, root_delegated_quad_list.size());
1164 const SharedQuadState* root_delegated_shared_quad_state = 1164 const SharedQuadState* root_delegated_shared_quad_state =
1165 root_delegated_quad_list[0]->shared_quad_state; 1165 root_delegated_quad_list[0]->shared_quad_state;
1166 1166
1167 // When the quads don't have a clip of their own, the clip rect is set to 1167 // When the quads don't have a clip of their own, the clip rect is set to
1168 // the drawable_content_rect of the delegated renderer layer. When the layer 1168 // the drawable_content_rect of the delegated renderer layer. When the layer
1169 // is clipped, that should be seen in the quads' clip_rect. 1169 // is clipped, that should be seen in the quads' clip_rect.
1170 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1170 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1171 root_delegated_shared_quad_state->clip_rect.ToString()); 1171 root_delegated_shared_quad_state->clip_rect.ToString());
1172 // Quads are clipped to the delegated renderer layer. 1172 // Quads are clipped to the delegated renderer layer.
1173 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1173 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1174 1174
1175 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1175 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1176 host_impl_->DidDrawAllLayers(frame); 1176 host_impl_->DidDrawAllLayers(frame);
1177 } 1177 }
1178 1178
1179 TEST_F(DelegatedRendererLayerImplTestClip, 1179 TEST_F(DelegatedRendererLayerImplTestClip,
1180 QuadsClipped_LayerClipped_NoSurface) { 1180 QuadsClipped_LayerClipped_NoSurface) {
1181 root_delegated_render_pass_is_clipped_ = true; 1181 root_delegated_render_pass_is_clipped_ = true;
1182 clip_delegated_renderer_layer_ = true; 1182 clip_delegated_renderer_layer_ = true;
1183 SetUpTest(); 1183 SetUpTest();
1184 1184
1185 LayerTreeHostImpl::FrameData frame; 1185 LayerTreeHostImpl::FrameData frame;
1186 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1186 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1187 1187
1188 ASSERT_EQ(2u, frame.render_passes.size()); 1188 ASSERT_EQ(2u, frame.render_passes.size());
1189 const QuadList& contrib_delegated_quad_list = 1189 const QuadList& contrib_delegated_quad_list =
1190 frame.render_passes[0]->quad_list; 1190 frame.render_passes[0]->quad_list;
1191 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1191 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1192 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1192 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1193 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1193 ASSERT_EQ(5u, root_delegated_quad_list.size());
1194 const SharedQuadState* root_delegated_shared_quad_state = 1194 const SharedQuadState* root_delegated_shared_quad_state =
1195 root_delegated_quad_list[0]->shared_quad_state; 1195 root_delegated_quad_list[0]->shared_quad_state;
1196 1196
(...skipping 10 matching lines...) Expand all
1207 1207
1208 TEST_F(DelegatedRendererLayerImplTestClip, 1208 TEST_F(DelegatedRendererLayerImplTestClip,
1209 QuadsUnclipped_LayerUnclipped_Surface) { 1209 QuadsUnclipped_LayerUnclipped_Surface) {
1210 root_delegated_render_pass_is_clipped_ = false; 1210 root_delegated_render_pass_is_clipped_ = false;
1211 clip_delegated_renderer_layer_ = false; 1211 clip_delegated_renderer_layer_ = false;
1212 SetUpTest(); 1212 SetUpTest();
1213 1213
1214 delegated_renderer_layer_->SetForceRenderSurface(true); 1214 delegated_renderer_layer_->SetForceRenderSurface(true);
1215 1215
1216 LayerTreeHostImpl::FrameData frame; 1216 LayerTreeHostImpl::FrameData frame;
1217 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1217 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1218 1218
1219 ASSERT_EQ(3u, frame.render_passes.size()); 1219 ASSERT_EQ(3u, frame.render_passes.size());
1220 const QuadList& contrib_delegated_quad_list = 1220 const QuadList& contrib_delegated_quad_list =
1221 frame.render_passes[0]->quad_list; 1221 frame.render_passes[0]->quad_list;
1222 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1222 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1223 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1223 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1224 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1224 ASSERT_EQ(5u, root_delegated_quad_list.size());
1225 const SharedQuadState* root_delegated_shared_quad_state = 1225 const SharedQuadState* root_delegated_shared_quad_state =
1226 root_delegated_quad_list[0]->shared_quad_state; 1226 root_delegated_quad_list[0]->shared_quad_state;
1227 1227
1228 // When the layer owns a surface, the quads don't need to be clipped 1228 // When the layer owns a surface, the quads don't need to be clipped
1229 // further than they already specify. If they aren't clipped, then their 1229 // further than they already specify. If they aren't clipped, then their
1230 // clip rect is ignored, and they are not set as clipped. 1230 // clip rect is ignored, and they are not set as clipped.
1231 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1231 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1232 1232
1233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1234 host_impl_->DidDrawAllLayers(frame); 1234 host_impl_->DidDrawAllLayers(frame);
1235 } 1235 }
1236 1236
1237 TEST_F(DelegatedRendererLayerImplTestClip, 1237 TEST_F(DelegatedRendererLayerImplTestClip,
1238 QuadsClipped_LayerUnclipped_Surface) { 1238 QuadsClipped_LayerUnclipped_Surface) {
1239 root_delegated_render_pass_is_clipped_ = true; 1239 root_delegated_render_pass_is_clipped_ = true;
1240 clip_delegated_renderer_layer_ = false; 1240 clip_delegated_renderer_layer_ = false;
1241 SetUpTest(); 1241 SetUpTest();
1242 1242
1243 delegated_renderer_layer_->SetForceRenderSurface(true); 1243 delegated_renderer_layer_->SetForceRenderSurface(true);
1244 1244
1245 LayerTreeHostImpl::FrameData frame; 1245 LayerTreeHostImpl::FrameData frame;
1246 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1246 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1247 1247
1248 ASSERT_EQ(3u, frame.render_passes.size()); 1248 ASSERT_EQ(3u, frame.render_passes.size());
1249 const QuadList& contrib_delegated_quad_list = 1249 const QuadList& contrib_delegated_quad_list =
1250 frame.render_passes[0]->quad_list; 1250 frame.render_passes[0]->quad_list;
1251 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1251 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1252 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1252 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1253 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1253 ASSERT_EQ(5u, root_delegated_quad_list.size());
1254 const SharedQuadState* root_delegated_shared_quad_state = 1254 const SharedQuadState* root_delegated_shared_quad_state =
1255 root_delegated_quad_list[0]->shared_quad_state; 1255 root_delegated_quad_list[0]->shared_quad_state;
1256 1256
1257 // When the quads have a clip of their own, it is used. 1257 // When the quads have a clip of their own, it is used.
1258 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1258 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1259 root_delegated_shared_quad_state->clip_rect.ToString()); 1259 root_delegated_shared_quad_state->clip_rect.ToString());
1260 // Quads came with a clip rect. 1260 // Quads came with a clip rect.
1261 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1261 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1262 1262
1263 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1263 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1264 host_impl_->DidDrawAllLayers(frame); 1264 host_impl_->DidDrawAllLayers(frame);
1265 } 1265 }
1266 1266
1267 TEST_F(DelegatedRendererLayerImplTestClip, 1267 TEST_F(DelegatedRendererLayerImplTestClip,
1268 QuadsUnclipped_LayerClipped_Surface) { 1268 QuadsUnclipped_LayerClipped_Surface) {
1269 root_delegated_render_pass_is_clipped_ = false; 1269 root_delegated_render_pass_is_clipped_ = false;
1270 clip_delegated_renderer_layer_ = true; 1270 clip_delegated_renderer_layer_ = true;
1271 SetUpTest(); 1271 SetUpTest();
1272 1272
1273 delegated_renderer_layer_->SetForceRenderSurface(true); 1273 delegated_renderer_layer_->SetForceRenderSurface(true);
1274 1274
1275 LayerTreeHostImpl::FrameData frame; 1275 LayerTreeHostImpl::FrameData frame;
1276 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1276 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1277 1277
1278 ASSERT_EQ(3u, frame.render_passes.size()); 1278 ASSERT_EQ(3u, frame.render_passes.size());
1279 const QuadList& contrib_delegated_quad_list = 1279 const QuadList& contrib_delegated_quad_list =
1280 frame.render_passes[0]->quad_list; 1280 frame.render_passes[0]->quad_list;
1281 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1281 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1282 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1282 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1283 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1283 ASSERT_EQ(5u, root_delegated_quad_list.size());
1284 const SharedQuadState* root_delegated_shared_quad_state = 1284 const SharedQuadState* root_delegated_shared_quad_state =
1285 root_delegated_quad_list[0]->shared_quad_state; 1285 root_delegated_quad_list[0]->shared_quad_state;
1286 1286
1287 // When the layer owns a surface, the quads don't need to be clipped 1287 // When the layer owns a surface, the quads don't need to be clipped
1288 // further than they already specify. If they aren't clipped, then their 1288 // further than they already specify. If they aren't clipped, then their
1289 // clip rect is ignored, and they are not set as clipped. 1289 // clip rect is ignored, and they are not set as clipped.
1290 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1290 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1291 1291
1292 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1292 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1293 host_impl_->DidDrawAllLayers(frame); 1293 host_impl_->DidDrawAllLayers(frame);
1294 } 1294 }
1295 1295
1296 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1296 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1297 root_delegated_render_pass_is_clipped_ = true; 1297 root_delegated_render_pass_is_clipped_ = true;
1298 clip_delegated_renderer_layer_ = true; 1298 clip_delegated_renderer_layer_ = true;
1299 SetUpTest(); 1299 SetUpTest();
1300 1300
1301 delegated_renderer_layer_->SetForceRenderSurface(true); 1301 delegated_renderer_layer_->SetForceRenderSurface(true);
1302 1302
1303 LayerTreeHostImpl::FrameData frame; 1303 LayerTreeHostImpl::FrameData frame;
1304 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1304 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1305 1305
1306 ASSERT_EQ(3u, frame.render_passes.size()); 1306 ASSERT_EQ(3u, frame.render_passes.size());
1307 const QuadList& contrib_delegated_quad_list = 1307 const QuadList& contrib_delegated_quad_list =
1308 frame.render_passes[0]->quad_list; 1308 frame.render_passes[0]->quad_list;
1309 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1309 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1310 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1310 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1311 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1311 ASSERT_EQ(5u, root_delegated_quad_list.size());
1312 const SharedQuadState* root_delegated_shared_quad_state = 1312 const SharedQuadState* root_delegated_shared_quad_state =
1313 root_delegated_quad_list[0]->shared_quad_state; 1313 root_delegated_quad_list[0]->shared_quad_state;
1314 1314
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 delegated_renderer_layer->SetFrameDataForRenderPasses( 1358 delegated_renderer_layer->SetFrameDataForRenderPasses(
1359 &delegated_render_passes); 1359 &delegated_render_passes);
1360 1360
1361 // The RenderPasses should be taken by the layer. 1361 // The RenderPasses should be taken by the layer.
1362 EXPECT_EQ(0u, delegated_render_passes.size()); 1362 EXPECT_EQ(0u, delegated_render_passes.size());
1363 1363
1364 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 1364 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
1365 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 1365 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
1366 1366
1367 LayerTreeHostImpl::FrameData frame; 1367 LayerTreeHostImpl::FrameData frame;
1368 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1368 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1369 1369
1370 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1370 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1371 ASSERT_EQ(1u, frame.render_passes.size()); 1371 ASSERT_EQ(1u, frame.render_passes.size());
1372 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1372 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1373 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1373 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1374 frame.render_passes[0]->quad_list[0]->material); 1374 frame.render_passes[0]->quad_list[0]->material);
1375 1375
1376 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1376 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1377 host_impl_->DidDrawAllLayers(frame); 1377 host_impl_->DidDrawAllLayers(frame);
1378 } 1378 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1506 // The occlusion extends to 500 in the x-axis, pushing the left of the 1506 // The occlusion extends to 500 in the x-axis, pushing the left of the
1507 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. 1507 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad.
1508 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), 1508 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(),
1509 impl.quad_list()[0]->visible_rect.ToString()); 1509 impl.quad_list()[0]->visible_rect.ToString());
1510 } 1510 }
1511 } 1511 }
1512 } 1512 }
1513 1513
1514 } // namespace 1514 } // namespace
1515 } // namespace cc 1515 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/delegating_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698