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

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

Issue 246753008: cc: Unify use of DidSwapBuffers() and did_request_swap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Introduce HasSentDrawRequestThisFrame() Created 6 years, 8 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/layers/quad_sink.h" 8 #include "cc/layers/quad_sink.h"
9 #include "cc/layers/solid_color_layer_impl.h" 9 #include "cc/layers/solid_color_layer_impl.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 133
134 protected: 134 protected:
135 LayerImpl* root_layer_; 135 LayerImpl* root_layer_;
136 LayerImpl* layer_before_; 136 LayerImpl* layer_before_;
137 LayerImpl* layer_after_; 137 LayerImpl* layer_after_;
138 DelegatedRendererLayerImpl* delegated_renderer_layer_; 138 DelegatedRendererLayerImpl* delegated_renderer_layer_;
139 }; 139 };
140 140
141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
142 LayerTreeHostImpl::FrameData frame; 142 LayerTreeHostImpl::FrameData frame;
143 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 143 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
144 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
145 144
146 // Each non-DelegatedRendererLayer added one RenderPass. The 145 // Each non-DelegatedRendererLayer added one RenderPass. The
147 // DelegatedRendererLayer added two contributing passes. 146 // DelegatedRendererLayer added two contributing passes.
148 ASSERT_EQ(5u, frame.render_passes.size()); 147 ASSERT_EQ(5u, frame.render_passes.size());
149 148
150 // The DelegatedRendererLayer should have added its contributing RenderPasses 149 // The DelegatedRendererLayer should have added its contributing RenderPasses
151 // to the frame. 150 // to the frame.
152 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 151 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
153 EXPECT_EQ(1, frame.render_passes[1]->id.index); 152 EXPECT_EQ(1, frame.render_passes[1]->id.index);
154 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 153 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 13 matching lines...) Expand all
168 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 167 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
169 frame.render_passes[2]->output_rect.ToString()); 168 frame.render_passes[2]->output_rect.ToString());
170 169
171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 170 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
172 host_impl_->DidDrawAllLayers(frame); 171 host_impl_->DidDrawAllLayers(frame);
173 } 172 }
174 173
175 TEST_F(DelegatedRendererLayerImplTestSimple, 174 TEST_F(DelegatedRendererLayerImplTestSimple,
176 AddsQuadsToContributingRenderPasses) { 175 AddsQuadsToContributingRenderPasses) {
177 LayerTreeHostImpl::FrameData frame; 176 LayerTreeHostImpl::FrameData frame;
178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 177 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
179 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
180 178
181 // Each non-DelegatedRendererLayer added one RenderPass. The 179 // Each non-DelegatedRendererLayer added one RenderPass. The
182 // DelegatedRendererLayer added two contributing passes. 180 // DelegatedRendererLayer added two contributing passes.
183 ASSERT_EQ(5u, frame.render_passes.size()); 181 ASSERT_EQ(5u, frame.render_passes.size());
184 182
185 // The DelegatedRendererLayer should have added its contributing RenderPasses 183 // The DelegatedRendererLayer should have added its contributing RenderPasses
186 // to the frame. 184 // to the frame.
187 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 185 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
188 EXPECT_EQ(1, frame.render_passes[1]->id.index); 186 EXPECT_EQ(1, frame.render_passes[1]->id.index);
189 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 187 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 14 matching lines...) Expand all
204 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 202 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
205 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 203 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
206 frame.render_passes[1]->quad_list[0]->rect.ToString()); 204 frame.render_passes[1]->quad_list[0]->rect.ToString());
207 205
208 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 206 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
209 host_impl_->DidDrawAllLayers(frame); 207 host_impl_->DidDrawAllLayers(frame);
210 } 208 }
211 209
212 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 210 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
213 LayerTreeHostImpl::FrameData frame; 211 LayerTreeHostImpl::FrameData frame;
214 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 212 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
215 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
216 213
217 // Each non-DelegatedRendererLayer added one RenderPass. The 214 // Each non-DelegatedRendererLayer added one RenderPass. The
218 // DelegatedRendererLayer added two contributing passes. 215 // DelegatedRendererLayer added two contributing passes.
219 ASSERT_EQ(5u, frame.render_passes.size()); 216 ASSERT_EQ(5u, frame.render_passes.size());
220 217
221 // The layer's target is the RenderPass from layer_after_. 218 // The layer's target is the RenderPass from layer_after_.
222 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 219 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
223 220
224 // The DelegatedRendererLayer should have added copies of quads in its root 221 // The DelegatedRendererLayer should have added copies of quads in its root
225 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 222 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
226 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 223 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
227 224
228 // Verify it added the right quads. 225 // Verify it added the right quads.
229 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 226 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
230 frame.render_passes[3]->quad_list[0]->rect.ToString()); 227 frame.render_passes[3]->quad_list[0]->rect.ToString());
231 228
232 // Its target layer should have a quad as well. 229 // Its target layer should have a quad as well.
233 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 230 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
234 frame.render_passes[3]->quad_list[1]->rect.ToString()); 231 frame.render_passes[3]->quad_list[1]->rect.ToString());
235 232
236 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 233 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
237 host_impl_->DidDrawAllLayers(frame); 234 host_impl_->DidDrawAllLayers(frame);
238 } 235 }
239 236
240 TEST_F(DelegatedRendererLayerImplTestSimple, 237 TEST_F(DelegatedRendererLayerImplTestSimple,
241 QuadsFromRootRenderPassAreModifiedForTheTarget) { 238 QuadsFromRootRenderPassAreModifiedForTheTarget) {
242 LayerTreeHostImpl::FrameData frame; 239 LayerTreeHostImpl::FrameData frame;
243 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 240 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
244 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
245 241
246 // Each non-DelegatedRendererLayer added one RenderPass. The 242 // Each non-DelegatedRendererLayer added one RenderPass. The
247 // DelegatedRendererLayer added two contributing passes. 243 // DelegatedRendererLayer added two contributing passes.
248 ASSERT_EQ(5u, frame.render_passes.size()); 244 ASSERT_EQ(5u, frame.render_passes.size());
249 245
250 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 246 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
251 // has a translation transform of 1,1. So its root RenderPass' quads should 247 // has a translation transform of 1,1. So its root RenderPass' quads should
252 // all be transformed by that combined amount. 248 // all be transformed by that combined amount.
253 // The DelegatedRendererLayer has a size of 10x10, but the root delegated 249 // 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. 250 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8.
(...skipping 12 matching lines...) Expand all
267 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 263 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
268 EXPECT_TRANSFORMATION_MATRIX_EQ( 264 EXPECT_TRANSFORMATION_MATRIX_EQ(
269 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 265 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
270 266
271 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 267 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
272 host_impl_->DidDrawAllLayers(frame); 268 host_impl_->DidDrawAllLayers(frame);
273 } 269 }
274 270
275 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 271 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
276 LayerTreeHostImpl::FrameData frame; 272 LayerTreeHostImpl::FrameData frame;
277 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 273 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
278 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
279 274
280 // The delegated layer has a surface between it and the root. 275 // The delegated layer has a surface between it and the root.
281 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 276 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
282 277
283 // Each non-DelegatedRendererLayer added one RenderPass. The 278 // Each non-DelegatedRendererLayer added one RenderPass. The
284 // DelegatedRendererLayer added two contributing passes. 279 // DelegatedRendererLayer added two contributing passes.
285 ASSERT_EQ(5u, frame.render_passes.size()); 280 ASSERT_EQ(5u, frame.render_passes.size());
286 281
287 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all 282 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all
288 // render pass' transforms to the root should be shifted by this amount. 283 // render pass' transforms to the root should be shifted by this amount.
(...skipping 15 matching lines...) Expand all
304 EXPECT_TRANSFORMATION_MATRIX_EQ( 299 EXPECT_TRANSFORMATION_MATRIX_EQ(
305 transform * seven_eight, 300 transform * seven_eight,
306 frame.render_passes[2]->transform_to_root_target); 301 frame.render_passes[2]->transform_to_root_target);
307 302
308 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 303 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
309 host_impl_->DidDrawAllLayers(frame); 304 host_impl_->DidDrawAllLayers(frame);
310 } 305 }
311 306
312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 307 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
313 LayerTreeHostImpl::FrameData frame; 308 LayerTreeHostImpl::FrameData frame;
314 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 309 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
315 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
316 310
317 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 311 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
318 // has no need to be a RenderSurface for the quads it carries. 312 // has no need to be a RenderSurface for the quads it carries.
319 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 313 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
320 314
321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
322 host_impl_->DidDrawAllLayers(frame); 316 host_impl_->DidDrawAllLayers(frame);
323 } 317 }
324 318
325 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 319 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
326 delegated_renderer_layer_->SetOpacity(0.5f); 320 delegated_renderer_layer_->SetOpacity(0.5f);
327 321
328 LayerTreeHostImpl::FrameData frame; 322 LayerTreeHostImpl::FrameData frame;
329 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 323 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
330 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
331 324
332 // This test case has quads from multiple layers in the delegated renderer, so 325 // This test case has quads from multiple layers in the delegated renderer, so
333 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 326 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
334 // render surface. 327 // render surface.
335 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 328 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
336 329
337 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 330 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
338 host_impl_->DidDrawAllLayers(frame); 331 host_impl_->DidDrawAllLayers(frame);
339 } 332 }
340 333
341 TEST_F(DelegatedRendererLayerImplTestSimple, 334 TEST_F(DelegatedRendererLayerImplTestSimple,
342 DoesOwnARenderSurfaceForTransform) { 335 DoesOwnARenderSurfaceForTransform) {
343 gfx::Transform rotation; 336 gfx::Transform rotation;
344 rotation.RotateAboutZAxis(30.0); 337 rotation.RotateAboutZAxis(30.0);
345 delegated_renderer_layer_->SetTransform(rotation); 338 delegated_renderer_layer_->SetTransform(rotation);
346 339
347 LayerTreeHostImpl::FrameData frame; 340 LayerTreeHostImpl::FrameData frame;
348 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 341 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
349 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
350 342
351 // This test case has quads from multiple layers in the delegated renderer, so 343 // This test case has quads from multiple layers in the delegated renderer, so
352 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 344 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
353 // render surface. 345 // render surface.
354 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 346 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
355 347
356 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 348 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
357 host_impl_->DidDrawAllLayers(frame); 349 host_impl_->DidDrawAllLayers(frame);
358 } 350 }
359 351
360 class DelegatedRendererLayerImplTestOwnSurface 352 class DelegatedRendererLayerImplTestOwnSurface
361 : public DelegatedRendererLayerImplTestSimple { 353 : public DelegatedRendererLayerImplTestSimple {
362 public: 354 public:
363 DelegatedRendererLayerImplTestOwnSurface() 355 DelegatedRendererLayerImplTestOwnSurface()
364 : DelegatedRendererLayerImplTestSimple() { 356 : DelegatedRendererLayerImplTestSimple() {
365 delegated_renderer_layer_->SetForceRenderSurface(true); 357 delegated_renderer_layer_->SetForceRenderSurface(true);
366 } 358 }
367 }; 359 };
368 360
369 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
370 LayerTreeHostImpl::FrameData frame; 362 LayerTreeHostImpl::FrameData frame;
371 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 363 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
372 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
373 364
374 // Each non-DelegatedRendererLayer added one RenderPass. The 365 // Each non-DelegatedRendererLayer added one RenderPass. The
375 // DelegatedRendererLayer added two contributing passes and its owned surface 366 // DelegatedRendererLayer added two contributing passes and its owned surface
376 // added one pass. 367 // added one pass.
377 ASSERT_EQ(6u, frame.render_passes.size()); 368 ASSERT_EQ(6u, frame.render_passes.size());
378 369
379 // The DelegatedRendererLayer should have added its contributing RenderPasses 370 // The DelegatedRendererLayer should have added its contributing RenderPasses
380 // to the frame. 371 // to the frame.
381 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 372 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
382 EXPECT_EQ(1, frame.render_passes[1]->id.index); 373 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 18 matching lines...) Expand all
401 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 392 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
402 frame.render_passes[2]->output_rect.ToString()); 393 frame.render_passes[2]->output_rect.ToString());
403 394
404 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 395 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
405 host_impl_->DidDrawAllLayers(frame); 396 host_impl_->DidDrawAllLayers(frame);
406 } 397 }
407 398
408 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 399 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
409 AddsQuadsToContributingRenderPasses) { 400 AddsQuadsToContributingRenderPasses) {
410 LayerTreeHostImpl::FrameData frame; 401 LayerTreeHostImpl::FrameData frame;
411 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 402 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
412 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
413 403
414 // Each non-DelegatedRendererLayer added one RenderPass. The 404 // Each non-DelegatedRendererLayer added one RenderPass. The
415 // DelegatedRendererLayer added two contributing passes and its owned surface 405 // DelegatedRendererLayer added two contributing passes and its owned surface
416 // added one pass. 406 // added one pass.
417 ASSERT_EQ(6u, frame.render_passes.size()); 407 ASSERT_EQ(6u, frame.render_passes.size());
418 408
419 // The DelegatedRendererLayer should have added its contributing RenderPasses 409 // The DelegatedRendererLayer should have added its contributing RenderPasses
420 // to the frame. 410 // to the frame.
421 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 411 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
422 EXPECT_EQ(1, frame.render_passes[1]->id.index); 412 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 15 matching lines...) Expand all
438 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 428 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
439 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 429 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
440 frame.render_passes[1]->quad_list[0]->rect.ToString()); 430 frame.render_passes[1]->quad_list[0]->rect.ToString());
441 431
442 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 432 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
443 host_impl_->DidDrawAllLayers(frame); 433 host_impl_->DidDrawAllLayers(frame);
444 } 434 }
445 435
446 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 436 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
447 LayerTreeHostImpl::FrameData frame; 437 LayerTreeHostImpl::FrameData frame;
448 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 438 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
449 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
450 439
451 // Each non-DelegatedRendererLayer added one RenderPass. The 440 // Each non-DelegatedRendererLayer added one RenderPass. The
452 // DelegatedRendererLayer added two contributing passes and its owned surface 441 // DelegatedRendererLayer added two contributing passes and its owned surface
453 // added one pass. 442 // added one pass.
454 ASSERT_EQ(6u, frame.render_passes.size()); 443 ASSERT_EQ(6u, frame.render_passes.size());
455 444
456 // The layer's target is the RenderPass owned by itself. 445 // The layer's target is the RenderPass owned by itself.
457 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 446 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
458 447
459 // The DelegatedRendererLayer should have added copies of quads in its root 448 // The DelegatedRendererLayer should have added copies of quads in its root
460 // RenderPass to its target RenderPass. 449 // RenderPass to its target RenderPass.
461 // The layer_after also adds one quad. 450 // The layer_after also adds one quad.
462 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 451 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
463 452
464 // Verify it added the right quads. 453 // Verify it added the right quads.
465 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 454 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
466 frame.render_passes[3]->quad_list[0]->rect.ToString()); 455 frame.render_passes[3]->quad_list[0]->rect.ToString());
467 456
468 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 457 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
469 host_impl_->DidDrawAllLayers(frame); 458 host_impl_->DidDrawAllLayers(frame);
470 } 459 }
471 460
472 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 461 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
473 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 462 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
474 LayerTreeHostImpl::FrameData frame; 463 LayerTreeHostImpl::FrameData frame;
475 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 464 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
476 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
477 465
478 // Each non-DelegatedRendererLayer added one RenderPass. The 466 // Each non-DelegatedRendererLayer added one RenderPass. The
479 // DelegatedRendererLayer added two contributing passes and its owned surface 467 // DelegatedRendererLayer added two contributing passes and its owned surface
480 // added one pass. 468 // added one pass.
481 ASSERT_EQ(6u, frame.render_passes.size()); 469 ASSERT_EQ(6u, frame.render_passes.size());
482 470
483 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 471 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
484 // RenderPass' quads do not need to be translated at all. However, they are 472 // RenderPass' quads do not need to be translated at all. However, they are
485 // scaled from the frame's size (8x8) to the layer's bounds (10x10). 473 // scaled from the frame's size (8x8) to the layer's bounds (10x10).
486 gfx::Transform transform; 474 gfx::Transform transform;
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 LayerImpl* root_layer_; 689 LayerImpl* root_layer_;
702 DelegatedRendererLayerImpl* delegated_renderer_layer_; 690 DelegatedRendererLayerImpl* delegated_renderer_layer_;
703 bool root_delegated_render_pass_is_clipped_; 691 bool root_delegated_render_pass_is_clipped_;
704 }; 692 };
705 693
706 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 694 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
707 root_delegated_render_pass_is_clipped_ = false; 695 root_delegated_render_pass_is_clipped_ = false;
708 SetUpTest(); 696 SetUpTest();
709 697
710 LayerTreeHostImpl::FrameData frame; 698 LayerTreeHostImpl::FrameData frame;
711 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 699 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
712 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
713 700
714 const SharedQuadState* root_delegated_shared_quad_state = NULL; 701 const SharedQuadState* root_delegated_shared_quad_state = NULL;
715 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 702 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
716 VerifyRenderPasses( 703 VerifyRenderPasses(
717 frame, 704 frame,
718 2, 705 2,
719 &root_delegated_shared_quad_state, 706 &root_delegated_shared_quad_state,
720 &contrib_delegated_shared_quad_state); 707 &contrib_delegated_shared_quad_state);
721 708
722 // When the quads don't have a clip of their own, the clip rect is set to 709 // When the quads don't have a clip of their own, the clip rect is set to
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 745
759 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 746 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
760 host_impl_->DidDrawAllLayers(frame); 747 host_impl_->DidDrawAllLayers(frame);
761 } 748 }
762 749
763 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 750 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
764 root_delegated_render_pass_is_clipped_ = true; 751 root_delegated_render_pass_is_clipped_ = true;
765 SetUpTest(); 752 SetUpTest();
766 753
767 LayerTreeHostImpl::FrameData frame; 754 LayerTreeHostImpl::FrameData frame;
768 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 755 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
769 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
770 756
771 const SharedQuadState* root_delegated_shared_quad_state = NULL; 757 const SharedQuadState* root_delegated_shared_quad_state = NULL;
772 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 758 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
773 VerifyRenderPasses( 759 VerifyRenderPasses(
774 frame, 760 frame,
775 2, 761 2,
776 &root_delegated_shared_quad_state, 762 &root_delegated_shared_quad_state,
777 &contrib_delegated_shared_quad_state); 763 &contrib_delegated_shared_quad_state);
778 764
779 // Since the quads have a clip_rect it should be modified by delegated 765 // Since the quads have a clip_rect it should be modified by delegated
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 host_impl_->DidDrawAllLayers(frame); 810 host_impl_->DidDrawAllLayers(frame);
825 } 811 }
826 812
827 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 813 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
828 root_delegated_render_pass_is_clipped_ = false; 814 root_delegated_render_pass_is_clipped_ = false;
829 SetUpTest(); 815 SetUpTest();
830 816
831 delegated_renderer_layer_->SetForceRenderSurface(true); 817 delegated_renderer_layer_->SetForceRenderSurface(true);
832 818
833 LayerTreeHostImpl::FrameData frame; 819 LayerTreeHostImpl::FrameData frame;
834 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 820 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
835 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
836 821
837 const SharedQuadState* root_delegated_shared_quad_state = NULL; 822 const SharedQuadState* root_delegated_shared_quad_state = NULL;
838 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 823 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
839 VerifyRenderPasses( 824 VerifyRenderPasses(
840 frame, 825 frame,
841 3, 826 3,
842 &root_delegated_shared_quad_state, 827 &root_delegated_shared_quad_state,
843 &contrib_delegated_shared_quad_state); 828 &contrib_delegated_shared_quad_state);
844 829
845 // When the layer owns a surface, then its position and translation are not 830 // When the layer owns a surface, then its position and translation are not
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 host_impl_->DidDrawAllLayers(frame); 866 host_impl_->DidDrawAllLayers(frame);
882 } 867 }
883 868
884 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 869 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
885 root_delegated_render_pass_is_clipped_ = true; 870 root_delegated_render_pass_is_clipped_ = true;
886 SetUpTest(); 871 SetUpTest();
887 872
888 delegated_renderer_layer_->SetForceRenderSurface(true); 873 delegated_renderer_layer_->SetForceRenderSurface(true);
889 874
890 LayerTreeHostImpl::FrameData frame; 875 LayerTreeHostImpl::FrameData frame;
891 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 876 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
892 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
893 877
894 const SharedQuadState* root_delegated_shared_quad_state = NULL; 878 const SharedQuadState* root_delegated_shared_quad_state = NULL;
895 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 879 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
896 VerifyRenderPasses( 880 VerifyRenderPasses(
897 frame, 881 frame,
898 3, 882 3,
899 &root_delegated_shared_quad_state, 883 &root_delegated_shared_quad_state,
900 &contrib_delegated_shared_quad_state); 884 &contrib_delegated_shared_quad_state);
901 885
902 // When the layer owns a surface, then its position and translation are not 886 // When the layer owns a surface, then its position and translation are not
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 bool clip_delegated_renderer_layer_; 1092 bool clip_delegated_renderer_layer_;
1109 }; 1093 };
1110 1094
1111 TEST_F(DelegatedRendererLayerImplTestClip, 1095 TEST_F(DelegatedRendererLayerImplTestClip,
1112 QuadsUnclipped_LayerUnclipped_NoSurface) { 1096 QuadsUnclipped_LayerUnclipped_NoSurface) {
1113 root_delegated_render_pass_is_clipped_ = false; 1097 root_delegated_render_pass_is_clipped_ = false;
1114 clip_delegated_renderer_layer_ = false; 1098 clip_delegated_renderer_layer_ = false;
1115 SetUpTest(); 1099 SetUpTest();
1116 1100
1117 LayerTreeHostImpl::FrameData frame; 1101 LayerTreeHostImpl::FrameData frame;
1118 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1102 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1119 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1120 1103
1121 ASSERT_EQ(2u, frame.render_passes.size()); 1104 ASSERT_EQ(2u, frame.render_passes.size());
1122 const QuadList& contrib_delegated_quad_list = 1105 const QuadList& contrib_delegated_quad_list =
1123 frame.render_passes[0]->quad_list; 1106 frame.render_passes[0]->quad_list;
1124 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1107 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1125 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1108 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1126 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1109 ASSERT_EQ(5u, root_delegated_quad_list.size());
1127 const SharedQuadState* root_delegated_shared_quad_state = 1110 const SharedQuadState* root_delegated_shared_quad_state =
1128 root_delegated_quad_list[0]->shared_quad_state; 1111 root_delegated_quad_list[0]->shared_quad_state;
1129 1112
1130 // When the quads don't have a clip of their own, the clip rect is set to 1113 // When the quads don't have a clip of their own, the clip rect is set to
1131 // the drawable_content_rect of the delegated renderer layer. 1114 // the drawable_content_rect of the delegated renderer layer.
1132 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1115 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1133 root_delegated_shared_quad_state->clip_rect.ToString()); 1116 root_delegated_shared_quad_state->clip_rect.ToString());
1134 // Quads are clipped to the delegated renderer layer. 1117 // Quads are clipped to the delegated renderer layer.
1135 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1118 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1136 1119
1137 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1120 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1138 host_impl_->DidDrawAllLayers(frame); 1121 host_impl_->DidDrawAllLayers(frame);
1139 } 1122 }
1140 1123
1141 TEST_F(DelegatedRendererLayerImplTestClip, 1124 TEST_F(DelegatedRendererLayerImplTestClip,
1142 QuadsClipped_LayerUnclipped_NoSurface) { 1125 QuadsClipped_LayerUnclipped_NoSurface) {
1143 root_delegated_render_pass_is_clipped_ = true; 1126 root_delegated_render_pass_is_clipped_ = true;
1144 clip_delegated_renderer_layer_ = false; 1127 clip_delegated_renderer_layer_ = false;
1145 SetUpTest(); 1128 SetUpTest();
1146 1129
1147 LayerTreeHostImpl::FrameData frame; 1130 LayerTreeHostImpl::FrameData frame;
1148 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1131 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1149 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1150 1132
1151 ASSERT_EQ(2u, frame.render_passes.size()); 1133 ASSERT_EQ(2u, frame.render_passes.size());
1152 const QuadList& contrib_delegated_quad_list = 1134 const QuadList& contrib_delegated_quad_list =
1153 frame.render_passes[0]->quad_list; 1135 frame.render_passes[0]->quad_list;
1154 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1136 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1155 const QuadList& root_delegated_quad_list = 1137 const QuadList& root_delegated_quad_list =
1156 frame.render_passes[1]->quad_list; 1138 frame.render_passes[1]->quad_list;
1157 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1139 ASSERT_EQ(5u, root_delegated_quad_list.size());
1158 const SharedQuadState* root_delegated_shared_quad_state = 1140 const SharedQuadState* root_delegated_shared_quad_state =
1159 root_delegated_quad_list[0]->shared_quad_state; 1141 root_delegated_quad_list[0]->shared_quad_state;
1160 1142
1161 // When the quads have a clip of their own, it is used. 1143 // When the quads have a clip of their own, it is used.
1162 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1144 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1163 root_delegated_shared_quad_state->clip_rect.ToString()); 1145 root_delegated_shared_quad_state->clip_rect.ToString());
1164 // Quads came with a clip rect. 1146 // Quads came with a clip rect.
1165 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1147 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1166 1148
1167 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1149 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1168 host_impl_->DidDrawAllLayers(frame); 1150 host_impl_->DidDrawAllLayers(frame);
1169 } 1151 }
1170 1152
1171 TEST_F(DelegatedRendererLayerImplTestClip, 1153 TEST_F(DelegatedRendererLayerImplTestClip,
1172 QuadsUnclipped_LayerClipped_NoSurface) { 1154 QuadsUnclipped_LayerClipped_NoSurface) {
1173 root_delegated_render_pass_is_clipped_ = false; 1155 root_delegated_render_pass_is_clipped_ = false;
1174 clip_delegated_renderer_layer_ = true; 1156 clip_delegated_renderer_layer_ = true;
1175 SetUpTest(); 1157 SetUpTest();
1176 1158
1177 LayerTreeHostImpl::FrameData frame; 1159 LayerTreeHostImpl::FrameData frame;
1178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1160 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1179 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1180 1161
1181 ASSERT_EQ(2u, frame.render_passes.size()); 1162 ASSERT_EQ(2u, frame.render_passes.size());
1182 const QuadList& contrib_delegated_quad_list = 1163 const QuadList& contrib_delegated_quad_list =
1183 frame.render_passes[0]->quad_list; 1164 frame.render_passes[0]->quad_list;
1184 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1165 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1185 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1166 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1186 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1167 ASSERT_EQ(5u, root_delegated_quad_list.size());
1187 const SharedQuadState* root_delegated_shared_quad_state = 1168 const SharedQuadState* root_delegated_shared_quad_state =
1188 root_delegated_quad_list[0]->shared_quad_state; 1169 root_delegated_quad_list[0]->shared_quad_state;
1189 1170
1190 // When the quads don't have a clip of their own, the clip rect is set to 1171 // When the quads don't have a clip of their own, the clip rect is set to
1191 // the drawable_content_rect of the delegated renderer layer. When the layer 1172 // the drawable_content_rect of the delegated renderer layer. When the layer
1192 // is clipped, that should be seen in the quads' clip_rect. 1173 // is clipped, that should be seen in the quads' clip_rect.
1193 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1174 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1194 root_delegated_shared_quad_state->clip_rect.ToString()); 1175 root_delegated_shared_quad_state->clip_rect.ToString());
1195 // Quads are clipped to the delegated renderer layer. 1176 // Quads are clipped to the delegated renderer layer.
1196 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1177 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1197 1178
1198 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1179 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1199 host_impl_->DidDrawAllLayers(frame); 1180 host_impl_->DidDrawAllLayers(frame);
1200 } 1181 }
1201 1182
1202 TEST_F(DelegatedRendererLayerImplTestClip, 1183 TEST_F(DelegatedRendererLayerImplTestClip,
1203 QuadsClipped_LayerClipped_NoSurface) { 1184 QuadsClipped_LayerClipped_NoSurface) {
1204 root_delegated_render_pass_is_clipped_ = true; 1185 root_delegated_render_pass_is_clipped_ = true;
1205 clip_delegated_renderer_layer_ = true; 1186 clip_delegated_renderer_layer_ = true;
1206 SetUpTest(); 1187 SetUpTest();
1207 1188
1208 LayerTreeHostImpl::FrameData frame; 1189 LayerTreeHostImpl::FrameData frame;
1209 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1190 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1210 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1211 1191
1212 ASSERT_EQ(2u, frame.render_passes.size()); 1192 ASSERT_EQ(2u, frame.render_passes.size());
1213 const QuadList& contrib_delegated_quad_list = 1193 const QuadList& contrib_delegated_quad_list =
1214 frame.render_passes[0]->quad_list; 1194 frame.render_passes[0]->quad_list;
1215 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1195 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1216 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1196 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1217 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1197 ASSERT_EQ(5u, root_delegated_quad_list.size());
1218 const SharedQuadState* root_delegated_shared_quad_state = 1198 const SharedQuadState* root_delegated_shared_quad_state =
1219 root_delegated_quad_list[0]->shared_quad_state; 1199 root_delegated_quad_list[0]->shared_quad_state;
1220 1200
(...skipping 10 matching lines...) Expand all
1231 1211
1232 TEST_F(DelegatedRendererLayerImplTestClip, 1212 TEST_F(DelegatedRendererLayerImplTestClip,
1233 QuadsUnclipped_LayerUnclipped_Surface) { 1213 QuadsUnclipped_LayerUnclipped_Surface) {
1234 root_delegated_render_pass_is_clipped_ = false; 1214 root_delegated_render_pass_is_clipped_ = false;
1235 clip_delegated_renderer_layer_ = false; 1215 clip_delegated_renderer_layer_ = false;
1236 SetUpTest(); 1216 SetUpTest();
1237 1217
1238 delegated_renderer_layer_->SetForceRenderSurface(true); 1218 delegated_renderer_layer_->SetForceRenderSurface(true);
1239 1219
1240 LayerTreeHostImpl::FrameData frame; 1220 LayerTreeHostImpl::FrameData frame;
1241 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1221 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1242 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1243 1222
1244 ASSERT_EQ(3u, frame.render_passes.size()); 1223 ASSERT_EQ(3u, frame.render_passes.size());
1245 const QuadList& contrib_delegated_quad_list = 1224 const QuadList& contrib_delegated_quad_list =
1246 frame.render_passes[0]->quad_list; 1225 frame.render_passes[0]->quad_list;
1247 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1226 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1248 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1227 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1249 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1228 ASSERT_EQ(5u, root_delegated_quad_list.size());
1250 const SharedQuadState* root_delegated_shared_quad_state = 1229 const SharedQuadState* root_delegated_shared_quad_state =
1251 root_delegated_quad_list[0]->shared_quad_state; 1230 root_delegated_quad_list[0]->shared_quad_state;
1252 1231
1253 // When the layer owns a surface, the quads don't need to be clipped 1232 // When the layer owns a surface, the quads don't need to be clipped
1254 // further than they already specify. If they aren't clipped, then their 1233 // further than they already specify. If they aren't clipped, then their
1255 // clip rect is ignored, and they are not set as clipped. 1234 // clip rect is ignored, and they are not set as clipped.
1256 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1235 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1257 1236
1258 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1237 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1259 host_impl_->DidDrawAllLayers(frame); 1238 host_impl_->DidDrawAllLayers(frame);
1260 } 1239 }
1261 1240
1262 TEST_F(DelegatedRendererLayerImplTestClip, 1241 TEST_F(DelegatedRendererLayerImplTestClip,
1263 QuadsClipped_LayerUnclipped_Surface) { 1242 QuadsClipped_LayerUnclipped_Surface) {
1264 root_delegated_render_pass_is_clipped_ = true; 1243 root_delegated_render_pass_is_clipped_ = true;
1265 clip_delegated_renderer_layer_ = false; 1244 clip_delegated_renderer_layer_ = false;
1266 SetUpTest(); 1245 SetUpTest();
1267 1246
1268 delegated_renderer_layer_->SetForceRenderSurface(true); 1247 delegated_renderer_layer_->SetForceRenderSurface(true);
1269 1248
1270 LayerTreeHostImpl::FrameData frame; 1249 LayerTreeHostImpl::FrameData frame;
1271 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1250 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1272 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1273 1251
1274 ASSERT_EQ(3u, frame.render_passes.size()); 1252 ASSERT_EQ(3u, frame.render_passes.size());
1275 const QuadList& contrib_delegated_quad_list = 1253 const QuadList& contrib_delegated_quad_list =
1276 frame.render_passes[0]->quad_list; 1254 frame.render_passes[0]->quad_list;
1277 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1255 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1278 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1256 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1279 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1257 ASSERT_EQ(5u, root_delegated_quad_list.size());
1280 const SharedQuadState* root_delegated_shared_quad_state = 1258 const SharedQuadState* root_delegated_shared_quad_state =
1281 root_delegated_quad_list[0]->shared_quad_state; 1259 root_delegated_quad_list[0]->shared_quad_state;
1282 1260
1283 // When the quads have a clip of their own, it is used. 1261 // When the quads have a clip of their own, it is used.
1284 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1262 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1285 root_delegated_shared_quad_state->clip_rect.ToString()); 1263 root_delegated_shared_quad_state->clip_rect.ToString());
1286 // Quads came with a clip rect. 1264 // Quads came with a clip rect.
1287 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1265 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1288 1266
1289 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1267 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1290 host_impl_->DidDrawAllLayers(frame); 1268 host_impl_->DidDrawAllLayers(frame);
1291 } 1269 }
1292 1270
1293 TEST_F(DelegatedRendererLayerImplTestClip, 1271 TEST_F(DelegatedRendererLayerImplTestClip,
1294 QuadsUnclipped_LayerClipped_Surface) { 1272 QuadsUnclipped_LayerClipped_Surface) {
1295 root_delegated_render_pass_is_clipped_ = false; 1273 root_delegated_render_pass_is_clipped_ = false;
1296 clip_delegated_renderer_layer_ = true; 1274 clip_delegated_renderer_layer_ = true;
1297 SetUpTest(); 1275 SetUpTest();
1298 1276
1299 delegated_renderer_layer_->SetForceRenderSurface(true); 1277 delegated_renderer_layer_->SetForceRenderSurface(true);
1300 1278
1301 LayerTreeHostImpl::FrameData frame; 1279 LayerTreeHostImpl::FrameData frame;
1302 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1280 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1303 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1304 1281
1305 ASSERT_EQ(3u, frame.render_passes.size()); 1282 ASSERT_EQ(3u, frame.render_passes.size());
1306 const QuadList& contrib_delegated_quad_list = 1283 const QuadList& contrib_delegated_quad_list =
1307 frame.render_passes[0]->quad_list; 1284 frame.render_passes[0]->quad_list;
1308 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1285 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1309 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1286 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1310 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1287 ASSERT_EQ(5u, root_delegated_quad_list.size());
1311 const SharedQuadState* root_delegated_shared_quad_state = 1288 const SharedQuadState* root_delegated_shared_quad_state =
1312 root_delegated_quad_list[0]->shared_quad_state; 1289 root_delegated_quad_list[0]->shared_quad_state;
1313 1290
1314 // When the layer owns a surface, the quads don't need to be clipped 1291 // When the layer owns a surface, the quads don't need to be clipped
1315 // further than they already specify. If they aren't clipped, then their 1292 // further than they already specify. If they aren't clipped, then their
1316 // clip rect is ignored, and they are not set as clipped. 1293 // clip rect is ignored, and they are not set as clipped.
1317 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1294 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1318 1295
1319 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1296 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1320 host_impl_->DidDrawAllLayers(frame); 1297 host_impl_->DidDrawAllLayers(frame);
1321 } 1298 }
1322 1299
1323 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1300 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1324 root_delegated_render_pass_is_clipped_ = true; 1301 root_delegated_render_pass_is_clipped_ = true;
1325 clip_delegated_renderer_layer_ = true; 1302 clip_delegated_renderer_layer_ = true;
1326 SetUpTest(); 1303 SetUpTest();
1327 1304
1328 delegated_renderer_layer_->SetForceRenderSurface(true); 1305 delegated_renderer_layer_->SetForceRenderSurface(true);
1329 1306
1330 LayerTreeHostImpl::FrameData frame; 1307 LayerTreeHostImpl::FrameData frame;
1331 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1308 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1332 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1333 1309
1334 ASSERT_EQ(3u, frame.render_passes.size()); 1310 ASSERT_EQ(3u, frame.render_passes.size());
1335 const QuadList& contrib_delegated_quad_list = 1311 const QuadList& contrib_delegated_quad_list =
1336 frame.render_passes[0]->quad_list; 1312 frame.render_passes[0]->quad_list;
1337 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1313 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1338 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1314 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1339 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1315 ASSERT_EQ(5u, root_delegated_quad_list.size());
1340 const SharedQuadState* root_delegated_shared_quad_state = 1316 const SharedQuadState* root_delegated_shared_quad_state =
1341 root_delegated_quad_list[0]->shared_quad_state; 1317 root_delegated_quad_list[0]->shared_quad_state;
1342 1318
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1386 delegated_renderer_layer->SetFrameDataForRenderPasses( 1362 delegated_renderer_layer->SetFrameDataForRenderPasses(
1387 &delegated_render_passes); 1363 &delegated_render_passes);
1388 1364
1389 // The RenderPasses should be taken by the layer. 1365 // The RenderPasses should be taken by the layer.
1390 EXPECT_EQ(0u, delegated_render_passes.size()); 1366 EXPECT_EQ(0u, delegated_render_passes.size());
1391 1367
1392 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 1368 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
1393 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 1369 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
1394 1370
1395 LayerTreeHostImpl::FrameData frame; 1371 LayerTreeHostImpl::FrameData frame;
1396 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, 1372 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1397 host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1398 1373
1399 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1374 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1400 ASSERT_EQ(1u, frame.render_passes.size()); 1375 ASSERT_EQ(1u, frame.render_passes.size());
1401 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1376 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1402 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1377 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1403 frame.render_passes[0]->quad_list[0]->material); 1378 frame.render_passes[0]->quad_list[0]->material);
1404 1379
1405 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1380 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1406 host_impl_->DidDrawAllLayers(frame); 1381 host_impl_->DidDrawAllLayers(frame);
1407 } 1382 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1535 // The occlusion extends to 500 in the x-axis, pushing the left of the 1510 // The occlusion extends to 500 in the x-axis, pushing the left of the
1536 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. 1511 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad.
1537 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), 1512 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(),
1538 impl.quad_list()[0]->visible_rect.ToString()); 1513 impl.quad_list()[0]->visible_rect.ToString());
1539 } 1514 }
1540 } 1515 }
1541 } 1516 }
1542 1517
1543 } // namespace 1518 } // namespace
1544 } // namespace cc 1519 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/output/delegating_renderer_unittest.cc » ('j') | cc/scheduler/draw_swap_readback_result.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698