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

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

Issue 924973003: CC: Force push properties for all layers when tracing is started (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments addressed Created 5 years, 9 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
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/solid_color_layer_impl.h" 8 #include "cc/layers/solid_color_layer_impl.h"
9 #include "cc/quads/render_pass_draw_quad.h" 9 #include "cc/quads/render_pass_draw_quad.h"
10 #include "cc/quads/solid_color_draw_quad.h" 10 #include "cc/quads/solid_color_draw_quad.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 AddRenderPassQuad(pass3, pass2); 170 AddRenderPassQuad(pass3, pass2);
171 delegated_renderer_layer->SetFrameDataForRenderPasses( 171 delegated_renderer_layer->SetFrameDataForRenderPasses(
172 1.f, delegated_render_passes); 172 1.f, delegated_render_passes);
173 173
174 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); 174 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get();
175 175
176 root_layer->AddChild(delegated_renderer_layer.Pass()); 176 root_layer->AddChild(delegated_renderer_layer.Pass());
177 177
178 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 178 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
179 179
180 LayerTreeHostImpl::FrameData frame; 180 FrameData frame;
181 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 181 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
182 182
183 // Root layer has one render pass, and delegated renderer layer has two 183 // Root layer has one render pass, and delegated renderer layer has two
184 // contributing render passes and its own render pass. 184 // contributing render passes and its own render pass.
185 ASSERT_EQ(4u, frame.render_passes.size()); 185 ASSERT_EQ(4u, frame.render_passes.size());
186 186
187 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 187 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
188 host_impl_->DidDrawAllLayers(frame); 188 host_impl_->DidDrawAllLayers(frame);
189 } 189 }
190 { 190 {
191 // New frame makes delegated renderer layer loses its contributing render 191 // New frame makes delegated renderer layer loses its contributing render
192 // passes. 192 // passes.
193 RenderPassList delegated_render_passes; 193 RenderPassList delegated_render_passes;
194 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), 194 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8),
195 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); 195 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10));
196 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses( 196 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses(
197 1.f, delegated_render_passes); 197 1.f, delegated_render_passes);
198 198
199 // Force damage to redraw a new frame. 199 // Force damage to redraw a new frame.
200 host_impl_->SetViewportDamage(gfx::Rect(10, 10)); 200 host_impl_->SetViewportDamage(gfx::Rect(10, 10));
201 201
202 LayerTreeHostImpl::FrameData frame; 202 FrameData frame;
203 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 203 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
204 204
205 // Each non-DelegatedRendererLayer added one RenderPass. The 205 // Each non-DelegatedRendererLayer added one RenderPass. The
206 // DelegatedRendererLayer added two contributing passes. 206 // DelegatedRendererLayer added two contributing passes.
207 ASSERT_EQ(1u, frame.render_passes.size()); 207 ASSERT_EQ(1u, frame.render_passes.size());
208 208
209 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 209 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
210 host_impl_->DidDrawAllLayers(frame); 210 host_impl_->DidDrawAllLayers(frame);
211 } 211 }
212 } 212 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 delegated_renderer_layer->SetFrameDataForRenderPasses( 251 delegated_renderer_layer->SetFrameDataForRenderPasses(
252 1.f, delegated_render_passes); 252 1.f, delegated_render_passes);
253 253
254 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); 254 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get();
255 255
256 root_layer->AddChild(delegated_renderer_layer.Pass()); 256 root_layer->AddChild(delegated_renderer_layer.Pass());
257 257
258 host_impl_->pending_tree()->SetRootLayer(root_layer.Pass()); 258 host_impl_->pending_tree()->SetRootLayer(root_layer.Pass());
259 host_impl_->ActivateSyncTree(); 259 host_impl_->ActivateSyncTree();
260 260
261 LayerTreeHostImpl::FrameData frame; 261 FrameData frame;
262 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 262 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
263 263
264 // Root layer has one render pass, and delegated renderer layer has two 264 // Root layer has one render pass, and delegated renderer layer has two
265 // contributing render passes and its own render pass. 265 // contributing render passes and its own render pass.
266 ASSERT_EQ(4u, frame.render_passes.size()); 266 ASSERT_EQ(4u, frame.render_passes.size());
267 267
268 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 268 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
269 host_impl_->DidDrawAllLayers(frame); 269 host_impl_->DidDrawAllLayers(frame);
270 } 270 }
271 { 271 {
272 // Remove contributing render passes from the delegated renderer layer. 272 // Remove contributing render passes from the delegated renderer layer.
273 host_impl_->CreatePendingTree(); 273 host_impl_->CreatePendingTree();
274 host_impl_->pending_tree()->set_needs_full_tree_sync(false); 274 host_impl_->pending_tree()->set_needs_full_tree_sync(false);
275 RenderPassList delegated_render_passes; 275 RenderPassList delegated_render_passes;
276 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), 276 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8),
277 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); 277 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10));
278 278
279 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses( 279 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses(
280 1.f, delegated_render_passes); 280 1.f, delegated_render_passes);
281 281
282 // Force damage to redraw a new frame. 282 // Force damage to redraw a new frame.
283 283
284 host_impl_->ActivateSyncTree(); 284 host_impl_->ActivateSyncTree();
285 host_impl_->SetViewportDamage(gfx::Rect(100, 100)); 285 host_impl_->SetViewportDamage(gfx::Rect(100, 100));
286 LayerTreeHostImpl::FrameData frame; 286 FrameData frame;
287 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 287 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
288 288
289 // Root layer has one render pass, and delegated renderer layer no longer 289 // Root layer has one render pass, and delegated renderer layer no longer
290 // has contributing render passes. 290 // has contributing render passes.
291 ASSERT_EQ(1u, frame.render_passes.size()); 291 ASSERT_EQ(1u, frame.render_passes.size());
292 292
293 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 293 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
294 host_impl_->DidDrawAllLayers(frame); 294 host_impl_->DidDrawAllLayers(frame);
295 } 295 }
296 } 296 }
297 297
298 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 298 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
299 LayerTreeHostImpl::FrameData frame; 299 FrameData frame;
300 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 300 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
301 301
302 // Each non-DelegatedRendererLayer added one RenderPass. The 302 // Each non-DelegatedRendererLayer added one RenderPass. The
303 // DelegatedRendererLayer added two contributing passes. 303 // DelegatedRendererLayer added two contributing passes.
304 ASSERT_EQ(5u, frame.render_passes.size()); 304 ASSERT_EQ(5u, frame.render_passes.size());
305 305
306 // The DelegatedRendererLayer should have added its contributing RenderPasses 306 // The DelegatedRendererLayer should have added its contributing RenderPasses
307 // to the frame. 307 // to the frame.
308 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 308 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
309 EXPECT_EQ(1, frame.render_passes[1]->id.index); 309 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 13 matching lines...) Expand all
323 frame.render_passes[1]->output_rect.ToString()); 323 frame.render_passes[1]->output_rect.ToString());
324 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 324 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
325 frame.render_passes[2]->output_rect.ToString()); 325 frame.render_passes[2]->output_rect.ToString());
326 326
327 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 327 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
328 host_impl_->DidDrawAllLayers(frame); 328 host_impl_->DidDrawAllLayers(frame);
329 } 329 }
330 330
331 TEST_F(DelegatedRendererLayerImplTestSimple, 331 TEST_F(DelegatedRendererLayerImplTestSimple,
332 AddsQuadsToContributingRenderPasses) { 332 AddsQuadsToContributingRenderPasses) {
333 LayerTreeHostImpl::FrameData frame; 333 FrameData frame;
334 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 334 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
335 335
336 // Each non-DelegatedRendererLayer added one RenderPass. The 336 // Each non-DelegatedRendererLayer added one RenderPass. The
337 // DelegatedRendererLayer added two contributing passes. 337 // DelegatedRendererLayer added two contributing passes.
338 ASSERT_EQ(5u, frame.render_passes.size()); 338 ASSERT_EQ(5u, frame.render_passes.size());
339 339
340 // The DelegatedRendererLayer should have added its contributing RenderPasses 340 // The DelegatedRendererLayer should have added its contributing RenderPasses
341 // to the frame. 341 // to the frame.
342 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 342 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
343 EXPECT_EQ(1, frame.render_passes[1]->id.index); 343 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 14 matching lines...) Expand all
358 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString()); 358 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
359 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 359 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
360 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 360 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
361 frame.render_passes[1]->quad_list.front()->rect.ToString()); 361 frame.render_passes[1]->quad_list.front()->rect.ToString());
362 362
363 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 363 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
364 host_impl_->DidDrawAllLayers(frame); 364 host_impl_->DidDrawAllLayers(frame);
365 } 365 }
366 366
367 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 367 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
368 LayerTreeHostImpl::FrameData frame; 368 FrameData frame;
369 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 369 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
370 370
371 // Each non-DelegatedRendererLayer added one RenderPass. The 371 // Each non-DelegatedRendererLayer added one RenderPass. The
372 // DelegatedRendererLayer added two contributing passes. 372 // DelegatedRendererLayer added two contributing passes.
373 ASSERT_EQ(5u, frame.render_passes.size()); 373 ASSERT_EQ(5u, frame.render_passes.size());
374 374
375 // The layer's target is the RenderPass from layer_after_. 375 // The layer's target is the RenderPass from layer_after_.
376 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id); 376 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id);
377 377
378 // The DelegatedRendererLayer should have added copies of quads in its root 378 // The DelegatedRendererLayer should have added copies of quads in its root
379 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 379 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
380 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 380 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
381 381
382 // Verify it added the right quads. 382 // Verify it added the right quads.
383 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 383 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
384 frame.render_passes[3]->quad_list.front()->rect.ToString()); 384 frame.render_passes[3]->quad_list.front()->rect.ToString());
385 385
386 // Its target layer should have a quad as well. 386 // Its target layer should have a quad as well.
387 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 387 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
388 frame.render_passes[3]->quad_list.ElementAt(1)->rect.ToString()); 388 frame.render_passes[3]->quad_list.ElementAt(1)->rect.ToString());
389 389
390 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 390 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
391 host_impl_->DidDrawAllLayers(frame); 391 host_impl_->DidDrawAllLayers(frame);
392 } 392 }
393 393
394 TEST_F(DelegatedRendererLayerImplTestSimple, 394 TEST_F(DelegatedRendererLayerImplTestSimple,
395 QuadsFromRootRenderPassAreModifiedForTheTarget) { 395 QuadsFromRootRenderPassAreModifiedForTheTarget) {
396 LayerTreeHostImpl::FrameData frame; 396 FrameData frame;
397 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 397 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
398 398
399 // Each non-DelegatedRendererLayer added one RenderPass. The 399 // Each non-DelegatedRendererLayer added one RenderPass. The
400 // DelegatedRendererLayer added two contributing passes. 400 // DelegatedRendererLayer added two contributing passes.
401 ASSERT_EQ(5u, frame.render_passes.size()); 401 ASSERT_EQ(5u, frame.render_passes.size());
402 402
403 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 403 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
404 // has a translation transform of 1,1. So its root RenderPass' quads should 404 // has a translation transform of 1,1. So its root RenderPass' quads should
405 // all be transformed by that combined amount. 405 // all be transformed by that combined amount.
406 gfx::Transform transform; 406 gfx::Transform transform;
(...skipping 13 matching lines...) Expand all
420 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 420 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
421 EXPECT_TRANSFORMATION_MATRIX_EQ( 421 EXPECT_TRANSFORMATION_MATRIX_EQ(
422 gfx::Transform(), 422 gfx::Transform(),
423 frame.render_passes[1]->quad_list.front()->quadTransform()); 423 frame.render_passes[1]->quad_list.front()->quadTransform());
424 424
425 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 425 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
426 host_impl_->DidDrawAllLayers(frame); 426 host_impl_->DidDrawAllLayers(frame);
427 } 427 }
428 428
429 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 429 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
430 LayerTreeHostImpl::FrameData frame; 430 FrameData frame;
431 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 431 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
432 432
433 // The delegated layer has a surface between it and the root. 433 // The delegated layer has a surface between it and the root.
434 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 434 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
435 435
436 // Each non-DelegatedRendererLayer added one RenderPass. The 436 // Each non-DelegatedRendererLayer added one RenderPass. The
437 // DelegatedRendererLayer added two contributing passes. 437 // DelegatedRendererLayer added two contributing passes.
438 ASSERT_EQ(5u, frame.render_passes.size()); 438 ASSERT_EQ(5u, frame.render_passes.size());
439 439
440 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all 440 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all
(...skipping 20 matching lines...) Expand all
461 class DelegatedRendererLayerImplTestOwnSurface 461 class DelegatedRendererLayerImplTestOwnSurface
462 : public DelegatedRendererLayerImplTestSimple { 462 : public DelegatedRendererLayerImplTestSimple {
463 public: 463 public:
464 DelegatedRendererLayerImplTestOwnSurface() 464 DelegatedRendererLayerImplTestOwnSurface()
465 : DelegatedRendererLayerImplTestSimple() { 465 : DelegatedRendererLayerImplTestSimple() {
466 delegated_renderer_layer_->SetHasRenderSurface(true); 466 delegated_renderer_layer_->SetHasRenderSurface(true);
467 } 467 }
468 }; 468 };
469 469
470 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 470 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
471 LayerTreeHostImpl::FrameData frame; 471 FrameData frame;
472 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 472 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
473 473
474 // Each non-DelegatedRendererLayer added one RenderPass. The 474 // Each non-DelegatedRendererLayer added one RenderPass. The
475 // DelegatedRendererLayer added two contributing passes and its owned surface 475 // DelegatedRendererLayer added two contributing passes and its owned surface
476 // added one pass. 476 // added one pass.
477 ASSERT_EQ(6u, frame.render_passes.size()); 477 ASSERT_EQ(6u, frame.render_passes.size());
478 478
479 // The DelegatedRendererLayer should have added its contributing RenderPasses 479 // The DelegatedRendererLayer should have added its contributing RenderPasses
480 // to the frame. 480 // to the frame.
481 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 481 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
(...skipping 18 matching lines...) Expand all
500 frame.render_passes[1]->output_rect.ToString()); 500 frame.render_passes[1]->output_rect.ToString());
501 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 501 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
502 frame.render_passes[2]->output_rect.ToString()); 502 frame.render_passes[2]->output_rect.ToString());
503 503
504 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 504 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
505 host_impl_->DidDrawAllLayers(frame); 505 host_impl_->DidDrawAllLayers(frame);
506 } 506 }
507 507
508 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 508 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
509 AddsQuadsToContributingRenderPasses) { 509 AddsQuadsToContributingRenderPasses) {
510 LayerTreeHostImpl::FrameData frame; 510 FrameData frame;
511 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 511 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
512 512
513 // Each non-DelegatedRendererLayer added one RenderPass. The 513 // Each non-DelegatedRendererLayer added one RenderPass. The
514 // DelegatedRendererLayer added two contributing passes and its owned surface 514 // DelegatedRendererLayer added two contributing passes and its owned surface
515 // added one pass. 515 // added one pass.
516 ASSERT_EQ(6u, frame.render_passes.size()); 516 ASSERT_EQ(6u, frame.render_passes.size());
517 517
518 // The DelegatedRendererLayer should have added its contributing RenderPasses 518 // The DelegatedRendererLayer should have added its contributing RenderPasses
519 // to the frame. 519 // to the frame.
520 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 520 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
(...skipping 16 matching lines...) Expand all
537 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString()); 537 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
538 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 538 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
539 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 539 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
540 frame.render_passes[1]->quad_list.front()->rect.ToString()); 540 frame.render_passes[1]->quad_list.front()->rect.ToString());
541 541
542 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 542 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
543 host_impl_->DidDrawAllLayers(frame); 543 host_impl_->DidDrawAllLayers(frame);
544 } 544 }
545 545
546 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 546 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
547 LayerTreeHostImpl::FrameData frame; 547 FrameData frame;
548 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 548 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
549 549
550 // Each non-DelegatedRendererLayer added one RenderPass. The 550 // Each non-DelegatedRendererLayer added one RenderPass. The
551 // DelegatedRendererLayer added two contributing passes and its owned surface 551 // DelegatedRendererLayer added two contributing passes and its owned surface
552 // added one pass. 552 // added one pass.
553 ASSERT_EQ(6u, frame.render_passes.size()); 553 ASSERT_EQ(6u, frame.render_passes.size());
554 554
555 // The layer's target is the RenderPass owned by itself. 555 // The layer's target is the RenderPass owned by itself.
556 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id); 556 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id);
557 557
558 // The DelegatedRendererLayer should have added copies of quads in its root 558 // The DelegatedRendererLayer should have added copies of quads in its root
559 // RenderPass to its target RenderPass. 559 // RenderPass to its target RenderPass.
560 // The layer_after also adds one quad. 560 // The layer_after also adds one quad.
561 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 561 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
562 562
563 // Verify it added the right quads. 563 // Verify it added the right quads.
564 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 564 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
565 frame.render_passes[3]->quad_list.front()->rect.ToString()); 565 frame.render_passes[3]->quad_list.front()->rect.ToString());
566 566
567 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 567 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
568 host_impl_->DidDrawAllLayers(frame); 568 host_impl_->DidDrawAllLayers(frame);
569 } 569 }
570 570
571 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 571 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
572 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 572 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
573 LayerTreeHostImpl::FrameData frame; 573 FrameData frame;
574 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 574 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
575 575
576 // Each non-DelegatedRendererLayer added one RenderPass. The 576 // Each non-DelegatedRendererLayer added one RenderPass. The
577 // DelegatedRendererLayer added two contributing passes and its owned surface 577 // DelegatedRendererLayer added two contributing passes and its owned surface
578 // added one pass. 578 // added one pass.
579 ASSERT_EQ(6u, frame.render_passes.size()); 579 ASSERT_EQ(6u, frame.render_passes.size());
580 580
581 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 581 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
582 // RenderPass' quads do not need to be translated at all. 582 // RenderPass' quads do not need to be translated at all.
583 EXPECT_TRANSFORMATION_MATRIX_EQ( 583 EXPECT_TRANSFORMATION_MATRIX_EQ(
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 delegated_device_scale_factor_, delegated_render_passes); 740 delegated_device_scale_factor_, delegated_render_passes);
741 741
742 root_layer_ = root_layer.get(); 742 root_layer_ = root_layer.get();
743 delegated_renderer_layer_ = delegated_renderer_layer.get(); 743 delegated_renderer_layer_ = delegated_renderer_layer.get();
744 744
745 root_layer->AddChild(delegated_renderer_layer.Pass()); 745 root_layer->AddChild(delegated_renderer_layer.Pass());
746 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 746 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
747 } 747 }
748 748
749 void VerifyRenderPasses( 749 void VerifyRenderPasses(
750 const LayerTreeHostImpl::FrameData& frame, 750 const FrameData& frame,
751 size_t num_render_passes, 751 size_t num_render_passes,
752 const SharedQuadState** root_delegated_shared_quad_state, 752 const SharedQuadState** root_delegated_shared_quad_state,
753 const SharedQuadState** contrib_delegated_shared_quad_state) { 753 const SharedQuadState** contrib_delegated_shared_quad_state) {
754 ASSERT_EQ(num_render_passes, frame.render_passes.size()); 754 ASSERT_EQ(num_render_passes, frame.render_passes.size());
755 // The contributing render pass in the DelegatedRendererLayer. 755 // The contributing render pass in the DelegatedRendererLayer.
756 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id); 756 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id);
757 EXPECT_EQ(1, frame.render_passes[0]->id.index); 757 EXPECT_EQ(1, frame.render_passes[0]->id.index);
758 // The root render pass. 758 // The root render pass.
759 EXPECT_EQ(1, frame.render_passes.back()->id.layer_id); 759 EXPECT_EQ(1, frame.render_passes.back()->id.layer_id);
760 EXPECT_EQ(0, frame.render_passes.back()->id.index); 760 EXPECT_EQ(0, frame.render_passes.back()->id.index);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 LayerImpl* root_layer_; 792 LayerImpl* root_layer_;
793 DelegatedRendererLayerImpl* delegated_renderer_layer_; 793 DelegatedRendererLayerImpl* delegated_renderer_layer_;
794 bool root_delegated_render_pass_is_clipped_; 794 bool root_delegated_render_pass_is_clipped_;
795 float delegated_device_scale_factor_; 795 float delegated_device_scale_factor_;
796 }; 796 };
797 797
798 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 798 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
799 root_delegated_render_pass_is_clipped_ = false; 799 root_delegated_render_pass_is_clipped_ = false;
800 SetUpTest(); 800 SetUpTest();
801 801
802 LayerTreeHostImpl::FrameData frame; 802 FrameData frame;
803 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 803 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
804 804
805 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 805 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
806 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 806 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
807 VerifyRenderPasses( 807 VerifyRenderPasses(
808 frame, 808 frame,
809 2, 809 2,
810 &root_delegated_shared_quad_state, 810 &root_delegated_shared_quad_state,
811 &contrib_delegated_shared_quad_state); 811 &contrib_delegated_shared_quad_state);
812 812
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 contrib_delegated_shared_quad_state->content_to_target_transform); 847 contrib_delegated_shared_quad_state->content_to_target_transform);
848 848
849 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 849 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
850 host_impl_->DidDrawAllLayers(frame); 850 host_impl_->DidDrawAllLayers(frame);
851 } 851 }
852 852
853 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 853 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
854 root_delegated_render_pass_is_clipped_ = true; 854 root_delegated_render_pass_is_clipped_ = true;
855 SetUpTest(); 855 SetUpTest();
856 856
857 LayerTreeHostImpl::FrameData frame; 857 FrameData frame;
858 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 858 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
859 859
860 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 860 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
861 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 861 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
862 VerifyRenderPasses( 862 VerifyRenderPasses(
863 frame, 863 frame,
864 2, 864 2,
865 &root_delegated_shared_quad_state, 865 &root_delegated_shared_quad_state,
866 &contrib_delegated_shared_quad_state); 866 &contrib_delegated_shared_quad_state);
867 867
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 908 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
909 host_impl_->DidDrawAllLayers(frame); 909 host_impl_->DidDrawAllLayers(frame);
910 } 910 }
911 911
912 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 912 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
913 root_delegated_render_pass_is_clipped_ = false; 913 root_delegated_render_pass_is_clipped_ = false;
914 SetUpTest(); 914 SetUpTest();
915 915
916 delegated_renderer_layer_->SetHasRenderSurface(true); 916 delegated_renderer_layer_->SetHasRenderSurface(true);
917 917
918 LayerTreeHostImpl::FrameData frame; 918 FrameData frame;
919 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 919 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
920 920
921 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 921 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
922 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 922 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
923 VerifyRenderPasses( 923 VerifyRenderPasses(
924 frame, 924 frame,
925 3, 925 3,
926 &root_delegated_shared_quad_state, 926 &root_delegated_shared_quad_state,
927 &contrib_delegated_shared_quad_state); 927 &contrib_delegated_shared_quad_state);
928 928
(...skipping 28 matching lines...) Expand all
957 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 957 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
958 host_impl_->DidDrawAllLayers(frame); 958 host_impl_->DidDrawAllLayers(frame);
959 } 959 }
960 960
961 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 961 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
962 root_delegated_render_pass_is_clipped_ = true; 962 root_delegated_render_pass_is_clipped_ = true;
963 SetUpTest(); 963 SetUpTest();
964 964
965 delegated_renderer_layer_->SetHasRenderSurface(true); 965 delegated_renderer_layer_->SetHasRenderSurface(true);
966 966
967 LayerTreeHostImpl::FrameData frame; 967 FrameData frame;
968 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 968 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
969 969
970 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 970 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
971 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 971 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
972 VerifyRenderPasses( 972 VerifyRenderPasses(
973 frame, 973 frame,
974 3, 974 3,
975 &root_delegated_shared_quad_state, 975 &root_delegated_shared_quad_state,
976 &contrib_delegated_shared_quad_state); 976 &contrib_delegated_shared_quad_state);
977 977
(...skipping 27 matching lines...) Expand all
1005 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1005 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1006 host_impl_->DidDrawAllLayers(frame); 1006 host_impl_->DidDrawAllLayers(frame);
1007 } 1007 }
1008 1008
1009 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) { 1009 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) {
1010 root_delegated_render_pass_is_clipped_ = true; 1010 root_delegated_render_pass_is_clipped_ = true;
1011 delegated_device_scale_factor_ = 1.3f; 1011 delegated_device_scale_factor_ = 1.3f;
1012 1012
1013 SetUpTest(); 1013 SetUpTest();
1014 1014
1015 LayerTreeHostImpl::FrameData frame; 1015 FrameData frame;
1016 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1016 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1017 1017
1018 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 1018 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
1019 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 1019 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
1020 VerifyRenderPasses(frame, 1020 VerifyRenderPasses(frame,
1021 2, 1021 2,
1022 &root_delegated_shared_quad_state, 1022 &root_delegated_shared_quad_state,
1023 &contrib_delegated_shared_quad_state); 1023 &contrib_delegated_shared_quad_state);
1024 1024
1025 // The parent tree's device scale factor is 2.0, but the child has submitted a 1025 // The parent tree's device scale factor is 2.0, but the child has submitted a
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1202 bool root_delegated_render_pass_is_clipped_; 1202 bool root_delegated_render_pass_is_clipped_;
1203 bool clip_delegated_renderer_layer_; 1203 bool clip_delegated_renderer_layer_;
1204 }; 1204 };
1205 1205
1206 TEST_F(DelegatedRendererLayerImplTestClip, 1206 TEST_F(DelegatedRendererLayerImplTestClip,
1207 QuadsUnclipped_LayerUnclipped_NoSurface) { 1207 QuadsUnclipped_LayerUnclipped_NoSurface) {
1208 root_delegated_render_pass_is_clipped_ = false; 1208 root_delegated_render_pass_is_clipped_ = false;
1209 clip_delegated_renderer_layer_ = false; 1209 clip_delegated_renderer_layer_ = false;
1210 SetUpTest(); 1210 SetUpTest();
1211 1211
1212 LayerTreeHostImpl::FrameData frame; 1212 FrameData frame;
1213 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1213 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1214 1214
1215 ASSERT_EQ(2u, frame.render_passes.size()); 1215 ASSERT_EQ(2u, frame.render_passes.size());
1216 const QuadList& contrib_delegated_quad_list = 1216 const QuadList& contrib_delegated_quad_list =
1217 frame.render_passes[0]->quad_list; 1217 frame.render_passes[0]->quad_list;
1218 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1218 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1219 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1219 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1220 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1220 ASSERT_EQ(5u, root_delegated_quad_list.size());
1221 const SharedQuadState* root_delegated_shared_quad_state = 1221 const SharedQuadState* root_delegated_shared_quad_state =
1222 root_delegated_quad_list.front()->shared_quad_state; 1222 root_delegated_quad_list.front()->shared_quad_state;
1223 1223
1224 // When the quads don't have a clip of their own, the clip rect is set to 1224 // When the quads don't have a clip of their own, the clip rect is set to
1225 // the drawable_content_rect of the delegated renderer layer. 1225 // the drawable_content_rect of the delegated renderer layer.
1226 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1226 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1227 root_delegated_shared_quad_state->clip_rect.ToString()); 1227 root_delegated_shared_quad_state->clip_rect.ToString());
1228 // Quads are clipped to the delegated renderer layer. 1228 // Quads are clipped to the delegated renderer layer.
1229 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1229 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1230 1230
1231 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1231 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1232 host_impl_->DidDrawAllLayers(frame); 1232 host_impl_->DidDrawAllLayers(frame);
1233 } 1233 }
1234 1234
1235 TEST_F(DelegatedRendererLayerImplTestClip, 1235 TEST_F(DelegatedRendererLayerImplTestClip,
1236 QuadsClipped_LayerUnclipped_NoSurface) { 1236 QuadsClipped_LayerUnclipped_NoSurface) {
1237 root_delegated_render_pass_is_clipped_ = true; 1237 root_delegated_render_pass_is_clipped_ = true;
1238 clip_delegated_renderer_layer_ = false; 1238 clip_delegated_renderer_layer_ = false;
1239 SetUpTest(); 1239 SetUpTest();
1240 1240
1241 LayerTreeHostImpl::FrameData frame; 1241 FrameData frame;
1242 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1242 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1243 1243
1244 ASSERT_EQ(2u, frame.render_passes.size()); 1244 ASSERT_EQ(2u, frame.render_passes.size());
1245 const QuadList& contrib_delegated_quad_list = 1245 const QuadList& contrib_delegated_quad_list =
1246 frame.render_passes[0]->quad_list; 1246 frame.render_passes[0]->quad_list;
1247 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1247 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1248 const QuadList& root_delegated_quad_list = 1248 const QuadList& root_delegated_quad_list =
1249 frame.render_passes[1]->quad_list; 1249 frame.render_passes[1]->quad_list;
1250 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1250 ASSERT_EQ(5u, root_delegated_quad_list.size());
1251 const SharedQuadState* root_delegated_shared_quad_state = 1251 const SharedQuadState* root_delegated_shared_quad_state =
1252 root_delegated_quad_list.front()->shared_quad_state; 1252 root_delegated_quad_list.front()->shared_quad_state;
1253 1253
1254 // When the quads have a clip of their own, it is used. 1254 // When the quads have a clip of their own, it is used.
1255 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1255 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1256 root_delegated_shared_quad_state->clip_rect.ToString()); 1256 root_delegated_shared_quad_state->clip_rect.ToString());
1257 // Quads came with a clip rect. 1257 // Quads came with a clip rect.
1258 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1258 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1259 1259
1260 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1260 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1261 host_impl_->DidDrawAllLayers(frame); 1261 host_impl_->DidDrawAllLayers(frame);
1262 } 1262 }
1263 1263
1264 TEST_F(DelegatedRendererLayerImplTestClip, 1264 TEST_F(DelegatedRendererLayerImplTestClip,
1265 QuadsUnclipped_LayerClipped_NoSurface) { 1265 QuadsUnclipped_LayerClipped_NoSurface) {
1266 root_delegated_render_pass_is_clipped_ = false; 1266 root_delegated_render_pass_is_clipped_ = false;
1267 clip_delegated_renderer_layer_ = true; 1267 clip_delegated_renderer_layer_ = true;
1268 SetUpTest(); 1268 SetUpTest();
1269 1269
1270 LayerTreeHostImpl::FrameData frame; 1270 FrameData frame;
1271 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1271 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1272 1272
1273 ASSERT_EQ(2u, frame.render_passes.size()); 1273 ASSERT_EQ(2u, frame.render_passes.size());
1274 const QuadList& contrib_delegated_quad_list = 1274 const QuadList& contrib_delegated_quad_list =
1275 frame.render_passes[0]->quad_list; 1275 frame.render_passes[0]->quad_list;
1276 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1276 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1277 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1277 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1278 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1278 ASSERT_EQ(5u, root_delegated_quad_list.size());
1279 const SharedQuadState* root_delegated_shared_quad_state = 1279 const SharedQuadState* root_delegated_shared_quad_state =
1280 root_delegated_quad_list.front()->shared_quad_state; 1280 root_delegated_quad_list.front()->shared_quad_state;
1281 1281
1282 // When the quads don't have a clip of their own, the clip rect is set to 1282 // When the quads don't have a clip of their own, the clip rect is set to
1283 // the drawable_content_rect of the delegated renderer layer. When the layer 1283 // the drawable_content_rect of the delegated renderer layer. When the layer
1284 // is clipped, that should be seen in the quads' clip_rect. 1284 // is clipped, that should be seen in the quads' clip_rect.
1285 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1285 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1286 root_delegated_shared_quad_state->clip_rect.ToString()); 1286 root_delegated_shared_quad_state->clip_rect.ToString());
1287 // Quads are clipped to the delegated renderer layer. 1287 // Quads are clipped to the delegated renderer layer.
1288 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1288 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1289 1289
1290 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1290 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1291 host_impl_->DidDrawAllLayers(frame); 1291 host_impl_->DidDrawAllLayers(frame);
1292 } 1292 }
1293 1293
1294 TEST_F(DelegatedRendererLayerImplTestClip, 1294 TEST_F(DelegatedRendererLayerImplTestClip,
1295 QuadsClipped_LayerClipped_NoSurface) { 1295 QuadsClipped_LayerClipped_NoSurface) {
1296 root_delegated_render_pass_is_clipped_ = true; 1296 root_delegated_render_pass_is_clipped_ = true;
1297 clip_delegated_renderer_layer_ = true; 1297 clip_delegated_renderer_layer_ = true;
1298 SetUpTest(); 1298 SetUpTest();
1299 1299
1300 LayerTreeHostImpl::FrameData frame; 1300 FrameData frame;
1301 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1301 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1302 1302
1303 ASSERT_EQ(2u, frame.render_passes.size()); 1303 ASSERT_EQ(2u, frame.render_passes.size());
1304 const QuadList& contrib_delegated_quad_list = 1304 const QuadList& contrib_delegated_quad_list =
1305 frame.render_passes[0]->quad_list; 1305 frame.render_passes[0]->quad_list;
1306 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1306 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1307 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1307 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1308 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1308 ASSERT_EQ(5u, root_delegated_quad_list.size());
1309 const SharedQuadState* root_delegated_shared_quad_state = 1309 const SharedQuadState* root_delegated_shared_quad_state =
1310 root_delegated_quad_list.front()->shared_quad_state; 1310 root_delegated_quad_list.front()->shared_quad_state;
(...skipping 10 matching lines...) Expand all
1321 } 1321 }
1322 1322
1323 TEST_F(DelegatedRendererLayerImplTestClip, 1323 TEST_F(DelegatedRendererLayerImplTestClip,
1324 QuadsUnclipped_LayerUnclipped_Surface) { 1324 QuadsUnclipped_LayerUnclipped_Surface) {
1325 root_delegated_render_pass_is_clipped_ = false; 1325 root_delegated_render_pass_is_clipped_ = false;
1326 clip_delegated_renderer_layer_ = false; 1326 clip_delegated_renderer_layer_ = false;
1327 SetUpTest(); 1327 SetUpTest();
1328 1328
1329 delegated_renderer_layer_->SetHasRenderSurface(true); 1329 delegated_renderer_layer_->SetHasRenderSurface(true);
1330 1330
1331 LayerTreeHostImpl::FrameData frame; 1331 FrameData frame;
1332 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1332 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1333 1333
1334 ASSERT_EQ(3u, frame.render_passes.size()); 1334 ASSERT_EQ(3u, frame.render_passes.size());
1335 const QuadList& contrib_delegated_quad_list = 1335 const QuadList& contrib_delegated_quad_list =
1336 frame.render_passes[0]->quad_list; 1336 frame.render_passes[0]->quad_list;
1337 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1337 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1338 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1338 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1339 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1339 ASSERT_EQ(5u, root_delegated_quad_list.size());
1340 const SharedQuadState* root_delegated_shared_quad_state = 1340 const SharedQuadState* root_delegated_shared_quad_state =
1341 root_delegated_quad_list.front()->shared_quad_state; 1341 root_delegated_quad_list.front()->shared_quad_state;
1342 1342
1343 // When the layer owns a surface, the quads don't need to be clipped 1343 // When the layer owns a surface, the quads don't need to be clipped
1344 // further than they already specify. If they aren't clipped, then their 1344 // further than they already specify. If they aren't clipped, then their
1345 // clip rect is ignored, and they are not set as clipped. 1345 // clip rect is ignored, and they are not set as clipped.
1346 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1346 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1347 1347
1348 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1348 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1349 host_impl_->DidDrawAllLayers(frame); 1349 host_impl_->DidDrawAllLayers(frame);
1350 } 1350 }
1351 1351
1352 TEST_F(DelegatedRendererLayerImplTestClip, 1352 TEST_F(DelegatedRendererLayerImplTestClip,
1353 QuadsClipped_LayerUnclipped_Surface) { 1353 QuadsClipped_LayerUnclipped_Surface) {
1354 root_delegated_render_pass_is_clipped_ = true; 1354 root_delegated_render_pass_is_clipped_ = true;
1355 clip_delegated_renderer_layer_ = false; 1355 clip_delegated_renderer_layer_ = false;
1356 SetUpTest(); 1356 SetUpTest();
1357 1357
1358 delegated_renderer_layer_->SetHasRenderSurface(true); 1358 delegated_renderer_layer_->SetHasRenderSurface(true);
1359 1359
1360 LayerTreeHostImpl::FrameData frame; 1360 FrameData frame;
1361 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1361 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1362 1362
1363 ASSERT_EQ(3u, frame.render_passes.size()); 1363 ASSERT_EQ(3u, frame.render_passes.size());
1364 const QuadList& contrib_delegated_quad_list = 1364 const QuadList& contrib_delegated_quad_list =
1365 frame.render_passes[0]->quad_list; 1365 frame.render_passes[0]->quad_list;
1366 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1366 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1367 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1367 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1368 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1368 ASSERT_EQ(5u, root_delegated_quad_list.size());
1369 const SharedQuadState* root_delegated_shared_quad_state = 1369 const SharedQuadState* root_delegated_shared_quad_state =
1370 root_delegated_quad_list.front()->shared_quad_state; 1370 root_delegated_quad_list.front()->shared_quad_state;
1371 1371
1372 // When the quads have a clip of their own, it is used. 1372 // When the quads have a clip of their own, it is used.
1373 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1373 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1374 root_delegated_shared_quad_state->clip_rect.ToString()); 1374 root_delegated_shared_quad_state->clip_rect.ToString());
1375 // Quads came with a clip rect. 1375 // Quads came with a clip rect.
1376 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1376 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1377 1377
1378 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1378 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1379 host_impl_->DidDrawAllLayers(frame); 1379 host_impl_->DidDrawAllLayers(frame);
1380 } 1380 }
1381 1381
1382 TEST_F(DelegatedRendererLayerImplTestClip, 1382 TEST_F(DelegatedRendererLayerImplTestClip,
1383 QuadsUnclipped_LayerClipped_Surface) { 1383 QuadsUnclipped_LayerClipped_Surface) {
1384 root_delegated_render_pass_is_clipped_ = false; 1384 root_delegated_render_pass_is_clipped_ = false;
1385 clip_delegated_renderer_layer_ = true; 1385 clip_delegated_renderer_layer_ = true;
1386 SetUpTest(); 1386 SetUpTest();
1387 1387
1388 delegated_renderer_layer_->SetHasRenderSurface(true); 1388 delegated_renderer_layer_->SetHasRenderSurface(true);
1389 1389
1390 LayerTreeHostImpl::FrameData frame; 1390 FrameData frame;
1391 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1391 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1392 1392
1393 ASSERT_EQ(3u, frame.render_passes.size()); 1393 ASSERT_EQ(3u, frame.render_passes.size());
1394 const QuadList& contrib_delegated_quad_list = 1394 const QuadList& contrib_delegated_quad_list =
1395 frame.render_passes[0]->quad_list; 1395 frame.render_passes[0]->quad_list;
1396 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1396 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1397 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1397 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1398 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1398 ASSERT_EQ(5u, root_delegated_quad_list.size());
1399 const SharedQuadState* root_delegated_shared_quad_state = 1399 const SharedQuadState* root_delegated_shared_quad_state =
1400 root_delegated_quad_list.front()->shared_quad_state; 1400 root_delegated_quad_list.front()->shared_quad_state;
1401 1401
1402 // When the layer owns a surface, the quads don't need to be clipped 1402 // When the layer owns a surface, the quads don't need to be clipped
1403 // further than they already specify. If they aren't clipped, then their 1403 // further than they already specify. If they aren't clipped, then their
1404 // clip rect is ignored, and they are not set as clipped. 1404 // clip rect is ignored, and they are not set as clipped.
1405 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1405 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1406 1406
1407 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1407 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1408 host_impl_->DidDrawAllLayers(frame); 1408 host_impl_->DidDrawAllLayers(frame);
1409 } 1409 }
1410 1410
1411 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1411 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1412 root_delegated_render_pass_is_clipped_ = true; 1412 root_delegated_render_pass_is_clipped_ = true;
1413 clip_delegated_renderer_layer_ = true; 1413 clip_delegated_renderer_layer_ = true;
1414 SetUpTest(); 1414 SetUpTest();
1415 1415
1416 delegated_renderer_layer_->SetHasRenderSurface(true); 1416 delegated_renderer_layer_->SetHasRenderSurface(true);
1417 1417
1418 LayerTreeHostImpl::FrameData frame; 1418 FrameData frame;
1419 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1419 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1420 1420
1421 ASSERT_EQ(3u, frame.render_passes.size()); 1421 ASSERT_EQ(3u, frame.render_passes.size());
1422 const QuadList& contrib_delegated_quad_list = 1422 const QuadList& contrib_delegated_quad_list =
1423 frame.render_passes[0]->quad_list; 1423 frame.render_passes[0]->quad_list;
1424 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1424 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1425 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1425 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1426 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1426 ASSERT_EQ(5u, root_delegated_quad_list.size());
1427 const SharedQuadState* root_delegated_shared_quad_state = 1427 const SharedQuadState* root_delegated_shared_quad_state =
1428 root_delegated_quad_list.front()->shared_quad_state; 1428 root_delegated_quad_list.front()->shared_quad_state;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1469 1469
1470 // But a render pass quad refers to it. 1470 // But a render pass quad refers to it.
1471 AddRenderPassQuad(pass1, missing_pass.get()); 1471 AddRenderPassQuad(pass1, missing_pass.get());
1472 1472
1473 delegated_renderer_layer->SetFrameDataForRenderPasses( 1473 delegated_renderer_layer->SetFrameDataForRenderPasses(
1474 1.f, delegated_render_passes); 1474 1.f, delegated_render_passes);
1475 1475
1476 root_layer->AddChild(delegated_renderer_layer.Pass()); 1476 root_layer->AddChild(delegated_renderer_layer.Pass());
1477 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 1477 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
1478 1478
1479 LayerTreeHostImpl::FrameData frame; 1479 FrameData frame;
1480 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1480 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1481 1481
1482 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1482 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1483 ASSERT_EQ(1u, frame.render_passes.size()); 1483 ASSERT_EQ(1u, frame.render_passes.size());
1484 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1484 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1485 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1485 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1486 frame.render_passes[0]->quad_list.front()->material); 1486 frame.render_passes[0]->quad_list.front()->material);
1487 1487
1488 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1488 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1489 host_impl_->DidDrawAllLayers(frame); 1489 host_impl_->DidDrawAllLayers(frame);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1677 scoped_ptr<DelegatedRendererLayerImpl> other_layer = 1677 scoped_ptr<DelegatedRendererLayerImpl> other_layer =
1678 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); 1678 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6);
1679 1679
1680 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); 1680 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get());
1681 1681
1682 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); 1682 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor());
1683 } 1683 }
1684 1684
1685 } // namespace 1685 } // namespace
1686 } // namespace cc 1686 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698