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

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

Issue 279013002: Remove CompositeAndReadback from LayerTreeHost(Impl) and the Proxys. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-cnr-lth-proxy-renderer: . Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | cc/output/delegating_renderer.h » ('j') | cc/output/direct_renderer.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/layers/quad_sink.h" 8 #include "cc/layers/quad_sink.h"
9 #include "cc/layers/solid_color_layer_impl.h" 9 #include "cc/layers/solid_color_layer_impl.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 protected: 134 protected:
135 LayerImpl* root_layer_; 135 LayerImpl* root_layer_;
136 LayerImpl* layer_before_; 136 LayerImpl* layer_before_;
137 LayerImpl* layer_after_; 137 LayerImpl* layer_after_;
138 DelegatedRendererLayerImpl* delegated_renderer_layer_; 138 DelegatedRendererLayerImpl* delegated_renderer_layer_;
139 }; 139 };
140 140
141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
142 LayerTreeHostImpl::FrameData frame; 142 LayerTreeHostImpl::FrameData frame;
143 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 143 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
144 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 144 host_impl_->PrepareToDraw(&frame));
145 145
146 // Each non-DelegatedRendererLayer added one RenderPass. The 146 // Each non-DelegatedRendererLayer added one RenderPass. The
147 // DelegatedRendererLayer added two contributing passes. 147 // DelegatedRendererLayer added two contributing passes.
148 ASSERT_EQ(5u, frame.render_passes.size()); 148 ASSERT_EQ(5u, frame.render_passes.size());
149 149
150 // The DelegatedRendererLayer should have added its contributing RenderPasses 150 // The DelegatedRendererLayer should have added its contributing RenderPasses
151 // to the frame. 151 // to the frame.
152 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 152 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
153 EXPECT_EQ(1, frame.render_passes[1]->id.index); 153 EXPECT_EQ(1, frame.render_passes[1]->id.index);
154 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 154 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 14 matching lines...) Expand all
169 frame.render_passes[2]->output_rect.ToString()); 169 frame.render_passes[2]->output_rect.ToString());
170 170
171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
172 host_impl_->DidDrawAllLayers(frame); 172 host_impl_->DidDrawAllLayers(frame);
173 } 173 }
174 174
175 TEST_F(DelegatedRendererLayerImplTestSimple, 175 TEST_F(DelegatedRendererLayerImplTestSimple,
176 AddsQuadsToContributingRenderPasses) { 176 AddsQuadsToContributingRenderPasses) {
177 LayerTreeHostImpl::FrameData frame; 177 LayerTreeHostImpl::FrameData frame;
178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
179 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 179 host_impl_->PrepareToDraw(&frame));
180 180
181 // Each non-DelegatedRendererLayer added one RenderPass. The 181 // Each non-DelegatedRendererLayer added one RenderPass. The
182 // DelegatedRendererLayer added two contributing passes. 182 // DelegatedRendererLayer added two contributing passes.
183 ASSERT_EQ(5u, frame.render_passes.size()); 183 ASSERT_EQ(5u, frame.render_passes.size());
184 184
185 // The DelegatedRendererLayer should have added its contributing RenderPasses 185 // The DelegatedRendererLayer should have added its contributing RenderPasses
186 // to the frame. 186 // to the frame.
187 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 187 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
188 EXPECT_EQ(1, frame.render_passes[1]->id.index); 188 EXPECT_EQ(1, frame.render_passes[1]->id.index);
189 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 189 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 15 matching lines...) Expand all
205 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 205 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
206 frame.render_passes[1]->quad_list[0]->rect.ToString()); 206 frame.render_passes[1]->quad_list[0]->rect.ToString());
207 207
208 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 208 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
209 host_impl_->DidDrawAllLayers(frame); 209 host_impl_->DidDrawAllLayers(frame);
210 } 210 }
211 211
212 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 212 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
213 LayerTreeHostImpl::FrameData frame; 213 LayerTreeHostImpl::FrameData frame;
214 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 214 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
215 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 215 host_impl_->PrepareToDraw(&frame));
216 216
217 // Each non-DelegatedRendererLayer added one RenderPass. The 217 // Each non-DelegatedRendererLayer added one RenderPass. The
218 // DelegatedRendererLayer added two contributing passes. 218 // DelegatedRendererLayer added two contributing passes.
219 ASSERT_EQ(5u, frame.render_passes.size()); 219 ASSERT_EQ(5u, frame.render_passes.size());
220 220
221 // The layer's target is the RenderPass from layer_after_. 221 // The layer's target is the RenderPass from layer_after_.
222 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 222 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
223 223
224 // The DelegatedRendererLayer should have added copies of quads in its root 224 // The DelegatedRendererLayer should have added copies of quads in its root
225 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 225 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
226 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 226 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
227 227
228 // Verify it added the right quads. 228 // Verify it added the right quads.
229 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 229 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
230 frame.render_passes[3]->quad_list[0]->rect.ToString()); 230 frame.render_passes[3]->quad_list[0]->rect.ToString());
231 231
232 // Its target layer should have a quad as well. 232 // Its target layer should have a quad as well.
233 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 233 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
234 frame.render_passes[3]->quad_list[1]->rect.ToString()); 234 frame.render_passes[3]->quad_list[1]->rect.ToString());
235 235
236 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 236 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
237 host_impl_->DidDrawAllLayers(frame); 237 host_impl_->DidDrawAllLayers(frame);
238 } 238 }
239 239
240 TEST_F(DelegatedRendererLayerImplTestSimple, 240 TEST_F(DelegatedRendererLayerImplTestSimple,
241 QuadsFromRootRenderPassAreModifiedForTheTarget) { 241 QuadsFromRootRenderPassAreModifiedForTheTarget) {
242 LayerTreeHostImpl::FrameData frame; 242 LayerTreeHostImpl::FrameData frame;
243 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 243 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
244 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 244 host_impl_->PrepareToDraw(&frame));
245 245
246 // Each non-DelegatedRendererLayer added one RenderPass. The 246 // Each non-DelegatedRendererLayer added one RenderPass. The
247 // DelegatedRendererLayer added two contributing passes. 247 // DelegatedRendererLayer added two contributing passes.
248 ASSERT_EQ(5u, frame.render_passes.size()); 248 ASSERT_EQ(5u, frame.render_passes.size());
249 249
250 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 250 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
251 // has a translation transform of 1,1. So its root RenderPass' quads should 251 // has a translation transform of 1,1. So its root RenderPass' quads should
252 // all be transformed by that combined amount. 252 // all be transformed by that combined amount.
253 // The DelegatedRendererLayer has a size of 10x10, but the root delegated 253 // The DelegatedRendererLayer has a size of 10x10, but the root delegated
254 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. 254 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8.
(...skipping 13 matching lines...) Expand all
268 EXPECT_TRANSFORMATION_MATRIX_EQ( 268 EXPECT_TRANSFORMATION_MATRIX_EQ(
269 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 269 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
270 270
271 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 271 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
272 host_impl_->DidDrawAllLayers(frame); 272 host_impl_->DidDrawAllLayers(frame);
273 } 273 }
274 274
275 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 275 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
276 LayerTreeHostImpl::FrameData frame; 276 LayerTreeHostImpl::FrameData frame;
277 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 277 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
278 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 278 host_impl_->PrepareToDraw(&frame));
279 279
280 // The delegated layer has a surface between it and the root. 280 // The delegated layer has a surface between it and the root.
281 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 281 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
282 282
283 // Each non-DelegatedRendererLayer added one RenderPass. The 283 // Each non-DelegatedRendererLayer added one RenderPass. The
284 // DelegatedRendererLayer added two contributing passes. 284 // DelegatedRendererLayer added two contributing passes.
285 ASSERT_EQ(5u, frame.render_passes.size()); 285 ASSERT_EQ(5u, frame.render_passes.size());
286 286
287 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all 287 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all
288 // render pass' transforms to the root should be shifted by this amount. 288 // render pass' transforms to the root should be shifted by this amount.
(...skipping 16 matching lines...) Expand all
305 transform * seven_eight, 305 transform * seven_eight,
306 frame.render_passes[2]->transform_to_root_target); 306 frame.render_passes[2]->transform_to_root_target);
307 307
308 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 308 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
309 host_impl_->DidDrawAllLayers(frame); 309 host_impl_->DidDrawAllLayers(frame);
310 } 310 }
311 311
312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
313 LayerTreeHostImpl::FrameData frame; 313 LayerTreeHostImpl::FrameData frame;
314 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 314 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
315 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 315 host_impl_->PrepareToDraw(&frame));
316 316
317 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 317 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
318 // has no need to be a RenderSurface for the quads it carries. 318 // has no need to be a RenderSurface for the quads it carries.
319 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 319 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
320 320
321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
322 host_impl_->DidDrawAllLayers(frame); 322 host_impl_->DidDrawAllLayers(frame);
323 } 323 }
324 324
325 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 325 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
326 delegated_renderer_layer_->SetOpacity(0.5f); 326 delegated_renderer_layer_->SetOpacity(0.5f);
327 327
328 LayerTreeHostImpl::FrameData frame; 328 LayerTreeHostImpl::FrameData frame;
329 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 329 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
330 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 330 host_impl_->PrepareToDraw(&frame));
331 331
332 // This test case has quads from multiple layers in the delegated renderer, so 332 // This test case has quads from multiple layers in the delegated renderer, so
333 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 333 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
334 // render surface. 334 // render surface.
335 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 335 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
336 336
337 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 337 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
338 host_impl_->DidDrawAllLayers(frame); 338 host_impl_->DidDrawAllLayers(frame);
339 } 339 }
340 340
341 TEST_F(DelegatedRendererLayerImplTestSimple, 341 TEST_F(DelegatedRendererLayerImplTestSimple,
342 DoesOwnARenderSurfaceForTransform) { 342 DoesOwnARenderSurfaceForTransform) {
343 gfx::Transform rotation; 343 gfx::Transform rotation;
344 rotation.RotateAboutZAxis(30.0); 344 rotation.RotateAboutZAxis(30.0);
345 delegated_renderer_layer_->SetTransform(rotation); 345 delegated_renderer_layer_->SetTransform(rotation);
346 346
347 LayerTreeHostImpl::FrameData frame; 347 LayerTreeHostImpl::FrameData frame;
348 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 348 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
349 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 349 host_impl_->PrepareToDraw(&frame));
350 350
351 // This test case has quads from multiple layers in the delegated renderer, so 351 // This test case has quads from multiple layers in the delegated renderer, so
352 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 352 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
353 // render surface. 353 // render surface.
354 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 354 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
355 355
356 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 356 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
357 host_impl_->DidDrawAllLayers(frame); 357 host_impl_->DidDrawAllLayers(frame);
358 } 358 }
359 359
360 class DelegatedRendererLayerImplTestOwnSurface 360 class DelegatedRendererLayerImplTestOwnSurface
361 : public DelegatedRendererLayerImplTestSimple { 361 : public DelegatedRendererLayerImplTestSimple {
362 public: 362 public:
363 DelegatedRendererLayerImplTestOwnSurface() 363 DelegatedRendererLayerImplTestOwnSurface()
364 : DelegatedRendererLayerImplTestSimple() { 364 : DelegatedRendererLayerImplTestSimple() {
365 delegated_renderer_layer_->SetForceRenderSurface(true); 365 delegated_renderer_layer_->SetForceRenderSurface(true);
366 } 366 }
367 }; 367 };
368 368
369 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 369 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
370 LayerTreeHostImpl::FrameData frame; 370 LayerTreeHostImpl::FrameData frame;
371 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 371 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
372 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 372 host_impl_->PrepareToDraw(&frame));
373 373
374 // Each non-DelegatedRendererLayer added one RenderPass. The 374 // Each non-DelegatedRendererLayer added one RenderPass. The
375 // DelegatedRendererLayer added two contributing passes and its owned surface 375 // DelegatedRendererLayer added two contributing passes and its owned surface
376 // added one pass. 376 // added one pass.
377 ASSERT_EQ(6u, frame.render_passes.size()); 377 ASSERT_EQ(6u, frame.render_passes.size());
378 378
379 // The DelegatedRendererLayer should have added its contributing RenderPasses 379 // The DelegatedRendererLayer should have added its contributing RenderPasses
380 // to the frame. 380 // to the frame.
381 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 381 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
382 EXPECT_EQ(1, frame.render_passes[1]->id.index); 382 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 19 matching lines...) Expand all
402 frame.render_passes[2]->output_rect.ToString()); 402 frame.render_passes[2]->output_rect.ToString());
403 403
404 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 404 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
405 host_impl_->DidDrawAllLayers(frame); 405 host_impl_->DidDrawAllLayers(frame);
406 } 406 }
407 407
408 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 408 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
409 AddsQuadsToContributingRenderPasses) { 409 AddsQuadsToContributingRenderPasses) {
410 LayerTreeHostImpl::FrameData frame; 410 LayerTreeHostImpl::FrameData frame;
411 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 411 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
412 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 412 host_impl_->PrepareToDraw(&frame));
413 413
414 // Each non-DelegatedRendererLayer added one RenderPass. The 414 // Each non-DelegatedRendererLayer added one RenderPass. The
415 // DelegatedRendererLayer added two contributing passes and its owned surface 415 // DelegatedRendererLayer added two contributing passes and its owned surface
416 // added one pass. 416 // added one pass.
417 ASSERT_EQ(6u, frame.render_passes.size()); 417 ASSERT_EQ(6u, frame.render_passes.size());
418 418
419 // The DelegatedRendererLayer should have added its contributing RenderPasses 419 // The DelegatedRendererLayer should have added its contributing RenderPasses
420 // to the frame. 420 // to the frame.
421 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 421 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
422 EXPECT_EQ(1, frame.render_passes[1]->id.index); 422 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 16 matching lines...) Expand all
439 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 439 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
440 frame.render_passes[1]->quad_list[0]->rect.ToString()); 440 frame.render_passes[1]->quad_list[0]->rect.ToString());
441 441
442 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 442 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
443 host_impl_->DidDrawAllLayers(frame); 443 host_impl_->DidDrawAllLayers(frame);
444 } 444 }
445 445
446 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 446 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
447 LayerTreeHostImpl::FrameData frame; 447 LayerTreeHostImpl::FrameData frame;
448 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 448 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
449 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 449 host_impl_->PrepareToDraw(&frame));
450 450
451 // Each non-DelegatedRendererLayer added one RenderPass. The 451 // Each non-DelegatedRendererLayer added one RenderPass. The
452 // DelegatedRendererLayer added two contributing passes and its owned surface 452 // DelegatedRendererLayer added two contributing passes and its owned surface
453 // added one pass. 453 // added one pass.
454 ASSERT_EQ(6u, frame.render_passes.size()); 454 ASSERT_EQ(6u, frame.render_passes.size());
455 455
456 // The layer's target is the RenderPass owned by itself. 456 // The layer's target is the RenderPass owned by itself.
457 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 457 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
458 458
459 // The DelegatedRendererLayer should have added copies of quads in its root 459 // The DelegatedRendererLayer should have added copies of quads in its root
460 // RenderPass to its target RenderPass. 460 // RenderPass to its target RenderPass.
461 // The layer_after also adds one quad. 461 // The layer_after also adds one quad.
462 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 462 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
463 463
464 // Verify it added the right quads. 464 // Verify it added the right quads.
465 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 465 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
466 frame.render_passes[3]->quad_list[0]->rect.ToString()); 466 frame.render_passes[3]->quad_list[0]->rect.ToString());
467 467
468 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 468 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
469 host_impl_->DidDrawAllLayers(frame); 469 host_impl_->DidDrawAllLayers(frame);
470 } 470 }
471 471
472 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 472 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
473 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 473 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
474 LayerTreeHostImpl::FrameData frame; 474 LayerTreeHostImpl::FrameData frame;
475 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 475 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
476 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 476 host_impl_->PrepareToDraw(&frame));
477 477
478 // Each non-DelegatedRendererLayer added one RenderPass. The 478 // Each non-DelegatedRendererLayer added one RenderPass. The
479 // DelegatedRendererLayer added two contributing passes and its owned surface 479 // DelegatedRendererLayer added two contributing passes and its owned surface
480 // added one pass. 480 // added one pass.
481 ASSERT_EQ(6u, frame.render_passes.size()); 481 ASSERT_EQ(6u, frame.render_passes.size());
482 482
483 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 483 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
484 // RenderPass' quads do not need to be translated at all. However, they are 484 // RenderPass' quads do not need to be translated at all. However, they are
485 // scaled from the frame's size (8x8) to the layer's bounds (10x10). 485 // scaled from the frame's size (8x8) to the layer's bounds (10x10).
486 gfx::Transform transform; 486 gfx::Transform transform;
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 DelegatedRendererLayerImpl* delegated_renderer_layer_; 700 DelegatedRendererLayerImpl* delegated_renderer_layer_;
701 bool root_delegated_render_pass_is_clipped_; 701 bool root_delegated_render_pass_is_clipped_;
702 }; 702 };
703 703
704 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 704 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
705 root_delegated_render_pass_is_clipped_ = false; 705 root_delegated_render_pass_is_clipped_ = false;
706 SetUpTest(); 706 SetUpTest();
707 707
708 LayerTreeHostImpl::FrameData frame; 708 LayerTreeHostImpl::FrameData frame;
709 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 709 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
710 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 710 host_impl_->PrepareToDraw(&frame));
711 711
712 const SharedQuadState* root_delegated_shared_quad_state = NULL; 712 const SharedQuadState* root_delegated_shared_quad_state = NULL;
713 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 713 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
714 VerifyRenderPasses( 714 VerifyRenderPasses(
715 frame, 715 frame,
716 2, 716 2,
717 &root_delegated_shared_quad_state, 717 &root_delegated_shared_quad_state,
718 &contrib_delegated_shared_quad_state); 718 &contrib_delegated_shared_quad_state);
719 719
720 // When the quads don't have a clip of their own, the clip rect is set to 720 // When the quads don't have a clip of their own, the clip rect is set to
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 757 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
758 host_impl_->DidDrawAllLayers(frame); 758 host_impl_->DidDrawAllLayers(frame);
759 } 759 }
760 760
761 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 761 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
762 root_delegated_render_pass_is_clipped_ = true; 762 root_delegated_render_pass_is_clipped_ = true;
763 SetUpTest(); 763 SetUpTest();
764 764
765 LayerTreeHostImpl::FrameData frame; 765 LayerTreeHostImpl::FrameData frame;
766 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 766 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
767 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 767 host_impl_->PrepareToDraw(&frame));
768 768
769 const SharedQuadState* root_delegated_shared_quad_state = NULL; 769 const SharedQuadState* root_delegated_shared_quad_state = NULL;
770 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 770 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
771 VerifyRenderPasses( 771 VerifyRenderPasses(
772 frame, 772 frame,
773 2, 773 2,
774 &root_delegated_shared_quad_state, 774 &root_delegated_shared_quad_state,
775 &contrib_delegated_shared_quad_state); 775 &contrib_delegated_shared_quad_state);
776 776
777 // Since the quads have a clip_rect it should be modified by delegated 777 // Since the quads have a clip_rect it should be modified by delegated
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 } 823 }
824 824
825 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 825 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
826 root_delegated_render_pass_is_clipped_ = false; 826 root_delegated_render_pass_is_clipped_ = false;
827 SetUpTest(); 827 SetUpTest();
828 828
829 delegated_renderer_layer_->SetForceRenderSurface(true); 829 delegated_renderer_layer_->SetForceRenderSurface(true);
830 830
831 LayerTreeHostImpl::FrameData frame; 831 LayerTreeHostImpl::FrameData frame;
832 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 832 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
833 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 833 host_impl_->PrepareToDraw(&frame));
834 834
835 const SharedQuadState* root_delegated_shared_quad_state = NULL; 835 const SharedQuadState* root_delegated_shared_quad_state = NULL;
836 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 836 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
837 VerifyRenderPasses( 837 VerifyRenderPasses(
838 frame, 838 frame,
839 3, 839 3,
840 &root_delegated_shared_quad_state, 840 &root_delegated_shared_quad_state,
841 &contrib_delegated_shared_quad_state); 841 &contrib_delegated_shared_quad_state);
842 842
843 // When the layer owns a surface, then its position and translation are not 843 // When the layer owns a surface, then its position and translation are not
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 } 880 }
881 881
882 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 882 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
883 root_delegated_render_pass_is_clipped_ = true; 883 root_delegated_render_pass_is_clipped_ = true;
884 SetUpTest(); 884 SetUpTest();
885 885
886 delegated_renderer_layer_->SetForceRenderSurface(true); 886 delegated_renderer_layer_->SetForceRenderSurface(true);
887 887
888 LayerTreeHostImpl::FrameData frame; 888 LayerTreeHostImpl::FrameData frame;
889 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 889 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
890 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 890 host_impl_->PrepareToDraw(&frame));
891 891
892 const SharedQuadState* root_delegated_shared_quad_state = NULL; 892 const SharedQuadState* root_delegated_shared_quad_state = NULL;
893 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 893 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
894 VerifyRenderPasses( 894 VerifyRenderPasses(
895 frame, 895 frame,
896 3, 896 3,
897 &root_delegated_shared_quad_state, 897 &root_delegated_shared_quad_state,
898 &contrib_delegated_shared_quad_state); 898 &contrib_delegated_shared_quad_state);
899 899
900 // When the layer owns a surface, then its position and translation are not 900 // When the layer owns a surface, then its position and translation are not
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 }; 1105 };
1106 1106
1107 TEST_F(DelegatedRendererLayerImplTestClip, 1107 TEST_F(DelegatedRendererLayerImplTestClip,
1108 QuadsUnclipped_LayerUnclipped_NoSurface) { 1108 QuadsUnclipped_LayerUnclipped_NoSurface) {
1109 root_delegated_render_pass_is_clipped_ = false; 1109 root_delegated_render_pass_is_clipped_ = false;
1110 clip_delegated_renderer_layer_ = false; 1110 clip_delegated_renderer_layer_ = false;
1111 SetUpTest(); 1111 SetUpTest();
1112 1112
1113 LayerTreeHostImpl::FrameData frame; 1113 LayerTreeHostImpl::FrameData frame;
1114 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1114 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1115 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1115 host_impl_->PrepareToDraw(&frame));
1116 1116
1117 ASSERT_EQ(2u, frame.render_passes.size()); 1117 ASSERT_EQ(2u, frame.render_passes.size());
1118 const QuadList& contrib_delegated_quad_list = 1118 const QuadList& contrib_delegated_quad_list =
1119 frame.render_passes[0]->quad_list; 1119 frame.render_passes[0]->quad_list;
1120 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1120 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1121 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1121 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1122 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1122 ASSERT_EQ(5u, root_delegated_quad_list.size());
1123 const SharedQuadState* root_delegated_shared_quad_state = 1123 const SharedQuadState* root_delegated_shared_quad_state =
1124 root_delegated_quad_list[0]->shared_quad_state; 1124 root_delegated_quad_list[0]->shared_quad_state;
1125 1125
1126 // When the quads don't have a clip of their own, the clip rect is set to 1126 // When the quads don't have a clip of their own, the clip rect is set to
1127 // the drawable_content_rect of the delegated renderer layer. 1127 // the drawable_content_rect of the delegated renderer layer.
1128 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1128 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1129 root_delegated_shared_quad_state->clip_rect.ToString()); 1129 root_delegated_shared_quad_state->clip_rect.ToString());
1130 // Quads are clipped to the delegated renderer layer. 1130 // Quads are clipped to the delegated renderer layer.
1131 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1131 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1132 1132
1133 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1133 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1134 host_impl_->DidDrawAllLayers(frame); 1134 host_impl_->DidDrawAllLayers(frame);
1135 } 1135 }
1136 1136
1137 TEST_F(DelegatedRendererLayerImplTestClip, 1137 TEST_F(DelegatedRendererLayerImplTestClip,
1138 QuadsClipped_LayerUnclipped_NoSurface) { 1138 QuadsClipped_LayerUnclipped_NoSurface) {
1139 root_delegated_render_pass_is_clipped_ = true; 1139 root_delegated_render_pass_is_clipped_ = true;
1140 clip_delegated_renderer_layer_ = false; 1140 clip_delegated_renderer_layer_ = false;
1141 SetUpTest(); 1141 SetUpTest();
1142 1142
1143 LayerTreeHostImpl::FrameData frame; 1143 LayerTreeHostImpl::FrameData frame;
1144 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1144 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1145 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1145 host_impl_->PrepareToDraw(&frame));
1146 1146
1147 ASSERT_EQ(2u, frame.render_passes.size()); 1147 ASSERT_EQ(2u, frame.render_passes.size());
1148 const QuadList& contrib_delegated_quad_list = 1148 const QuadList& contrib_delegated_quad_list =
1149 frame.render_passes[0]->quad_list; 1149 frame.render_passes[0]->quad_list;
1150 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1150 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1151 const QuadList& root_delegated_quad_list = 1151 const QuadList& root_delegated_quad_list =
1152 frame.render_passes[1]->quad_list; 1152 frame.render_passes[1]->quad_list;
1153 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1153 ASSERT_EQ(5u, root_delegated_quad_list.size());
1154 const SharedQuadState* root_delegated_shared_quad_state = 1154 const SharedQuadState* root_delegated_shared_quad_state =
1155 root_delegated_quad_list[0]->shared_quad_state; 1155 root_delegated_quad_list[0]->shared_quad_state;
1156 1156
1157 // When the quads have a clip of their own, it is used. 1157 // When the quads have a clip of their own, it is used.
1158 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1158 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1159 root_delegated_shared_quad_state->clip_rect.ToString()); 1159 root_delegated_shared_quad_state->clip_rect.ToString());
1160 // Quads came with a clip rect. 1160 // Quads came with a clip rect.
1161 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1161 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1162 1162
1163 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1163 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1164 host_impl_->DidDrawAllLayers(frame); 1164 host_impl_->DidDrawAllLayers(frame);
1165 } 1165 }
1166 1166
1167 TEST_F(DelegatedRendererLayerImplTestClip, 1167 TEST_F(DelegatedRendererLayerImplTestClip,
1168 QuadsUnclipped_LayerClipped_NoSurface) { 1168 QuadsUnclipped_LayerClipped_NoSurface) {
1169 root_delegated_render_pass_is_clipped_ = false; 1169 root_delegated_render_pass_is_clipped_ = false;
1170 clip_delegated_renderer_layer_ = true; 1170 clip_delegated_renderer_layer_ = true;
1171 SetUpTest(); 1171 SetUpTest();
1172 1172
1173 LayerTreeHostImpl::FrameData frame; 1173 LayerTreeHostImpl::FrameData frame;
1174 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1174 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1175 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1175 host_impl_->PrepareToDraw(&frame));
1176 1176
1177 ASSERT_EQ(2u, frame.render_passes.size()); 1177 ASSERT_EQ(2u, frame.render_passes.size());
1178 const QuadList& contrib_delegated_quad_list = 1178 const QuadList& contrib_delegated_quad_list =
1179 frame.render_passes[0]->quad_list; 1179 frame.render_passes[0]->quad_list;
1180 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1180 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1181 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1181 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1182 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1182 ASSERT_EQ(5u, root_delegated_quad_list.size());
1183 const SharedQuadState* root_delegated_shared_quad_state = 1183 const SharedQuadState* root_delegated_shared_quad_state =
1184 root_delegated_quad_list[0]->shared_quad_state; 1184 root_delegated_quad_list[0]->shared_quad_state;
1185 1185
(...skipping 10 matching lines...) Expand all
1196 } 1196 }
1197 1197
1198 TEST_F(DelegatedRendererLayerImplTestClip, 1198 TEST_F(DelegatedRendererLayerImplTestClip,
1199 QuadsClipped_LayerClipped_NoSurface) { 1199 QuadsClipped_LayerClipped_NoSurface) {
1200 root_delegated_render_pass_is_clipped_ = true; 1200 root_delegated_render_pass_is_clipped_ = true;
1201 clip_delegated_renderer_layer_ = true; 1201 clip_delegated_renderer_layer_ = true;
1202 SetUpTest(); 1202 SetUpTest();
1203 1203
1204 LayerTreeHostImpl::FrameData frame; 1204 LayerTreeHostImpl::FrameData frame;
1205 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1205 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1206 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1206 host_impl_->PrepareToDraw(&frame));
1207 1207
1208 ASSERT_EQ(2u, frame.render_passes.size()); 1208 ASSERT_EQ(2u, frame.render_passes.size());
1209 const QuadList& contrib_delegated_quad_list = 1209 const QuadList& contrib_delegated_quad_list =
1210 frame.render_passes[0]->quad_list; 1210 frame.render_passes[0]->quad_list;
1211 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1211 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1212 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1212 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1213 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1213 ASSERT_EQ(5u, root_delegated_quad_list.size());
1214 const SharedQuadState* root_delegated_shared_quad_state = 1214 const SharedQuadState* root_delegated_shared_quad_state =
1215 root_delegated_quad_list[0]->shared_quad_state; 1215 root_delegated_quad_list[0]->shared_quad_state;
1216 1216
(...skipping 11 matching lines...) Expand all
1228 TEST_F(DelegatedRendererLayerImplTestClip, 1228 TEST_F(DelegatedRendererLayerImplTestClip,
1229 QuadsUnclipped_LayerUnclipped_Surface) { 1229 QuadsUnclipped_LayerUnclipped_Surface) {
1230 root_delegated_render_pass_is_clipped_ = false; 1230 root_delegated_render_pass_is_clipped_ = false;
1231 clip_delegated_renderer_layer_ = false; 1231 clip_delegated_renderer_layer_ = false;
1232 SetUpTest(); 1232 SetUpTest();
1233 1233
1234 delegated_renderer_layer_->SetForceRenderSurface(true); 1234 delegated_renderer_layer_->SetForceRenderSurface(true);
1235 1235
1236 LayerTreeHostImpl::FrameData frame; 1236 LayerTreeHostImpl::FrameData frame;
1237 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1237 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1238 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1238 host_impl_->PrepareToDraw(&frame));
1239 1239
1240 ASSERT_EQ(3u, frame.render_passes.size()); 1240 ASSERT_EQ(3u, frame.render_passes.size());
1241 const QuadList& contrib_delegated_quad_list = 1241 const QuadList& contrib_delegated_quad_list =
1242 frame.render_passes[0]->quad_list; 1242 frame.render_passes[0]->quad_list;
1243 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1243 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1244 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1244 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1245 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1245 ASSERT_EQ(5u, root_delegated_quad_list.size());
1246 const SharedQuadState* root_delegated_shared_quad_state = 1246 const SharedQuadState* root_delegated_shared_quad_state =
1247 root_delegated_quad_list[0]->shared_quad_state; 1247 root_delegated_quad_list[0]->shared_quad_state;
1248 1248
1249 // When the layer owns a surface, the quads don't need to be clipped 1249 // When the layer owns a surface, the quads don't need to be clipped
1250 // further than they already specify. If they aren't clipped, then their 1250 // further than they already specify. If they aren't clipped, then their
1251 // clip rect is ignored, and they are not set as clipped. 1251 // clip rect is ignored, and they are not set as clipped.
1252 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1252 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1253 1253
1254 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1254 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1255 host_impl_->DidDrawAllLayers(frame); 1255 host_impl_->DidDrawAllLayers(frame);
1256 } 1256 }
1257 1257
1258 TEST_F(DelegatedRendererLayerImplTestClip, 1258 TEST_F(DelegatedRendererLayerImplTestClip,
1259 QuadsClipped_LayerUnclipped_Surface) { 1259 QuadsClipped_LayerUnclipped_Surface) {
1260 root_delegated_render_pass_is_clipped_ = true; 1260 root_delegated_render_pass_is_clipped_ = true;
1261 clip_delegated_renderer_layer_ = false; 1261 clip_delegated_renderer_layer_ = false;
1262 SetUpTest(); 1262 SetUpTest();
1263 1263
1264 delegated_renderer_layer_->SetForceRenderSurface(true); 1264 delegated_renderer_layer_->SetForceRenderSurface(true);
1265 1265
1266 LayerTreeHostImpl::FrameData frame; 1266 LayerTreeHostImpl::FrameData frame;
1267 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1267 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1268 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1268 host_impl_->PrepareToDraw(&frame));
1269 1269
1270 ASSERT_EQ(3u, frame.render_passes.size()); 1270 ASSERT_EQ(3u, frame.render_passes.size());
1271 const QuadList& contrib_delegated_quad_list = 1271 const QuadList& contrib_delegated_quad_list =
1272 frame.render_passes[0]->quad_list; 1272 frame.render_passes[0]->quad_list;
1273 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1273 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1274 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1274 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1275 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1275 ASSERT_EQ(5u, root_delegated_quad_list.size());
1276 const SharedQuadState* root_delegated_shared_quad_state = 1276 const SharedQuadState* root_delegated_shared_quad_state =
1277 root_delegated_quad_list[0]->shared_quad_state; 1277 root_delegated_quad_list[0]->shared_quad_state;
1278 1278
(...skipping 10 matching lines...) Expand all
1289 TEST_F(DelegatedRendererLayerImplTestClip, 1289 TEST_F(DelegatedRendererLayerImplTestClip,
1290 QuadsUnclipped_LayerClipped_Surface) { 1290 QuadsUnclipped_LayerClipped_Surface) {
1291 root_delegated_render_pass_is_clipped_ = false; 1291 root_delegated_render_pass_is_clipped_ = false;
1292 clip_delegated_renderer_layer_ = true; 1292 clip_delegated_renderer_layer_ = true;
1293 SetUpTest(); 1293 SetUpTest();
1294 1294
1295 delegated_renderer_layer_->SetForceRenderSurface(true); 1295 delegated_renderer_layer_->SetForceRenderSurface(true);
1296 1296
1297 LayerTreeHostImpl::FrameData frame; 1297 LayerTreeHostImpl::FrameData frame;
1298 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1298 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1299 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1299 host_impl_->PrepareToDraw(&frame));
1300 1300
1301 ASSERT_EQ(3u, frame.render_passes.size()); 1301 ASSERT_EQ(3u, frame.render_passes.size());
1302 const QuadList& contrib_delegated_quad_list = 1302 const QuadList& contrib_delegated_quad_list =
1303 frame.render_passes[0]->quad_list; 1303 frame.render_passes[0]->quad_list;
1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1306 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1306 ASSERT_EQ(5u, root_delegated_quad_list.size());
1307 const SharedQuadState* root_delegated_shared_quad_state = 1307 const SharedQuadState* root_delegated_shared_quad_state =
1308 root_delegated_quad_list[0]->shared_quad_state; 1308 root_delegated_quad_list[0]->shared_quad_state;
1309 1309
1310 // When the layer owns a surface, the quads don't need to be clipped 1310 // When the layer owns a surface, the quads don't need to be clipped
1311 // further than they already specify. If they aren't clipped, then their 1311 // further than they already specify. If they aren't clipped, then their
1312 // clip rect is ignored, and they are not set as clipped. 1312 // clip rect is ignored, and they are not set as clipped.
1313 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1313 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1314 1314
1315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1316 host_impl_->DidDrawAllLayers(frame); 1316 host_impl_->DidDrawAllLayers(frame);
1317 } 1317 }
1318 1318
1319 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1319 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1320 root_delegated_render_pass_is_clipped_ = true; 1320 root_delegated_render_pass_is_clipped_ = true;
1321 clip_delegated_renderer_layer_ = true; 1321 clip_delegated_renderer_layer_ = true;
1322 SetUpTest(); 1322 SetUpTest();
1323 1323
1324 delegated_renderer_layer_->SetForceRenderSurface(true); 1324 delegated_renderer_layer_->SetForceRenderSurface(true);
1325 1325
1326 LayerTreeHostImpl::FrameData frame; 1326 LayerTreeHostImpl::FrameData frame;
1327 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1327 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1328 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1328 host_impl_->PrepareToDraw(&frame));
1329 1329
1330 ASSERT_EQ(3u, frame.render_passes.size()); 1330 ASSERT_EQ(3u, frame.render_passes.size());
1331 const QuadList& contrib_delegated_quad_list = 1331 const QuadList& contrib_delegated_quad_list =
1332 frame.render_passes[0]->quad_list; 1332 frame.render_passes[0]->quad_list;
1333 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1333 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1334 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1334 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1335 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1335 ASSERT_EQ(5u, root_delegated_quad_list.size());
1336 const SharedQuadState* root_delegated_shared_quad_state = 1336 const SharedQuadState* root_delegated_shared_quad_state =
1337 root_delegated_quad_list[0]->shared_quad_state; 1337 root_delegated_quad_list[0]->shared_quad_state;
1338 1338
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 &delegated_render_passes); 1383 &delegated_render_passes);
1384 1384
1385 // The RenderPasses should be taken by the layer. 1385 // The RenderPasses should be taken by the layer.
1386 EXPECT_EQ(0u, delegated_render_passes.size()); 1386 EXPECT_EQ(0u, delegated_render_passes.size());
1387 1387
1388 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 1388 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
1389 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 1389 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
1390 1390
1391 LayerTreeHostImpl::FrameData frame; 1391 LayerTreeHostImpl::FrameData frame;
1392 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1392 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS,
1393 host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1393 host_impl_->PrepareToDraw(&frame));
1394 1394
1395 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1395 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1396 ASSERT_EQ(1u, frame.render_passes.size()); 1396 ASSERT_EQ(1u, frame.render_passes.size());
1397 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1397 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1398 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1398 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1399 frame.render_passes[0]->quad_list[0]->material); 1399 frame.render_passes[0]->quad_list[0]->material);
1400 1400
1401 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1401 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1402 host_impl_->DidDrawAllLayers(frame); 1402 host_impl_->DidDrawAllLayers(frame);
1403 } 1403 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1531 // The occlusion extends to 500 in the x-axis, pushing the left of the 1531 // The occlusion extends to 500 in the x-axis, pushing the left of the
1532 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. 1532 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad.
1533 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), 1533 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(),
1534 impl.quad_list()[0]->visible_rect.ToString()); 1534 impl.quad_list()[0]->visible_rect.ToString());
1535 } 1535 }
1536 } 1536 }
1537 } 1537 }
1538 1538
1539 } // namespace 1539 } // namespace
1540 } // namespace cc 1540 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/delegating_renderer.h » ('j') | cc/output/direct_renderer.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698