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

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

Issue 340743002: cc: Removing base::TimeTicks argument to DrawLayers as it isn't used. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase onto master for landing. Created 5 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/test/layer_tree_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 179
180 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 180 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
181 181
182 LayerTreeHostImpl::FrameData frame; 182 LayerTreeHostImpl::FrameData frame;
183 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 183 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
184 184
185 // Root layer has one render pass, and delegated renderer layer has two 185 // Root layer has one render pass, and delegated renderer layer has two
186 // contributing render passes and its own render pass. 186 // contributing render passes and its own render pass.
187 ASSERT_EQ(4u, frame.render_passes.size()); 187 ASSERT_EQ(4u, frame.render_passes.size());
188 188
189 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 189 host_impl_->DrawLayers(&frame);
190 host_impl_->DidDrawAllLayers(frame); 190 host_impl_->DidDrawAllLayers(frame);
191 } 191 }
192 { 192 {
193 // New frame makes delegated renderer layer loses its contributing render 193 // New frame makes delegated renderer layer loses its contributing render
194 // passes. 194 // passes.
195 RenderPassList delegated_render_passes; 195 RenderPassList delegated_render_passes;
196 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), 196 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8),
197 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); 197 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10));
198 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses( 198 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses(
199 1.f, delegated_render_passes); 199 1.f, delegated_render_passes);
200 200
201 // Force damage to redraw a new frame. 201 // Force damage to redraw a new frame.
202 host_impl_->SetViewportDamage(gfx::Rect(10, 10)); 202 host_impl_->SetViewportDamage(gfx::Rect(10, 10));
203 203
204 LayerTreeHostImpl::FrameData frame; 204 LayerTreeHostImpl::FrameData frame;
205 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 205 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
206 206
207 // Each non-DelegatedRendererLayer added one RenderPass. The 207 // Each non-DelegatedRendererLayer added one RenderPass. The
208 // DelegatedRendererLayer added two contributing passes. 208 // DelegatedRendererLayer added two contributing passes.
209 ASSERT_EQ(1u, frame.render_passes.size()); 209 ASSERT_EQ(1u, frame.render_passes.size());
210 210
211 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 211 host_impl_->DrawLayers(&frame);
212 host_impl_->DidDrawAllLayers(frame); 212 host_impl_->DidDrawAllLayers(frame);
213 } 213 }
214 } 214 }
215 215
216 TEST_F(DelegatedRendererLayerImplTest, 216 TEST_F(DelegatedRendererLayerImplTest,
217 ChangeContributingRenderPassNonFullTreeSync) { 217 ChangeContributingRenderPassNonFullTreeSync) {
218 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl; 218 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl;
219 { 219 {
220 host_impl_->CreatePendingTree(); 220 host_impl_->CreatePendingTree();
221 scoped_ptr<LayerImpl> root_layer = 221 scoped_ptr<LayerImpl> root_layer =
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 host_impl_->pending_tree()->SetRootLayer(root_layer.Pass()); 260 host_impl_->pending_tree()->SetRootLayer(root_layer.Pass());
261 host_impl_->ActivateSyncTree(); 261 host_impl_->ActivateSyncTree();
262 262
263 LayerTreeHostImpl::FrameData frame; 263 LayerTreeHostImpl::FrameData frame;
264 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 264 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
265 265
266 // Root layer has one render pass, and delegated renderer layer has two 266 // Root layer has one render pass, and delegated renderer layer has two
267 // contributing render passes and its own render pass. 267 // contributing render passes and its own render pass.
268 ASSERT_EQ(4u, frame.render_passes.size()); 268 ASSERT_EQ(4u, frame.render_passes.size());
269 269
270 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 270 host_impl_->DrawLayers(&frame);
271 host_impl_->DidDrawAllLayers(frame); 271 host_impl_->DidDrawAllLayers(frame);
272 } 272 }
273 { 273 {
274 // Remove contributing render passes from the delegated renderer layer. 274 // Remove contributing render passes from the delegated renderer layer.
275 host_impl_->CreatePendingTree(); 275 host_impl_->CreatePendingTree();
276 host_impl_->pending_tree()->set_needs_full_tree_sync(false); 276 host_impl_->pending_tree()->set_needs_full_tree_sync(false);
277 RenderPassList delegated_render_passes; 277 RenderPassList delegated_render_passes;
278 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), 278 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8),
279 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); 279 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10));
280 280
281 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses( 281 fake_delegated_renderer_layer_impl->SetFrameDataForRenderPasses(
282 1.f, delegated_render_passes); 282 1.f, delegated_render_passes);
283 283
284 // Force damage to redraw a new frame. 284 // Force damage to redraw a new frame.
285 285
286 host_impl_->ActivateSyncTree(); 286 host_impl_->ActivateSyncTree();
287 host_impl_->SetViewportDamage(gfx::Rect(100, 100)); 287 host_impl_->SetViewportDamage(gfx::Rect(100, 100));
288 LayerTreeHostImpl::FrameData frame; 288 LayerTreeHostImpl::FrameData frame;
289 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 289 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
290 290
291 // Root layer has one render pass, and delegated renderer layer no longer 291 // Root layer has one render pass, and delegated renderer layer no longer
292 // has contributing render passes. 292 // has contributing render passes.
293 ASSERT_EQ(1u, frame.render_passes.size()); 293 ASSERT_EQ(1u, frame.render_passes.size());
294 294
295 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 295 host_impl_->DrawLayers(&frame);
296 host_impl_->DidDrawAllLayers(frame); 296 host_impl_->DidDrawAllLayers(frame);
297 } 297 }
298 } 298 }
299 299
300 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 300 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
301 LayerTreeHostImpl::FrameData frame; 301 LayerTreeHostImpl::FrameData frame;
302 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 302 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
303 303
304 // Each non-DelegatedRendererLayer added one RenderPass. The 304 // Each non-DelegatedRendererLayer added one RenderPass. The
305 // DelegatedRendererLayer added two contributing passes. 305 // DelegatedRendererLayer added two contributing passes.
(...skipping 13 matching lines...) Expand all
319 EXPECT_NE(4, frame.render_passes[4]->id.layer_id); 319 EXPECT_NE(4, frame.render_passes[4]->id.layer_id);
320 EXPECT_EQ(0, frame.render_passes[4]->id.index); 320 EXPECT_EQ(0, frame.render_passes[4]->id.index);
321 321
322 // The DelegatedRendererLayer should have added its RenderPasses to the frame 322 // The DelegatedRendererLayer should have added its RenderPasses to the frame
323 // in order. 323 // in order.
324 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 324 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
325 frame.render_passes[1]->output_rect.ToString()); 325 frame.render_passes[1]->output_rect.ToString());
326 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 326 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
327 frame.render_passes[2]->output_rect.ToString()); 327 frame.render_passes[2]->output_rect.ToString());
328 328
329 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 329 host_impl_->DrawLayers(&frame);
330 host_impl_->DidDrawAllLayers(frame); 330 host_impl_->DidDrawAllLayers(frame);
331 } 331 }
332 332
333 TEST_F(DelegatedRendererLayerImplTestSimple, 333 TEST_F(DelegatedRendererLayerImplTestSimple,
334 AddsQuadsToContributingRenderPasses) { 334 AddsQuadsToContributingRenderPasses) {
335 LayerTreeHostImpl::FrameData frame; 335 LayerTreeHostImpl::FrameData frame;
336 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 336 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
337 337
338 // Each non-DelegatedRendererLayer added one RenderPass. The 338 // Each non-DelegatedRendererLayer added one RenderPass. The
339 // DelegatedRendererLayer added two contributing passes. 339 // DelegatedRendererLayer added two contributing passes.
(...skipping 15 matching lines...) Expand all
355 // Verify it added the right quads. 355 // Verify it added the right quads.
356 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 356 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
357 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 357 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
358 frame.render_passes[2]->quad_list.front()->rect.ToString()); 358 frame.render_passes[2]->quad_list.front()->rect.ToString());
359 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 359 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
360 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString()); 360 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
361 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 361 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
362 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 362 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
363 frame.render_passes[1]->quad_list.front()->rect.ToString()); 363 frame.render_passes[1]->quad_list.front()->rect.ToString());
364 364
365 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 365 host_impl_->DrawLayers(&frame);
366 host_impl_->DidDrawAllLayers(frame); 366 host_impl_->DidDrawAllLayers(frame);
367 } 367 }
368 368
369 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 369 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
370 LayerTreeHostImpl::FrameData frame; 370 LayerTreeHostImpl::FrameData frame;
371 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 371 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
372 372
373 // Each non-DelegatedRendererLayer added one RenderPass. The 373 // Each non-DelegatedRendererLayer added one RenderPass. The
374 // DelegatedRendererLayer added two contributing passes. 374 // DelegatedRendererLayer added two contributing passes.
375 ASSERT_EQ(5u, frame.render_passes.size()); 375 ASSERT_EQ(5u, frame.render_passes.size());
376 376
377 // The layer's target is the RenderPass from layer_after_. 377 // The layer's target is the RenderPass from layer_after_.
378 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id); 378 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id);
379 379
380 // The DelegatedRendererLayer should have added copies of quads in its root 380 // The DelegatedRendererLayer should have added copies of quads in its root
381 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 381 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
382 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 382 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
383 383
384 // Verify it added the right quads. 384 // Verify it added the right quads.
385 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 385 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
386 frame.render_passes[3]->quad_list.front()->rect.ToString()); 386 frame.render_passes[3]->quad_list.front()->rect.ToString());
387 387
388 // Its target layer should have a quad as well. 388 // Its target layer should have a quad as well.
389 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 389 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
390 frame.render_passes[3]->quad_list.ElementAt(1)->rect.ToString()); 390 frame.render_passes[3]->quad_list.ElementAt(1)->rect.ToString());
391 391
392 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 392 host_impl_->DrawLayers(&frame);
393 host_impl_->DidDrawAllLayers(frame); 393 host_impl_->DidDrawAllLayers(frame);
394 } 394 }
395 395
396 TEST_F(DelegatedRendererLayerImplTestSimple, 396 TEST_F(DelegatedRendererLayerImplTestSimple,
397 QuadsFromRootRenderPassAreModifiedForTheTarget) { 397 QuadsFromRootRenderPassAreModifiedForTheTarget) {
398 LayerTreeHostImpl::FrameData frame; 398 LayerTreeHostImpl::FrameData frame;
399 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 399 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
400 400
401 // Each non-DelegatedRendererLayer added one RenderPass. The 401 // Each non-DelegatedRendererLayer added one RenderPass. The
402 // DelegatedRendererLayer added two contributing passes. 402 // DelegatedRendererLayer added two contributing passes.
(...skipping 14 matching lines...) Expand all
417 gfx::Transform(), 417 gfx::Transform(),
418 frame.render_passes[2]->quad_list.front()->quadTransform()); 418 frame.render_passes[2]->quad_list.front()->quadTransform());
419 EXPECT_TRANSFORMATION_MATRIX_EQ( 419 EXPECT_TRANSFORMATION_MATRIX_EQ(
420 gfx::Transform(), 420 gfx::Transform(),
421 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform()); 421 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform());
422 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 422 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
423 EXPECT_TRANSFORMATION_MATRIX_EQ( 423 EXPECT_TRANSFORMATION_MATRIX_EQ(
424 gfx::Transform(), 424 gfx::Transform(),
425 frame.render_passes[1]->quad_list.front()->quadTransform()); 425 frame.render_passes[1]->quad_list.front()->quadTransform());
426 426
427 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 427 host_impl_->DrawLayers(&frame);
428 host_impl_->DidDrawAllLayers(frame); 428 host_impl_->DidDrawAllLayers(frame);
429 } 429 }
430 430
431 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 431 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
432 LayerTreeHostImpl::FrameData frame; 432 LayerTreeHostImpl::FrameData frame;
433 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 433 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
434 434
435 // The delegated layer has a surface between it and the root. 435 // The delegated layer has a surface between it and the root.
436 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 436 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
437 437
(...skipping 11 matching lines...) Expand all
449 449
450 // The second contributing surface has a translation of 7, 8. 450 // The second contributing surface has a translation of 7, 8.
451 gfx::Transform seven_eight(1, 0, 0, 1, 7, 8); 451 gfx::Transform seven_eight(1, 0, 0, 1, 7, 8);
452 452
453 EXPECT_TRANSFORMATION_MATRIX_EQ( 453 EXPECT_TRANSFORMATION_MATRIX_EQ(
454 transform * five_six, frame.render_passes[1]->transform_to_root_target); 454 transform * five_six, frame.render_passes[1]->transform_to_root_target);
455 EXPECT_TRANSFORMATION_MATRIX_EQ( 455 EXPECT_TRANSFORMATION_MATRIX_EQ(
456 transform * seven_eight, 456 transform * seven_eight,
457 frame.render_passes[2]->transform_to_root_target); 457 frame.render_passes[2]->transform_to_root_target);
458 458
459 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 459 host_impl_->DrawLayers(&frame);
460 host_impl_->DidDrawAllLayers(frame); 460 host_impl_->DidDrawAllLayers(frame);
461 } 461 }
462 462
463 class DelegatedRendererLayerImplTestOwnSurface 463 class DelegatedRendererLayerImplTestOwnSurface
464 : public DelegatedRendererLayerImplTestSimple { 464 : public DelegatedRendererLayerImplTestSimple {
465 public: 465 public:
466 DelegatedRendererLayerImplTestOwnSurface() 466 DelegatedRendererLayerImplTestOwnSurface()
467 : DelegatedRendererLayerImplTestSimple() { 467 : DelegatedRendererLayerImplTestSimple() {
468 delegated_renderer_layer_->SetHasRenderSurface(true); 468 delegated_renderer_layer_->SetHasRenderSurface(true);
469 } 469 }
(...skipping 26 matching lines...) Expand all
496 EXPECT_NE(4, frame.render_passes[5]->id.layer_id); 496 EXPECT_NE(4, frame.render_passes[5]->id.layer_id);
497 EXPECT_EQ(0, frame.render_passes[5]->id.index); 497 EXPECT_EQ(0, frame.render_passes[5]->id.index);
498 498
499 // The DelegatedRendererLayer should have added its RenderPasses to the frame 499 // The DelegatedRendererLayer should have added its RenderPasses to the frame
500 // in order. 500 // in order.
501 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 501 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
502 frame.render_passes[1]->output_rect.ToString()); 502 frame.render_passes[1]->output_rect.ToString());
503 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 503 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
504 frame.render_passes[2]->output_rect.ToString()); 504 frame.render_passes[2]->output_rect.ToString());
505 505
506 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 506 host_impl_->DrawLayers(&frame);
507 host_impl_->DidDrawAllLayers(frame); 507 host_impl_->DidDrawAllLayers(frame);
508 } 508 }
509 509
510 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 510 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
511 AddsQuadsToContributingRenderPasses) { 511 AddsQuadsToContributingRenderPasses) {
512 LayerTreeHostImpl::FrameData frame; 512 LayerTreeHostImpl::FrameData frame;
513 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 513 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
514 514
515 // Each non-DelegatedRendererLayer added one RenderPass. The 515 // Each non-DelegatedRendererLayer added one RenderPass. The
516 // DelegatedRendererLayer added two contributing passes and its owned surface 516 // DelegatedRendererLayer added two contributing passes and its owned surface
(...skipping 17 matching lines...) Expand all
534 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 534 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
535 535
536 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 536 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
537 frame.render_passes[2]->quad_list.front()->rect.ToString()); 537 frame.render_passes[2]->quad_list.front()->rect.ToString());
538 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 538 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
539 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString()); 539 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
540 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 540 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
541 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 541 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
542 frame.render_passes[1]->quad_list.front()->rect.ToString()); 542 frame.render_passes[1]->quad_list.front()->rect.ToString());
543 543
544 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 544 host_impl_->DrawLayers(&frame);
545 host_impl_->DidDrawAllLayers(frame); 545 host_impl_->DidDrawAllLayers(frame);
546 } 546 }
547 547
548 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 548 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
549 LayerTreeHostImpl::FrameData frame; 549 LayerTreeHostImpl::FrameData frame;
550 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 550 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
551 551
552 // Each non-DelegatedRendererLayer added one RenderPass. The 552 // Each non-DelegatedRendererLayer added one RenderPass. The
553 // DelegatedRendererLayer added two contributing passes and its owned surface 553 // DelegatedRendererLayer added two contributing passes and its owned surface
554 // added one pass. 554 // added one pass.
555 ASSERT_EQ(6u, frame.render_passes.size()); 555 ASSERT_EQ(6u, frame.render_passes.size());
556 556
557 // The layer's target is the RenderPass owned by itself. 557 // The layer's target is the RenderPass owned by itself.
558 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id); 558 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id);
559 559
560 // The DelegatedRendererLayer should have added copies of quads in its root 560 // The DelegatedRendererLayer should have added copies of quads in its root
561 // RenderPass to its target RenderPass. 561 // RenderPass to its target RenderPass.
562 // The layer_after also adds one quad. 562 // The layer_after also adds one quad.
563 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 563 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
564 564
565 // Verify it added the right quads. 565 // Verify it added the right quads.
566 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 566 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
567 frame.render_passes[3]->quad_list.front()->rect.ToString()); 567 frame.render_passes[3]->quad_list.front()->rect.ToString());
568 568
569 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 569 host_impl_->DrawLayers(&frame);
570 host_impl_->DidDrawAllLayers(frame); 570 host_impl_->DidDrawAllLayers(frame);
571 } 571 }
572 572
573 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 573 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
574 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 574 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
575 LayerTreeHostImpl::FrameData frame; 575 LayerTreeHostImpl::FrameData frame;
576 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 576 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
577 577
578 // Each non-DelegatedRendererLayer added one RenderPass. The 578 // Each non-DelegatedRendererLayer added one RenderPass. The
579 // DelegatedRendererLayer added two contributing passes and its owned surface 579 // DelegatedRendererLayer added two contributing passes and its owned surface
(...skipping 13 matching lines...) Expand all
593 gfx::Transform(), 593 gfx::Transform(),
594 frame.render_passes[2]->quad_list.front()->quadTransform()); 594 frame.render_passes[2]->quad_list.front()->quadTransform());
595 EXPECT_TRANSFORMATION_MATRIX_EQ( 595 EXPECT_TRANSFORMATION_MATRIX_EQ(
596 gfx::Transform(), 596 gfx::Transform(),
597 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform()); 597 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform());
598 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 598 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
599 EXPECT_TRANSFORMATION_MATRIX_EQ( 599 EXPECT_TRANSFORMATION_MATRIX_EQ(
600 gfx::Transform(), 600 gfx::Transform(),
601 frame.render_passes[1]->quad_list.front()->quadTransform()); 601 frame.render_passes[1]->quad_list.front()->quadTransform());
602 602
603 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 603 host_impl_->DrawLayers(&frame);
604 host_impl_->DidDrawAllLayers(frame); 604 host_impl_->DidDrawAllLayers(frame);
605 } 605 }
606 606
607 class DelegatedRendererLayerImplTestTransform 607 class DelegatedRendererLayerImplTestTransform
608 : public DelegatedRendererLayerImplTest { 608 : public DelegatedRendererLayerImplTest {
609 public: 609 public:
610 DelegatedRendererLayerImplTestTransform() 610 DelegatedRendererLayerImplTestTransform()
611 : root_delegated_render_pass_is_clipped_(false), 611 : root_delegated_render_pass_is_clipped_(false),
612 delegated_device_scale_factor_(2.f) {} 612 delegated_device_scale_factor_(2.f) {}
613 613
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 841 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
842 contrib_delegated_shared_quad_state->clip_rect.ToString()); 842 contrib_delegated_shared_quad_state->clip_rect.ToString());
843 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 843 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
844 expected.MakeIdentity(); 844 expected.MakeIdentity();
845 expected.Scale(0.8f, 0.8f); 845 expected.Scale(0.8f, 0.8f);
846 expected.Translate(9.0, 9.0); 846 expected.Translate(9.0, 9.0);
847 EXPECT_TRANSFORMATION_MATRIX_EQ( 847 EXPECT_TRANSFORMATION_MATRIX_EQ(
848 expected, 848 expected,
849 contrib_delegated_shared_quad_state->content_to_target_transform); 849 contrib_delegated_shared_quad_state->content_to_target_transform);
850 850
851 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 851 host_impl_->DrawLayers(&frame);
852 host_impl_->DidDrawAllLayers(frame); 852 host_impl_->DidDrawAllLayers(frame);
853 } 853 }
854 854
855 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 855 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
856 root_delegated_render_pass_is_clipped_ = true; 856 root_delegated_render_pass_is_clipped_ = true;
857 SetUpTest(); 857 SetUpTest();
858 858
859 LayerTreeHostImpl::FrameData frame; 859 LayerTreeHostImpl::FrameData frame;
860 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 860 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
861 861
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 900 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
901 contrib_delegated_shared_quad_state->clip_rect.ToString()); 901 contrib_delegated_shared_quad_state->clip_rect.ToString());
902 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 902 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
903 expected.MakeIdentity(); 903 expected.MakeIdentity();
904 expected.Scale(0.8f, 0.8f); 904 expected.Scale(0.8f, 0.8f);
905 expected.Translate(9.0, 9.0); 905 expected.Translate(9.0, 9.0);
906 EXPECT_TRANSFORMATION_MATRIX_EQ( 906 EXPECT_TRANSFORMATION_MATRIX_EQ(
907 expected, 907 expected,
908 contrib_delegated_shared_quad_state->content_to_target_transform); 908 contrib_delegated_shared_quad_state->content_to_target_transform);
909 909
910 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 910 host_impl_->DrawLayers(&frame);
911 host_impl_->DidDrawAllLayers(frame); 911 host_impl_->DidDrawAllLayers(frame);
912 } 912 }
913 913
914 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 914 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
915 root_delegated_render_pass_is_clipped_ = false; 915 root_delegated_render_pass_is_clipped_ = false;
916 SetUpTest(); 916 SetUpTest();
917 917
918 delegated_renderer_layer_->SetHasRenderSurface(true); 918 delegated_renderer_layer_->SetHasRenderSurface(true);
919 919
920 LayerTreeHostImpl::FrameData frame; 920 LayerTreeHostImpl::FrameData frame;
(...skipping 28 matching lines...) Expand all
949 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 949 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
950 contrib_delegated_shared_quad_state->clip_rect.ToString()); 950 contrib_delegated_shared_quad_state->clip_rect.ToString());
951 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 951 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
952 expected.MakeIdentity(); 952 expected.MakeIdentity();
953 expected.Scale(0.8f, 0.8f); 953 expected.Scale(0.8f, 0.8f);
954 expected.Translate(9.0, 9.0); 954 expected.Translate(9.0, 9.0);
955 EXPECT_TRANSFORMATION_MATRIX_EQ( 955 EXPECT_TRANSFORMATION_MATRIX_EQ(
956 expected, 956 expected,
957 contrib_delegated_shared_quad_state->content_to_target_transform); 957 contrib_delegated_shared_quad_state->content_to_target_transform);
958 958
959 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 959 host_impl_->DrawLayers(&frame);
960 host_impl_->DidDrawAllLayers(frame); 960 host_impl_->DidDrawAllLayers(frame);
961 } 961 }
962 962
963 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 963 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
964 root_delegated_render_pass_is_clipped_ = true; 964 root_delegated_render_pass_is_clipped_ = true;
965 SetUpTest(); 965 SetUpTest();
966 966
967 delegated_renderer_layer_->SetHasRenderSurface(true); 967 delegated_renderer_layer_->SetHasRenderSurface(true);
968 968
969 LayerTreeHostImpl::FrameData frame; 969 LayerTreeHostImpl::FrameData frame;
(...skipping 27 matching lines...) Expand all
997 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 997 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
998 contrib_delegated_shared_quad_state->clip_rect.ToString()); 998 contrib_delegated_shared_quad_state->clip_rect.ToString());
999 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 999 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
1000 expected.MakeIdentity(); 1000 expected.MakeIdentity();
1001 expected.Scale(0.8f, 0.8f); 1001 expected.Scale(0.8f, 0.8f);
1002 expected.Translate(9.0, 9.0); 1002 expected.Translate(9.0, 9.0);
1003 EXPECT_TRANSFORMATION_MATRIX_EQ( 1003 EXPECT_TRANSFORMATION_MATRIX_EQ(
1004 expected, 1004 expected,
1005 contrib_delegated_shared_quad_state->content_to_target_transform); 1005 contrib_delegated_shared_quad_state->content_to_target_transform);
1006 1006
1007 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1007 host_impl_->DrawLayers(&frame);
1008 host_impl_->DidDrawAllLayers(frame); 1008 host_impl_->DidDrawAllLayers(frame);
1009 } 1009 }
1010 1010
1011 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) { 1011 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) {
1012 root_delegated_render_pass_is_clipped_ = true; 1012 root_delegated_render_pass_is_clipped_ = true;
1013 delegated_device_scale_factor_ = 1.3f; 1013 delegated_device_scale_factor_ = 1.3f;
1014 1014
1015 SetUpTest(); 1015 SetUpTest();
1016 1016
1017 LayerTreeHostImpl::FrameData frame; 1017 LayerTreeHostImpl::FrameData frame;
(...skipping 18 matching lines...) Expand all
1036 expected.Scale(2.0, 2.0); 1036 expected.Scale(2.0, 2.0);
1037 expected.Translate(8.0, 8.0); 1037 expected.Translate(8.0, 8.0);
1038 // This is the transform within the source frame. 1038 // This is the transform within the source frame.
1039 // Inverse device scale factor (from child). 1039 // Inverse device scale factor (from child).
1040 expected.Scale(1.0f / 1.3f, 1.0f / 1.3f); 1040 expected.Scale(1.0f / 1.3f, 1.0f / 1.3f);
1041 expected.Scale(1.5, 1.5); 1041 expected.Scale(1.5, 1.5);
1042 expected.Translate(7.0, 7.0); 1042 expected.Translate(7.0, 7.0);
1043 EXPECT_TRANSFORMATION_MATRIX_EQ( 1043 EXPECT_TRANSFORMATION_MATRIX_EQ(
1044 expected, root_delegated_shared_quad_state->content_to_target_transform); 1044 expected, root_delegated_shared_quad_state->content_to_target_transform);
1045 1045
1046 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1046 host_impl_->DrawLayers(&frame);
1047 host_impl_->DidDrawAllLayers(frame); 1047 host_impl_->DidDrawAllLayers(frame);
1048 } 1048 }
1049 1049
1050 class DelegatedRendererLayerImplTestClip 1050 class DelegatedRendererLayerImplTestClip
1051 : public DelegatedRendererLayerImplTest { 1051 : public DelegatedRendererLayerImplTest {
1052 public: 1052 public:
1053 void SetUpTest() { 1053 void SetUpTest() {
1054 scoped_ptr<LayerImpl> root_layer = 1054 scoped_ptr<LayerImpl> root_layer =
1055 LayerImpl::Create(host_impl_->active_tree(), 1); 1055 LayerImpl::Create(host_impl_->active_tree(), 1);
1056 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 1056 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 const SharedQuadState* root_delegated_shared_quad_state = 1223 const SharedQuadState* root_delegated_shared_quad_state =
1224 root_delegated_quad_list.front()->shared_quad_state; 1224 root_delegated_quad_list.front()->shared_quad_state;
1225 1225
1226 // When the quads don't have a clip of their own, the clip rect is set to 1226 // When the quads don't have a clip of their own, the clip rect is set to
1227 // the drawable_content_rect of the delegated renderer layer. 1227 // the drawable_content_rect of the delegated renderer layer.
1228 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1228 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1229 root_delegated_shared_quad_state->clip_rect.ToString()); 1229 root_delegated_shared_quad_state->clip_rect.ToString());
1230 // Quads are clipped to the delegated renderer layer. 1230 // Quads are clipped to the delegated renderer layer.
1231 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1231 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1232 1232
1233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1233 host_impl_->DrawLayers(&frame);
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_NoSurface) { 1238 QuadsClipped_LayerUnclipped_NoSurface) {
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 LayerTreeHostImpl::FrameData frame; 1243 LayerTreeHostImpl::FrameData frame;
1244 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1244 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1245 1245
1246 ASSERT_EQ(2u, frame.render_passes.size()); 1246 ASSERT_EQ(2u, frame.render_passes.size());
1247 const QuadList& contrib_delegated_quad_list = 1247 const QuadList& contrib_delegated_quad_list =
1248 frame.render_passes[0]->quad_list; 1248 frame.render_passes[0]->quad_list;
1249 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1249 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1250 const QuadList& root_delegated_quad_list = 1250 const QuadList& root_delegated_quad_list =
1251 frame.render_passes[1]->quad_list; 1251 frame.render_passes[1]->quad_list;
1252 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1252 ASSERT_EQ(5u, root_delegated_quad_list.size());
1253 const SharedQuadState* root_delegated_shared_quad_state = 1253 const SharedQuadState* root_delegated_shared_quad_state =
1254 root_delegated_quad_list.front()->shared_quad_state; 1254 root_delegated_quad_list.front()->shared_quad_state;
1255 1255
1256 // When the quads have a clip of their own, it is used. 1256 // When the quads have a clip of their own, it is used.
1257 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1257 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1258 root_delegated_shared_quad_state->clip_rect.ToString()); 1258 root_delegated_shared_quad_state->clip_rect.ToString());
1259 // Quads came with a clip rect. 1259 // Quads came with a clip rect.
1260 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1260 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1261 1261
1262 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1262 host_impl_->DrawLayers(&frame);
1263 host_impl_->DidDrawAllLayers(frame); 1263 host_impl_->DidDrawAllLayers(frame);
1264 } 1264 }
1265 1265
1266 TEST_F(DelegatedRendererLayerImplTestClip, 1266 TEST_F(DelegatedRendererLayerImplTestClip,
1267 QuadsUnclipped_LayerClipped_NoSurface) { 1267 QuadsUnclipped_LayerClipped_NoSurface) {
1268 root_delegated_render_pass_is_clipped_ = false; 1268 root_delegated_render_pass_is_clipped_ = false;
1269 clip_delegated_renderer_layer_ = true; 1269 clip_delegated_renderer_layer_ = true;
1270 SetUpTest(); 1270 SetUpTest();
1271 1271
1272 LayerTreeHostImpl::FrameData frame; 1272 LayerTreeHostImpl::FrameData frame;
1273 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1273 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1274 1274
1275 ASSERT_EQ(2u, frame.render_passes.size()); 1275 ASSERT_EQ(2u, frame.render_passes.size());
1276 const QuadList& contrib_delegated_quad_list = 1276 const QuadList& contrib_delegated_quad_list =
1277 frame.render_passes[0]->quad_list; 1277 frame.render_passes[0]->quad_list;
1278 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1278 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1279 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1279 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1280 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1280 ASSERT_EQ(5u, root_delegated_quad_list.size());
1281 const SharedQuadState* root_delegated_shared_quad_state = 1281 const SharedQuadState* root_delegated_shared_quad_state =
1282 root_delegated_quad_list.front()->shared_quad_state; 1282 root_delegated_quad_list.front()->shared_quad_state;
1283 1283
1284 // When the quads don't have a clip of their own, the clip rect is set to 1284 // When the quads don't have a clip of their own, the clip rect is set to
1285 // the drawable_content_rect of the delegated renderer layer. When the layer 1285 // the drawable_content_rect of the delegated renderer layer. When the layer
1286 // is clipped, that should be seen in the quads' clip_rect. 1286 // is clipped, that should be seen in the quads' clip_rect.
1287 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1287 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1288 root_delegated_shared_quad_state->clip_rect.ToString()); 1288 root_delegated_shared_quad_state->clip_rect.ToString());
1289 // Quads are clipped to the delegated renderer layer. 1289 // Quads are clipped to the delegated renderer layer.
1290 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1290 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1291 1291
1292 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1292 host_impl_->DrawLayers(&frame);
1293 host_impl_->DidDrawAllLayers(frame); 1293 host_impl_->DidDrawAllLayers(frame);
1294 } 1294 }
1295 1295
1296 TEST_F(DelegatedRendererLayerImplTestClip, 1296 TEST_F(DelegatedRendererLayerImplTestClip,
1297 QuadsClipped_LayerClipped_NoSurface) { 1297 QuadsClipped_LayerClipped_NoSurface) {
1298 root_delegated_render_pass_is_clipped_ = true; 1298 root_delegated_render_pass_is_clipped_ = true;
1299 clip_delegated_renderer_layer_ = true; 1299 clip_delegated_renderer_layer_ = true;
1300 SetUpTest(); 1300 SetUpTest();
1301 1301
1302 LayerTreeHostImpl::FrameData frame; 1302 LayerTreeHostImpl::FrameData frame;
1303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1304 1304
1305 ASSERT_EQ(2u, frame.render_passes.size()); 1305 ASSERT_EQ(2u, frame.render_passes.size());
1306 const QuadList& contrib_delegated_quad_list = 1306 const QuadList& contrib_delegated_quad_list =
1307 frame.render_passes[0]->quad_list; 1307 frame.render_passes[0]->quad_list;
1308 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1308 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1309 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1309 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1310 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1310 ASSERT_EQ(5u, root_delegated_quad_list.size());
1311 const SharedQuadState* root_delegated_shared_quad_state = 1311 const SharedQuadState* root_delegated_shared_quad_state =
1312 root_delegated_quad_list.front()->shared_quad_state; 1312 root_delegated_quad_list.front()->shared_quad_state;
1313 1313
1314 // When the quads have a clip of their own, it is used, but it is 1314 // When the quads have a clip of their own, it is used, but it is
1315 // combined with the clip rect of the delegated renderer layer. 1315 // combined with the clip rect of the delegated renderer layer.
1316 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), 1316 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(),
1317 root_delegated_shared_quad_state->clip_rect.ToString()); 1317 root_delegated_shared_quad_state->clip_rect.ToString());
1318 // Quads came with a clip rect. 1318 // Quads came with a clip rect.
1319 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1319 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1320 1320
1321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1321 host_impl_->DrawLayers(&frame);
1322 host_impl_->DidDrawAllLayers(frame); 1322 host_impl_->DidDrawAllLayers(frame);
1323 } 1323 }
1324 1324
1325 TEST_F(DelegatedRendererLayerImplTestClip, 1325 TEST_F(DelegatedRendererLayerImplTestClip,
1326 QuadsUnclipped_LayerUnclipped_Surface) { 1326 QuadsUnclipped_LayerUnclipped_Surface) {
1327 root_delegated_render_pass_is_clipped_ = false; 1327 root_delegated_render_pass_is_clipped_ = false;
1328 clip_delegated_renderer_layer_ = false; 1328 clip_delegated_renderer_layer_ = false;
1329 SetUpTest(); 1329 SetUpTest();
1330 1330
1331 delegated_renderer_layer_->SetHasRenderSurface(true); 1331 delegated_renderer_layer_->SetHasRenderSurface(true);
1332 1332
1333 LayerTreeHostImpl::FrameData frame; 1333 LayerTreeHostImpl::FrameData frame;
1334 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1334 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1335 1335
1336 ASSERT_EQ(3u, frame.render_passes.size()); 1336 ASSERT_EQ(3u, frame.render_passes.size());
1337 const QuadList& contrib_delegated_quad_list = 1337 const QuadList& contrib_delegated_quad_list =
1338 frame.render_passes[0]->quad_list; 1338 frame.render_passes[0]->quad_list;
1339 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1339 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1340 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1340 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1341 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1341 ASSERT_EQ(5u, root_delegated_quad_list.size());
1342 const SharedQuadState* root_delegated_shared_quad_state = 1342 const SharedQuadState* root_delegated_shared_quad_state =
1343 root_delegated_quad_list.front()->shared_quad_state; 1343 root_delegated_quad_list.front()->shared_quad_state;
1344 1344
1345 // When the layer owns a surface, the quads don't need to be clipped 1345 // When the layer owns a surface, the quads don't need to be clipped
1346 // further than they already specify. If they aren't clipped, then their 1346 // further than they already specify. If they aren't clipped, then their
1347 // clip rect is ignored, and they are not set as clipped. 1347 // clip rect is ignored, and they are not set as clipped.
1348 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1348 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1349 1349
1350 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1350 host_impl_->DrawLayers(&frame);
1351 host_impl_->DidDrawAllLayers(frame); 1351 host_impl_->DidDrawAllLayers(frame);
1352 } 1352 }
1353 1353
1354 TEST_F(DelegatedRendererLayerImplTestClip, 1354 TEST_F(DelegatedRendererLayerImplTestClip,
1355 QuadsClipped_LayerUnclipped_Surface) { 1355 QuadsClipped_LayerUnclipped_Surface) {
1356 root_delegated_render_pass_is_clipped_ = true; 1356 root_delegated_render_pass_is_clipped_ = true;
1357 clip_delegated_renderer_layer_ = false; 1357 clip_delegated_renderer_layer_ = false;
1358 SetUpTest(); 1358 SetUpTest();
1359 1359
1360 delegated_renderer_layer_->SetHasRenderSurface(true); 1360 delegated_renderer_layer_->SetHasRenderSurface(true);
1361 1361
1362 LayerTreeHostImpl::FrameData frame; 1362 LayerTreeHostImpl::FrameData frame;
1363 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1363 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1364 1364
1365 ASSERT_EQ(3u, frame.render_passes.size()); 1365 ASSERT_EQ(3u, frame.render_passes.size());
1366 const QuadList& contrib_delegated_quad_list = 1366 const QuadList& contrib_delegated_quad_list =
1367 frame.render_passes[0]->quad_list; 1367 frame.render_passes[0]->quad_list;
1368 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1368 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1369 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1369 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1370 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1370 ASSERT_EQ(5u, root_delegated_quad_list.size());
1371 const SharedQuadState* root_delegated_shared_quad_state = 1371 const SharedQuadState* root_delegated_shared_quad_state =
1372 root_delegated_quad_list.front()->shared_quad_state; 1372 root_delegated_quad_list.front()->shared_quad_state;
1373 1373
1374 // When the quads have a clip of their own, it is used. 1374 // When the quads have a clip of their own, it is used.
1375 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1375 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1376 root_delegated_shared_quad_state->clip_rect.ToString()); 1376 root_delegated_shared_quad_state->clip_rect.ToString());
1377 // Quads came with a clip rect. 1377 // Quads came with a clip rect.
1378 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1378 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1379 1379
1380 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1380 host_impl_->DrawLayers(&frame);
1381 host_impl_->DidDrawAllLayers(frame); 1381 host_impl_->DidDrawAllLayers(frame);
1382 } 1382 }
1383 1383
1384 TEST_F(DelegatedRendererLayerImplTestClip, 1384 TEST_F(DelegatedRendererLayerImplTestClip,
1385 QuadsUnclipped_LayerClipped_Surface) { 1385 QuadsUnclipped_LayerClipped_Surface) {
1386 root_delegated_render_pass_is_clipped_ = false; 1386 root_delegated_render_pass_is_clipped_ = false;
1387 clip_delegated_renderer_layer_ = true; 1387 clip_delegated_renderer_layer_ = true;
1388 SetUpTest(); 1388 SetUpTest();
1389 1389
1390 delegated_renderer_layer_->SetHasRenderSurface(true); 1390 delegated_renderer_layer_->SetHasRenderSurface(true);
1391 1391
1392 LayerTreeHostImpl::FrameData frame; 1392 LayerTreeHostImpl::FrameData frame;
1393 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1393 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1394 1394
1395 ASSERT_EQ(3u, frame.render_passes.size()); 1395 ASSERT_EQ(3u, frame.render_passes.size());
1396 const QuadList& contrib_delegated_quad_list = 1396 const QuadList& contrib_delegated_quad_list =
1397 frame.render_passes[0]->quad_list; 1397 frame.render_passes[0]->quad_list;
1398 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1398 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1399 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1399 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1400 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1400 ASSERT_EQ(5u, root_delegated_quad_list.size());
1401 const SharedQuadState* root_delegated_shared_quad_state = 1401 const SharedQuadState* root_delegated_shared_quad_state =
1402 root_delegated_quad_list.front()->shared_quad_state; 1402 root_delegated_quad_list.front()->shared_quad_state;
1403 1403
1404 // When the layer owns a surface, the quads don't need to be clipped 1404 // When the layer owns a surface, the quads don't need to be clipped
1405 // further than they already specify. If they aren't clipped, then their 1405 // further than they already specify. If they aren't clipped, then their
1406 // clip rect is ignored, and they are not set as clipped. 1406 // clip rect is ignored, and they are not set as clipped.
1407 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1407 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1408 1408
1409 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1409 host_impl_->DrawLayers(&frame);
1410 host_impl_->DidDrawAllLayers(frame); 1410 host_impl_->DidDrawAllLayers(frame);
1411 } 1411 }
1412 1412
1413 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1413 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1414 root_delegated_render_pass_is_clipped_ = true; 1414 root_delegated_render_pass_is_clipped_ = true;
1415 clip_delegated_renderer_layer_ = true; 1415 clip_delegated_renderer_layer_ = true;
1416 SetUpTest(); 1416 SetUpTest();
1417 1417
1418 delegated_renderer_layer_->SetHasRenderSurface(true); 1418 delegated_renderer_layer_->SetHasRenderSurface(true);
1419 1419
(...skipping 10 matching lines...) Expand all
1430 root_delegated_quad_list.front()->shared_quad_state; 1430 root_delegated_quad_list.front()->shared_quad_state;
1431 1431
1432 // When the quads have a clip of their own, it is used, but it is 1432 // When the quads have a clip of their own, it is used, but it is
1433 // combined with the clip rect of the delegated renderer layer. If the 1433 // combined with the clip rect of the delegated renderer layer. If the
1434 // layer owns a surface, then it does not have a clip rect of its own. 1434 // layer owns a surface, then it does not have a clip rect of its own.
1435 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1435 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1436 root_delegated_shared_quad_state->clip_rect.ToString()); 1436 root_delegated_shared_quad_state->clip_rect.ToString());
1437 // Quads came with a clip rect. 1437 // Quads came with a clip rect.
1438 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1438 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1439 1439
1440 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1440 host_impl_->DrawLayers(&frame);
1441 host_impl_->DidDrawAllLayers(frame); 1441 host_impl_->DidDrawAllLayers(frame);
1442 } 1442 }
1443 1443
1444 TEST_F(DelegatedRendererLayerImplTest, Occlusion) { 1444 TEST_F(DelegatedRendererLayerImplTest, Occlusion) {
1445 gfx::Size layer_size(1000, 1000); 1445 gfx::Size layer_size(1000, 1000);
1446 gfx::Size viewport_size(1000, 1000); 1446 gfx::Size viewport_size(1000, 1000);
1447 gfx::Rect quad_screen_rect(211, 300, 400, 500); 1447 gfx::Rect quad_screen_rect(211, 300, 400, 500);
1448 1448
1449 gfx::Transform transform; 1449 gfx::Transform transform;
1450 transform.Translate(211.0, 300.0); 1450 transform.Translate(211.0, 300.0);
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 scoped_ptr<DelegatedRendererLayerImpl> other_layer = 1694 scoped_ptr<DelegatedRendererLayerImpl> other_layer =
1695 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); 1695 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6);
1696 1696
1697 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); 1697 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get());
1698 1698
1699 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); 1699 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor());
1700 } 1700 }
1701 1701
1702 } // namespace 1702 } // namespace
1703 } // namespace cc 1703 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/test/layer_tree_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698