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 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: change header files to try fix compile error Created 6 years, 2 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
« no previous file with comments | « cc/layers/delegated_renderer_layer_impl.cc ('k') | cc/layers/nine_patch_layer_impl_unittest.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 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 // to the frame. 182 // to the frame.
183 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 183 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
184 EXPECT_EQ(1, frame.render_passes[1]->id.index); 184 EXPECT_EQ(1, frame.render_passes[1]->id.index);
185 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 185 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
186 EXPECT_EQ(2, frame.render_passes[2]->id.index); 186 EXPECT_EQ(2, frame.render_passes[2]->id.index);
187 187
188 // The DelegatedRendererLayer should have added copies of its quads to 188 // The DelegatedRendererLayer should have added copies of its quads to
189 // contributing RenderPasses. 189 // contributing RenderPasses.
190 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 190 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
192 frame.render_passes[1]->quad_list[0]->rect.ToString()); 192 frame.render_passes[1]->quad_list.front()->rect.ToString());
193 193
194 // Verify it added the right quads. 194 // Verify it added the right quads.
195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
197 frame.render_passes[2]->quad_list[0]->rect.ToString()); 197 frame.render_passes[2]->quad_list.front()->rect.ToString());
198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
199 frame.render_passes[2]->quad_list[1]->rect.ToString()); 199 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
202 frame.render_passes[1]->quad_list[0]->rect.ToString()); 202 frame.render_passes[1]->quad_list.front()->rect.ToString());
203 203
204 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 204 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
205 host_impl_->DidDrawAllLayers(frame); 205 host_impl_->DidDrawAllLayers(frame);
206 } 206 }
207 207
208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
209 LayerTreeHostImpl::FrameData frame; 209 LayerTreeHostImpl::FrameData frame;
210 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 210 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
211 211
212 // Each non-DelegatedRendererLayer added one RenderPass. The 212 // Each non-DelegatedRendererLayer added one RenderPass. The
213 // DelegatedRendererLayer added two contributing passes. 213 // DelegatedRendererLayer added two contributing passes.
214 ASSERT_EQ(5u, frame.render_passes.size()); 214 ASSERT_EQ(5u, frame.render_passes.size());
215 215
216 // The layer's target is the RenderPass from layer_after_. 216 // The layer's target is the RenderPass from layer_after_.
217 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id); 217 EXPECT_EQ(RenderPassId(3, 0), frame.render_passes[3]->id);
218 218
219 // The DelegatedRendererLayer should have added copies of quads in its root 219 // The DelegatedRendererLayer should have added copies of quads in its root
220 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 220 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
222 222
223 // Verify it added the right quads. 223 // Verify it added the right quads.
224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
225 frame.render_passes[3]->quad_list[0]->rect.ToString()); 225 frame.render_passes[3]->quad_list.front()->rect.ToString());
226 226
227 // Its target layer should have a quad as well. 227 // Its target layer should have a quad as well.
228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
229 frame.render_passes[3]->quad_list[1]->rect.ToString()); 229 frame.render_passes[3]->quad_list.ElementAt(1)->rect.ToString());
230 230
231 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 231 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
232 host_impl_->DidDrawAllLayers(frame); 232 host_impl_->DidDrawAllLayers(frame);
233 } 233 }
234 234
235 TEST_F(DelegatedRendererLayerImplTestSimple, 235 TEST_F(DelegatedRendererLayerImplTestSimple,
236 QuadsFromRootRenderPassAreModifiedForTheTarget) { 236 QuadsFromRootRenderPassAreModifiedForTheTarget) {
237 LayerTreeHostImpl::FrameData frame; 237 LayerTreeHostImpl::FrameData frame;
238 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 238 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
239 239
240 // Each non-DelegatedRendererLayer added one RenderPass. The 240 // Each non-DelegatedRendererLayer added one RenderPass. The
241 // DelegatedRendererLayer added two contributing passes. 241 // DelegatedRendererLayer added two contributing passes.
242 ASSERT_EQ(5u, frame.render_passes.size()); 242 ASSERT_EQ(5u, frame.render_passes.size());
243 243
244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
245 // has a translation transform of 1,1. So its root RenderPass' quads should 245 // has a translation transform of 1,1. So its root RenderPass' quads should
246 // all be transformed by that combined amount. 246 // all be transformed by that combined amount.
247 gfx::Transform transform; 247 gfx::Transform transform;
248 transform.Translate(4.0, 4.0); 248 transform.Translate(4.0, 4.0);
249 EXPECT_TRANSFORMATION_MATRIX_EQ( 249 EXPECT_TRANSFORMATION_MATRIX_EQ(
250 transform, frame.render_passes[3]->quad_list[0]->quadTransform()); 250 transform, frame.render_passes[3]->quad_list.front()->quadTransform());
251 251
252 // Quads from non-root RenderPasses should not be shifted though. 252 // Quads from non-root RenderPasses should not be shifted though.
253 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 253 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
254
254 EXPECT_TRANSFORMATION_MATRIX_EQ( 255 EXPECT_TRANSFORMATION_MATRIX_EQ(
255 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 256 gfx::Transform(),
257 frame.render_passes[2]->quad_list.front()->quadTransform());
256 EXPECT_TRANSFORMATION_MATRIX_EQ( 258 EXPECT_TRANSFORMATION_MATRIX_EQ(
257 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 259 gfx::Transform(),
260 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform());
258 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 261 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
259 EXPECT_TRANSFORMATION_MATRIX_EQ( 262 EXPECT_TRANSFORMATION_MATRIX_EQ(
260 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 263 gfx::Transform(),
264 frame.render_passes[1]->quad_list.front()->quadTransform());
261 265
262 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 266 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
263 host_impl_->DidDrawAllLayers(frame); 267 host_impl_->DidDrawAllLayers(frame);
264 } 268 }
265 269
266 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 270 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
267 LayerTreeHostImpl::FrameData frame; 271 LayerTreeHostImpl::FrameData frame;
268 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 272 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
269 273
270 // The delegated layer has a surface between it and the root. 274 // The delegated layer has a surface between it and the root.
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 // to the frame. 409 // to the frame.
406 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 410 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
407 EXPECT_EQ(1, frame.render_passes[1]->id.index); 411 EXPECT_EQ(1, frame.render_passes[1]->id.index);
408 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 412 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
409 EXPECT_EQ(2, frame.render_passes[2]->id.index); 413 EXPECT_EQ(2, frame.render_passes[2]->id.index);
410 414
411 // The DelegatedRendererLayer should have added copies of its quads to 415 // The DelegatedRendererLayer should have added copies of its quads to
412 // contributing RenderPasses. 416 // contributing RenderPasses.
413 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 417 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
414 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 418 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
415 frame.render_passes[1]->quad_list[0]->rect.ToString()); 419 frame.render_passes[1]->quad_list.front()->rect.ToString());
416 420
417 // Verify it added the right quads. 421 // Verify it added the right quads.
418 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 422 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
423
419 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 424 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
420 frame.render_passes[2]->quad_list[0]->rect.ToString()); 425 frame.render_passes[2]->quad_list.front()->rect.ToString());
421 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 426 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
422 frame.render_passes[2]->quad_list[1]->rect.ToString()); 427 frame.render_passes[2]->quad_list.ElementAt(1)->rect.ToString());
423 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 428 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
424 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 429 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
425 frame.render_passes[1]->quad_list[0]->rect.ToString()); 430 frame.render_passes[1]->quad_list.front()->rect.ToString());
426 431
427 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 432 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
428 host_impl_->DidDrawAllLayers(frame); 433 host_impl_->DidDrawAllLayers(frame);
429 } 434 }
430 435
431 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 436 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
432 LayerTreeHostImpl::FrameData frame; 437 LayerTreeHostImpl::FrameData frame;
433 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 438 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
434 439
435 // Each non-DelegatedRendererLayer added one RenderPass. The 440 // Each non-DelegatedRendererLayer added one RenderPass. The
436 // DelegatedRendererLayer added two contributing passes and its owned surface 441 // DelegatedRendererLayer added two contributing passes and its owned surface
437 // added one pass. 442 // added one pass.
438 ASSERT_EQ(6u, frame.render_passes.size()); 443 ASSERT_EQ(6u, frame.render_passes.size());
439 444
440 // The layer's target is the RenderPass owned by itself. 445 // The layer's target is the RenderPass owned by itself.
441 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id); 446 EXPECT_EQ(RenderPassId(4, 0), frame.render_passes[3]->id);
442 447
443 // The DelegatedRendererLayer should have added copies of quads in its root 448 // The DelegatedRendererLayer should have added copies of quads in its root
444 // RenderPass to its target RenderPass. 449 // RenderPass to its target RenderPass.
445 // The layer_after also adds one quad. 450 // The layer_after also adds one quad.
446 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 451 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
447 452
448 // Verify it added the right quads. 453 // Verify it added the right quads.
449 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 454 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
450 frame.render_passes[3]->quad_list[0]->rect.ToString()); 455 frame.render_passes[3]->quad_list.front()->rect.ToString());
451 456
452 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 457 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
453 host_impl_->DidDrawAllLayers(frame); 458 host_impl_->DidDrawAllLayers(frame);
454 } 459 }
455 460
456 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 461 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
457 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 462 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
458 LayerTreeHostImpl::FrameData frame; 463 LayerTreeHostImpl::FrameData frame;
459 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 464 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
460 465
461 // Each non-DelegatedRendererLayer added one RenderPass. The 466 // Each non-DelegatedRendererLayer added one RenderPass. The
462 // DelegatedRendererLayer added two contributing passes and its owned surface 467 // DelegatedRendererLayer added two contributing passes and its owned surface
463 // added one pass. 468 // added one pass.
464 ASSERT_EQ(6u, frame.render_passes.size()); 469 ASSERT_EQ(6u, frame.render_passes.size());
465 470
466 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 471 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
467 // RenderPass' quads do not need to be translated at all. 472 // RenderPass' quads do not need to be translated at all.
468 EXPECT_TRANSFORMATION_MATRIX_EQ( 473 EXPECT_TRANSFORMATION_MATRIX_EQ(
469 gfx::Transform(), frame.render_passes[3]->quad_list[0]->quadTransform()); 474 gfx::Transform(),
475 frame.render_passes[3]->quad_list.front()->quadTransform());
470 476
471 // Quads from non-root RenderPasses should not be shifted either. 477 // Quads from non-root RenderPasses should not be shifted either.
472 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 478 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
479
473 EXPECT_TRANSFORMATION_MATRIX_EQ( 480 EXPECT_TRANSFORMATION_MATRIX_EQ(
474 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 481 gfx::Transform(),
482 frame.render_passes[2]->quad_list.front()->quadTransform());
475 EXPECT_TRANSFORMATION_MATRIX_EQ( 483 EXPECT_TRANSFORMATION_MATRIX_EQ(
476 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 484 gfx::Transform(),
485 frame.render_passes[2]->quad_list.ElementAt(1)->quadTransform());
477 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 486 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
478 EXPECT_TRANSFORMATION_MATRIX_EQ( 487 EXPECT_TRANSFORMATION_MATRIX_EQ(
479 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 488 gfx::Transform(),
489 frame.render_passes[1]->quad_list.front()->quadTransform());
480 490
481 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 491 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
482 host_impl_->DidDrawAllLayers(frame); 492 host_impl_->DidDrawAllLayers(frame);
483 } 493 }
484 494
485 class DelegatedRendererLayerImplTestTransform 495 class DelegatedRendererLayerImplTestTransform
486 : public DelegatedRendererLayerImplTest { 496 : public DelegatedRendererLayerImplTest {
487 public: 497 public:
488 DelegatedRendererLayerImplTestTransform() 498 DelegatedRendererLayerImplTestTransform()
489 : root_delegated_render_pass_is_clipped_(false), 499 : root_delegated_render_pass_is_clipped_(false),
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 const QuadList& contrib_delegated_quad_list = 653 const QuadList& contrib_delegated_quad_list =
644 frame.render_passes[0]->quad_list; 654 frame.render_passes[0]->quad_list;
645 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 655 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
646 656
647 const QuadList& root_delegated_quad_list = 657 const QuadList& root_delegated_quad_list =
648 frame.render_passes[1]->quad_list; 658 frame.render_passes[1]->quad_list;
649 ASSERT_EQ(5u, root_delegated_quad_list.size()); 659 ASSERT_EQ(5u, root_delegated_quad_list.size());
650 660
651 // All quads in a render pass should share the same state. 661 // All quads in a render pass should share the same state.
652 *contrib_delegated_shared_quad_state = 662 *contrib_delegated_shared_quad_state =
653 contrib_delegated_quad_list[0]->shared_quad_state; 663 contrib_delegated_quad_list.front()->shared_quad_state;
654 EXPECT_EQ(*contrib_delegated_shared_quad_state, 664 EXPECT_EQ(*contrib_delegated_shared_quad_state,
655 contrib_delegated_quad_list[1]->shared_quad_state); 665 contrib_delegated_quad_list.ElementAt(1)->shared_quad_state);
656 666
657 *root_delegated_shared_quad_state = 667 *root_delegated_shared_quad_state =
658 root_delegated_quad_list[0]->shared_quad_state; 668 root_delegated_quad_list.front()->shared_quad_state;
659 EXPECT_EQ(*root_delegated_shared_quad_state, 669 EXPECT_EQ(*root_delegated_shared_quad_state,
660 root_delegated_quad_list[1]->shared_quad_state); 670 root_delegated_quad_list.ElementAt(1)->shared_quad_state);
661 EXPECT_EQ(*root_delegated_shared_quad_state, 671 EXPECT_EQ(*root_delegated_shared_quad_state,
662 root_delegated_quad_list[2]->shared_quad_state); 672 root_delegated_quad_list.ElementAt(2)->shared_quad_state);
663 EXPECT_EQ(*root_delegated_shared_quad_state, 673 EXPECT_EQ(*root_delegated_shared_quad_state,
664 root_delegated_quad_list[3]->shared_quad_state); 674 root_delegated_quad_list.ElementAt(3)->shared_quad_state);
665 EXPECT_EQ(*root_delegated_shared_quad_state, 675 EXPECT_EQ(*root_delegated_shared_quad_state,
666 root_delegated_quad_list[4]->shared_quad_state); 676 root_delegated_quad_list.ElementAt(4)->shared_quad_state);
667 677
668 EXPECT_NE(*contrib_delegated_shared_quad_state, 678 EXPECT_NE(*contrib_delegated_shared_quad_state,
669 *root_delegated_shared_quad_state); 679 *root_delegated_shared_quad_state);
670 } 680 }
671 681
672 protected: 682 protected:
673 LayerImpl* root_layer_; 683 LayerImpl* root_layer_;
674 DelegatedRendererLayerImpl* delegated_renderer_layer_; 684 DelegatedRendererLayerImpl* delegated_renderer_layer_;
675 bool root_delegated_render_pass_is_clipped_; 685 bool root_delegated_render_pass_is_clipped_;
676 float delegated_device_scale_factor_; 686 float delegated_device_scale_factor_;
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 LayerTreeHostImpl::FrameData frame; 1102 LayerTreeHostImpl::FrameData frame;
1093 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1103 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1094 1104
1095 ASSERT_EQ(2u, frame.render_passes.size()); 1105 ASSERT_EQ(2u, frame.render_passes.size());
1096 const QuadList& contrib_delegated_quad_list = 1106 const QuadList& contrib_delegated_quad_list =
1097 frame.render_passes[0]->quad_list; 1107 frame.render_passes[0]->quad_list;
1098 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1108 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1099 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1109 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1100 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1110 ASSERT_EQ(5u, root_delegated_quad_list.size());
1101 const SharedQuadState* root_delegated_shared_quad_state = 1111 const SharedQuadState* root_delegated_shared_quad_state =
1102 root_delegated_quad_list[0]->shared_quad_state; 1112 root_delegated_quad_list.front()->shared_quad_state;
1103 1113
1104 // When the quads don't have a clip of their own, the clip rect is set to 1114 // When the quads don't have a clip of their own, the clip rect is set to
1105 // the drawable_content_rect of the delegated renderer layer. 1115 // the drawable_content_rect of the delegated renderer layer.
1106 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1116 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1107 root_delegated_shared_quad_state->clip_rect.ToString()); 1117 root_delegated_shared_quad_state->clip_rect.ToString());
1108 // Quads are clipped to the delegated renderer layer. 1118 // Quads are clipped to the delegated renderer layer.
1109 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1119 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1110 1120
1111 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1121 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1112 host_impl_->DidDrawAllLayers(frame); 1122 host_impl_->DidDrawAllLayers(frame);
1113 } 1123 }
1114 1124
1115 TEST_F(DelegatedRendererLayerImplTestClip, 1125 TEST_F(DelegatedRendererLayerImplTestClip,
1116 QuadsClipped_LayerUnclipped_NoSurface) { 1126 QuadsClipped_LayerUnclipped_NoSurface) {
1117 root_delegated_render_pass_is_clipped_ = true; 1127 root_delegated_render_pass_is_clipped_ = true;
1118 clip_delegated_renderer_layer_ = false; 1128 clip_delegated_renderer_layer_ = false;
1119 SetUpTest(); 1129 SetUpTest();
1120 1130
1121 LayerTreeHostImpl::FrameData frame; 1131 LayerTreeHostImpl::FrameData frame;
1122 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1132 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1123 1133
1124 ASSERT_EQ(2u, frame.render_passes.size()); 1134 ASSERT_EQ(2u, frame.render_passes.size());
1125 const QuadList& contrib_delegated_quad_list = 1135 const QuadList& contrib_delegated_quad_list =
1126 frame.render_passes[0]->quad_list; 1136 frame.render_passes[0]->quad_list;
1127 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1137 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1128 const QuadList& root_delegated_quad_list = 1138 const QuadList& root_delegated_quad_list =
1129 frame.render_passes[1]->quad_list; 1139 frame.render_passes[1]->quad_list;
1130 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1140 ASSERT_EQ(5u, root_delegated_quad_list.size());
1131 const SharedQuadState* root_delegated_shared_quad_state = 1141 const SharedQuadState* root_delegated_shared_quad_state =
1132 root_delegated_quad_list[0]->shared_quad_state; 1142 root_delegated_quad_list.front()->shared_quad_state;
1133 1143
1134 // When the quads have a clip of their own, it is used. 1144 // When the quads have a clip of their own, it is used.
1135 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1145 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1136 root_delegated_shared_quad_state->clip_rect.ToString()); 1146 root_delegated_shared_quad_state->clip_rect.ToString());
1137 // Quads came with a clip rect. 1147 // Quads came with a clip rect.
1138 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1148 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1139 1149
1140 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1150 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1141 host_impl_->DidDrawAllLayers(frame); 1151 host_impl_->DidDrawAllLayers(frame);
1142 } 1152 }
1143 1153
1144 TEST_F(DelegatedRendererLayerImplTestClip, 1154 TEST_F(DelegatedRendererLayerImplTestClip,
1145 QuadsUnclipped_LayerClipped_NoSurface) { 1155 QuadsUnclipped_LayerClipped_NoSurface) {
1146 root_delegated_render_pass_is_clipped_ = false; 1156 root_delegated_render_pass_is_clipped_ = false;
1147 clip_delegated_renderer_layer_ = true; 1157 clip_delegated_renderer_layer_ = true;
1148 SetUpTest(); 1158 SetUpTest();
1149 1159
1150 LayerTreeHostImpl::FrameData frame; 1160 LayerTreeHostImpl::FrameData frame;
1151 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1161 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1152 1162
1153 ASSERT_EQ(2u, frame.render_passes.size()); 1163 ASSERT_EQ(2u, frame.render_passes.size());
1154 const QuadList& contrib_delegated_quad_list = 1164 const QuadList& contrib_delegated_quad_list =
1155 frame.render_passes[0]->quad_list; 1165 frame.render_passes[0]->quad_list;
1156 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1166 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1157 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1167 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1158 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1168 ASSERT_EQ(5u, root_delegated_quad_list.size());
1159 const SharedQuadState* root_delegated_shared_quad_state = 1169 const SharedQuadState* root_delegated_shared_quad_state =
1160 root_delegated_quad_list[0]->shared_quad_state; 1170 root_delegated_quad_list.front()->shared_quad_state;
1161 1171
1162 // When the quads don't have a clip of their own, the clip rect is set to 1172 // When the quads don't have a clip of their own, the clip rect is set to
1163 // the drawable_content_rect of the delegated renderer layer. When the layer 1173 // the drawable_content_rect of the delegated renderer layer. When the layer
1164 // is clipped, that should be seen in the quads' clip_rect. 1174 // is clipped, that should be seen in the quads' clip_rect.
1165 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1175 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1166 root_delegated_shared_quad_state->clip_rect.ToString()); 1176 root_delegated_shared_quad_state->clip_rect.ToString());
1167 // Quads are clipped to the delegated renderer layer. 1177 // Quads are clipped to the delegated renderer layer.
1168 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1178 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1169 1179
1170 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1180 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1171 host_impl_->DidDrawAllLayers(frame); 1181 host_impl_->DidDrawAllLayers(frame);
1172 } 1182 }
1173 1183
1174 TEST_F(DelegatedRendererLayerImplTestClip, 1184 TEST_F(DelegatedRendererLayerImplTestClip,
1175 QuadsClipped_LayerClipped_NoSurface) { 1185 QuadsClipped_LayerClipped_NoSurface) {
1176 root_delegated_render_pass_is_clipped_ = true; 1186 root_delegated_render_pass_is_clipped_ = true;
1177 clip_delegated_renderer_layer_ = true; 1187 clip_delegated_renderer_layer_ = true;
1178 SetUpTest(); 1188 SetUpTest();
1179 1189
1180 LayerTreeHostImpl::FrameData frame; 1190 LayerTreeHostImpl::FrameData frame;
1181 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1191 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1182 1192
1183 ASSERT_EQ(2u, frame.render_passes.size()); 1193 ASSERT_EQ(2u, frame.render_passes.size());
1184 const QuadList& contrib_delegated_quad_list = 1194 const QuadList& contrib_delegated_quad_list =
1185 frame.render_passes[0]->quad_list; 1195 frame.render_passes[0]->quad_list;
1186 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1196 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1187 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1197 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1188 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1198 ASSERT_EQ(5u, root_delegated_quad_list.size());
1189 const SharedQuadState* root_delegated_shared_quad_state = 1199 const SharedQuadState* root_delegated_shared_quad_state =
1190 root_delegated_quad_list[0]->shared_quad_state; 1200 root_delegated_quad_list.front()->shared_quad_state;
1191 1201
1192 // When the quads have a clip of their own, it is used, but it is 1202 // When the quads have a clip of their own, it is used, but it is
1193 // combined with the clip rect of the delegated renderer layer. 1203 // combined with the clip rect of the delegated renderer layer.
1194 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), 1204 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(),
1195 root_delegated_shared_quad_state->clip_rect.ToString()); 1205 root_delegated_shared_quad_state->clip_rect.ToString());
1196 // Quads came with a clip rect. 1206 // Quads came with a clip rect.
1197 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1207 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1198 1208
1199 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1209 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1200 host_impl_->DidDrawAllLayers(frame); 1210 host_impl_->DidDrawAllLayers(frame);
(...skipping 10 matching lines...) Expand all
1211 LayerTreeHostImpl::FrameData frame; 1221 LayerTreeHostImpl::FrameData frame;
1212 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1222 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1213 1223
1214 ASSERT_EQ(3u, frame.render_passes.size()); 1224 ASSERT_EQ(3u, frame.render_passes.size());
1215 const QuadList& contrib_delegated_quad_list = 1225 const QuadList& contrib_delegated_quad_list =
1216 frame.render_passes[0]->quad_list; 1226 frame.render_passes[0]->quad_list;
1217 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1227 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1218 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1228 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1219 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1229 ASSERT_EQ(5u, root_delegated_quad_list.size());
1220 const SharedQuadState* root_delegated_shared_quad_state = 1230 const SharedQuadState* root_delegated_shared_quad_state =
1221 root_delegated_quad_list[0]->shared_quad_state; 1231 root_delegated_quad_list.front()->shared_quad_state;
1222 1232
1223 // When the layer owns a surface, the quads don't need to be clipped 1233 // When the layer owns a surface, the quads don't need to be clipped
1224 // further than they already specify. If they aren't clipped, then their 1234 // further than they already specify. If they aren't clipped, then their
1225 // clip rect is ignored, and they are not set as clipped. 1235 // clip rect is ignored, and they are not set as clipped.
1226 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1236 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1227 1237
1228 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1238 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1229 host_impl_->DidDrawAllLayers(frame); 1239 host_impl_->DidDrawAllLayers(frame);
1230 } 1240 }
1231 1241
1232 TEST_F(DelegatedRendererLayerImplTestClip, 1242 TEST_F(DelegatedRendererLayerImplTestClip,
1233 QuadsClipped_LayerUnclipped_Surface) { 1243 QuadsClipped_LayerUnclipped_Surface) {
1234 root_delegated_render_pass_is_clipped_ = true; 1244 root_delegated_render_pass_is_clipped_ = true;
1235 clip_delegated_renderer_layer_ = false; 1245 clip_delegated_renderer_layer_ = false;
1236 SetUpTest(); 1246 SetUpTest();
1237 1247
1238 delegated_renderer_layer_->SetForceRenderSurface(true); 1248 delegated_renderer_layer_->SetForceRenderSurface(true);
1239 1249
1240 LayerTreeHostImpl::FrameData frame; 1250 LayerTreeHostImpl::FrameData frame;
1241 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1251 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1242 1252
1243 ASSERT_EQ(3u, frame.render_passes.size()); 1253 ASSERT_EQ(3u, frame.render_passes.size());
1244 const QuadList& contrib_delegated_quad_list = 1254 const QuadList& contrib_delegated_quad_list =
1245 frame.render_passes[0]->quad_list; 1255 frame.render_passes[0]->quad_list;
1246 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1256 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1247 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1257 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1248 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1258 ASSERT_EQ(5u, root_delegated_quad_list.size());
1249 const SharedQuadState* root_delegated_shared_quad_state = 1259 const SharedQuadState* root_delegated_shared_quad_state =
1250 root_delegated_quad_list[0]->shared_quad_state; 1260 root_delegated_quad_list.front()->shared_quad_state;
1251 1261
1252 // When the quads have a clip of their own, it is used. 1262 // When the quads have a clip of their own, it is used.
1253 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1263 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1254 root_delegated_shared_quad_state->clip_rect.ToString()); 1264 root_delegated_shared_quad_state->clip_rect.ToString());
1255 // Quads came with a clip rect. 1265 // Quads came with a clip rect.
1256 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1266 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1257 1267
1258 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1268 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1259 host_impl_->DidDrawAllLayers(frame); 1269 host_impl_->DidDrawAllLayers(frame);
1260 } 1270 }
1261 1271
1262 TEST_F(DelegatedRendererLayerImplTestClip, 1272 TEST_F(DelegatedRendererLayerImplTestClip,
1263 QuadsUnclipped_LayerClipped_Surface) { 1273 QuadsUnclipped_LayerClipped_Surface) {
1264 root_delegated_render_pass_is_clipped_ = false; 1274 root_delegated_render_pass_is_clipped_ = false;
1265 clip_delegated_renderer_layer_ = true; 1275 clip_delegated_renderer_layer_ = true;
1266 SetUpTest(); 1276 SetUpTest();
1267 1277
1268 delegated_renderer_layer_->SetForceRenderSurface(true); 1278 delegated_renderer_layer_->SetForceRenderSurface(true);
1269 1279
1270 LayerTreeHostImpl::FrameData frame; 1280 LayerTreeHostImpl::FrameData frame;
1271 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1281 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1272 1282
1273 ASSERT_EQ(3u, frame.render_passes.size()); 1283 ASSERT_EQ(3u, frame.render_passes.size());
1274 const QuadList& contrib_delegated_quad_list = 1284 const QuadList& contrib_delegated_quad_list =
1275 frame.render_passes[0]->quad_list; 1285 frame.render_passes[0]->quad_list;
1276 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1286 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1277 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1287 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1278 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1288 ASSERT_EQ(5u, root_delegated_quad_list.size());
1279 const SharedQuadState* root_delegated_shared_quad_state = 1289 const SharedQuadState* root_delegated_shared_quad_state =
1280 root_delegated_quad_list[0]->shared_quad_state; 1290 root_delegated_quad_list.front()->shared_quad_state;
1281 1291
1282 // When the layer owns a surface, the quads don't need to be clipped 1292 // When the layer owns a surface, the quads don't need to be clipped
1283 // further than they already specify. If they aren't clipped, then their 1293 // further than they already specify. If they aren't clipped, then their
1284 // clip rect is ignored, and they are not set as clipped. 1294 // clip rect is ignored, and they are not set as clipped.
1285 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1295 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1286 1296
1287 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1297 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1288 host_impl_->DidDrawAllLayers(frame); 1298 host_impl_->DidDrawAllLayers(frame);
1289 } 1299 }
1290 1300
1291 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1301 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1292 root_delegated_render_pass_is_clipped_ = true; 1302 root_delegated_render_pass_is_clipped_ = true;
1293 clip_delegated_renderer_layer_ = true; 1303 clip_delegated_renderer_layer_ = true;
1294 SetUpTest(); 1304 SetUpTest();
1295 1305
1296 delegated_renderer_layer_->SetForceRenderSurface(true); 1306 delegated_renderer_layer_->SetForceRenderSurface(true);
1297 1307
1298 LayerTreeHostImpl::FrameData frame; 1308 LayerTreeHostImpl::FrameData frame;
1299 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1309 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1300 1310
1301 ASSERT_EQ(3u, frame.render_passes.size()); 1311 ASSERT_EQ(3u, frame.render_passes.size());
1302 const QuadList& contrib_delegated_quad_list = 1312 const QuadList& contrib_delegated_quad_list =
1303 frame.render_passes[0]->quad_list; 1313 frame.render_passes[0]->quad_list;
1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1314 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1315 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1306 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1316 ASSERT_EQ(5u, root_delegated_quad_list.size());
1307 const SharedQuadState* root_delegated_shared_quad_state = 1317 const SharedQuadState* root_delegated_shared_quad_state =
1308 root_delegated_quad_list[0]->shared_quad_state; 1318 root_delegated_quad_list.front()->shared_quad_state;
1309 1319
1310 // When the quads have a clip of their own, it is used, but it is 1320 // When the quads have a clip of their own, it is used, but it is
1311 // combined with the clip rect of the delegated renderer layer. If the 1321 // combined with the clip rect of the delegated renderer layer. If the
1312 // layer owns a surface, then it does not have a clip rect of its own. 1322 // layer owns a surface, then it does not have a clip rect of its own.
1313 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1323 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1314 root_delegated_shared_quad_state->clip_rect.ToString()); 1324 root_delegated_shared_quad_state->clip_rect.ToString());
1315 // Quads came with a clip rect. 1325 // Quads came with a clip rect.
1316 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1326 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1317 1327
1318 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1328 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1358 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 1368 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
1359 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 1369 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
1360 1370
1361 LayerTreeHostImpl::FrameData frame; 1371 LayerTreeHostImpl::FrameData frame;
1362 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1372 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1363 1373
1364 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1374 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1365 ASSERT_EQ(1u, frame.render_passes.size()); 1375 ASSERT_EQ(1u, frame.render_passes.size());
1366 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1376 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1367 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1377 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1368 frame.render_passes[0]->quad_list[0]->material); 1378 frame.render_passes[0]->quad_list.front()->material);
1369 1379
1370 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1380 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1371 host_impl_->DidDrawAllLayers(frame); 1381 host_impl_->DidDrawAllLayers(frame);
1372 } 1382 }
1373 1383
1374 TEST_F(DelegatedRendererLayerImplTest, Occlusion) { 1384 TEST_F(DelegatedRendererLayerImplTest, Occlusion) {
1375 gfx::Size layer_size(1000, 1000); 1385 gfx::Size layer_size(1000, 1000);
1376 gfx::Size viewport_size(1000, 1000); 1386 gfx::Size viewport_size(1000, 1000);
1377 gfx::Rect quad_screen_rect(211, 300, 400, 500); 1387 gfx::Rect quad_screen_rect(211, 300, 400, 500);
1378 1388
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 SCOPED_TRACE("No occlusion"); 1425 SCOPED_TRACE("No occlusion");
1416 gfx::Rect occluded; 1426 gfx::Rect occluded;
1417 1427
1418 { 1428 {
1419 SCOPED_TRACE("Root render pass"); 1429 SCOPED_TRACE("Root render pass");
1420 impl.AppendQuadsForPassWithOcclusion( 1430 impl.AppendQuadsForPassWithOcclusion(
1421 delegated_renderer_layer_impl, pass1_id, occluded); 1431 delegated_renderer_layer_impl, pass1_id, occluded);
1422 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), 1432 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(),
1423 quad_screen_rect); 1433 quad_screen_rect);
1424 ASSERT_EQ(1u, impl.quad_list().size()); 1434 ASSERT_EQ(1u, impl.quad_list().size());
1425 EXPECT_EQ(DrawQuad::RENDER_PASS, impl.quad_list()[0]->material); 1435 EXPECT_EQ(DrawQuad::RENDER_PASS, impl.quad_list().front()->material);
1426 } 1436 }
1427 { 1437 {
1428 SCOPED_TRACE("Contributing render pass"); 1438 SCOPED_TRACE("Contributing render pass");
1429 impl.AppendQuadsForPassWithOcclusion( 1439 impl.AppendQuadsForPassWithOcclusion(
1430 delegated_renderer_layer_impl, pass2_id, occluded); 1440 delegated_renderer_layer_impl, pass2_id, occluded);
1431 LayerTestCommon::VerifyQuadsExactlyCoverRect( 1441 LayerTestCommon::VerifyQuadsExactlyCoverRect(
1432 impl.quad_list(), gfx::Rect(quad_screen_rect.size())); 1442 impl.quad_list(), gfx::Rect(quad_screen_rect.size()));
1433 ASSERT_EQ(1u, impl.quad_list().size()); 1443 ASSERT_EQ(1u, impl.quad_list().size());
1434 EXPECT_EQ(DrawQuad::SOLID_COLOR, impl.quad_list()[0]->material); 1444 EXPECT_EQ(DrawQuad::SOLID_COLOR, impl.quad_list().front()->material);
1435 } 1445 }
1436 } 1446 }
1437 1447
1438 { 1448 {
1439 SCOPED_TRACE("Full occlusion"); 1449 SCOPED_TRACE("Full occlusion");
1440 { 1450 {
1441 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect()); 1451 gfx::Rect occluded(delegated_renderer_layer_impl->visible_content_rect());
1442 1452
1443 SCOPED_TRACE("Root render pass"); 1453 SCOPED_TRACE("Root render pass");
1444 impl.AppendQuadsForPassWithOcclusion( 1454 impl.AppendQuadsForPassWithOcclusion(
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1489 impl.quad_list(), 1499 impl.quad_list(),
1490 occlusion_in_target_of_delegated_quad, 1500 occlusion_in_target_of_delegated_quad,
1491 &partially_occluded_count); 1501 &partially_occluded_count);
1492 // The layer outputs one quad, which is partially occluded. 1502 // The layer outputs one quad, which is partially occluded.
1493 EXPECT_EQ(1u, impl.quad_list().size()); 1503 EXPECT_EQ(1u, impl.quad_list().size());
1494 EXPECT_EQ(1u, partially_occluded_count); 1504 EXPECT_EQ(1u, partially_occluded_count);
1495 // The quad in the contributing surface is at (211,300) in the root. 1505 // The quad in the contributing surface is at (211,300) in the root.
1496 // The occlusion extends to 500 in the x-axis, pushing the left of the 1506 // The occlusion extends to 500 in the x-axis, pushing the left of the
1497 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. 1507 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad.
1498 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), 1508 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(),
1499 impl.quad_list()[0]->visible_rect.ToString()); 1509 impl.quad_list().front()->visible_rect.ToString());
1500 } 1510 }
1501 { 1511 {
1502 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000); 1512 gfx::Rect occlusion_in_root_target(0, 0, 500, 1000);
1503 // Move the occlusion to where it is in the contributing surface. 1513 // Move the occlusion to where it is in the contributing surface.
1504 gfx::Rect occlusion_in_target_of_delegated_quad = 1514 gfx::Rect occlusion_in_target_of_delegated_quad =
1505 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin(); 1515 occlusion_in_root_target - quad_screen_rect.OffsetFromOrigin();
1506 1516
1507 SCOPED_TRACE("Contributing render pass with transformed root"); 1517 SCOPED_TRACE("Contributing render pass with transformed root");
1508 1518
1509 gfx::Transform layer_transform; 1519 gfx::Transform layer_transform;
(...skipping 11 matching lines...) Expand all
1521 impl.quad_list(), 1531 impl.quad_list(),
1522 occlusion_in_target_of_delegated_quad, 1532 occlusion_in_target_of_delegated_quad,
1523 &partially_occluded_count); 1533 &partially_occluded_count);
1524 // The layer outputs one quad, which is partially occluded. 1534 // The layer outputs one quad, which is partially occluded.
1525 EXPECT_EQ(1u, impl.quad_list().size()); 1535 EXPECT_EQ(1u, impl.quad_list().size());
1526 EXPECT_EQ(1u, partially_occluded_count); 1536 EXPECT_EQ(1u, partially_occluded_count);
1527 // The quad in the contributing surface is at (222,300) in the transformed 1537 // The quad in the contributing surface is at (222,300) in the transformed
1528 // root. The occlusion extends to 500 in the x-axis, pushing the left of 1538 // root. The occlusion extends to 500 in the x-axis, pushing the left of
1529 // the visible part of the quad to 500 - 222 = 300 - 22 inside the quad. 1539 // the visible part of the quad to 500 - 222 = 300 - 22 inside the quad.
1530 EXPECT_EQ(gfx::Rect(300 - 22, 0, 100 + 22, 500).ToString(), 1540 EXPECT_EQ(gfx::Rect(300 - 22, 0, 100 + 22, 500).ToString(),
1531 impl.quad_list()[0]->visible_rect.ToString()); 1541 impl.quad_list().front()->visible_rect.ToString());
1532 } 1542 }
1533 } 1543 }
1534 } 1544 }
1535 1545
1536 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) { 1546 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) {
1537 gfx::Size layer_size(1000, 1000); 1547 gfx::Size layer_size(1000, 1000);
1538 1548
1539 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl = 1549 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl =
1540 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5); 1550 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5);
1541 delegated_renderer_layer_impl->SetBounds(layer_size); 1551 delegated_renderer_layer_impl->SetBounds(layer_size);
(...skipping 14 matching lines...) Expand all
1556 scoped_ptr<DelegatedRendererLayerImpl> other_layer = 1566 scoped_ptr<DelegatedRendererLayerImpl> other_layer =
1557 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); 1567 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6);
1558 1568
1559 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); 1569 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get());
1560 1570
1561 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); 1571 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor());
1562 } 1572 }
1563 1573
1564 } // namespace 1574 } // namespace
1565 } // namespace cc 1575 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/delegated_renderer_layer_impl.cc ('k') | cc/layers/nine_patch_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698