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

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

Issue 401923003: Revert Removing base::TimeTicks argument to DrawLayers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase! Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/test/layer_tree_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/layers/solid_color_layer_impl.h" 8 #include "cc/layers/solid_color_layer_impl.h"
9 #include "cc/quads/render_pass_draw_quad.h" 9 #include "cc/quads/render_pass_draw_quad.h"
10 #include "cc/quads/solid_color_draw_quad.h" 10 #include "cc/quads/solid_color_draw_quad.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 EXPECT_NE(4, frame.render_passes[4]->id.layer_id); 158 EXPECT_NE(4, frame.render_passes[4]->id.layer_id);
159 EXPECT_EQ(0, frame.render_passes[4]->id.index); 159 EXPECT_EQ(0, frame.render_passes[4]->id.index);
160 160
161 // The DelegatedRendererLayer should have added its RenderPasses to the frame 161 // The DelegatedRendererLayer should have added its RenderPasses to the frame
162 // in order. 162 // in order.
163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
164 frame.render_passes[1]->output_rect.ToString()); 164 frame.render_passes[1]->output_rect.ToString());
165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
166 frame.render_passes[2]->output_rect.ToString()); 166 frame.render_passes[2]->output_rect.ToString());
167 167
168 host_impl_->DrawLayers(&frame); 168 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
169 host_impl_->DidDrawAllLayers(frame); 169 host_impl_->DidDrawAllLayers(frame);
170 } 170 }
171 171
172 TEST_F(DelegatedRendererLayerImplTestSimple, 172 TEST_F(DelegatedRendererLayerImplTestSimple,
173 AddsQuadsToContributingRenderPasses) { 173 AddsQuadsToContributingRenderPasses) {
174 LayerTreeHostImpl::FrameData frame; 174 LayerTreeHostImpl::FrameData frame;
175 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 175 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
176 176
177 // Each non-DelegatedRendererLayer added one RenderPass. The 177 // Each non-DelegatedRendererLayer added one RenderPass. The
178 // DelegatedRendererLayer added two contributing passes. 178 // DelegatedRendererLayer added two contributing passes.
(...skipping 15 matching lines...) Expand all
194 // Verify it added the right quads. 194 // Verify it added the right quads.
195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
197 frame.render_passes[2]->quad_list[0]->rect.ToString()); 197 frame.render_passes[2]->quad_list[0]->rect.ToString());
198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
199 frame.render_passes[2]->quad_list[1]->rect.ToString()); 199 frame.render_passes[2]->quad_list[1]->rect.ToString());
200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
202 frame.render_passes[1]->quad_list[0]->rect.ToString()); 202 frame.render_passes[1]->quad_list[0]->rect.ToString());
203 203
204 host_impl_->DrawLayers(&frame); 204 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
205 host_impl_->DidDrawAllLayers(frame); 205 host_impl_->DidDrawAllLayers(frame);
206 } 206 }
207 207
208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
209 LayerTreeHostImpl::FrameData frame; 209 LayerTreeHostImpl::FrameData frame;
210 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 210 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
211 211
212 // Each non-DelegatedRendererLayer added one RenderPass. The 212 // Each non-DelegatedRendererLayer added one RenderPass. The
213 // DelegatedRendererLayer added two contributing passes. 213 // DelegatedRendererLayer added two contributing passes.
214 ASSERT_EQ(5u, frame.render_passes.size()); 214 ASSERT_EQ(5u, frame.render_passes.size());
215 215
216 // The layer's target is the RenderPass from layer_after_. 216 // The layer's target is the RenderPass from layer_after_.
217 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 217 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
218 218
219 // The DelegatedRendererLayer should have added copies of quads in its root 219 // The DelegatedRendererLayer should have added copies of quads in its root
220 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 220 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
222 222
223 // Verify it added the right quads. 223 // Verify it added the right quads.
224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
225 frame.render_passes[3]->quad_list[0]->rect.ToString()); 225 frame.render_passes[3]->quad_list[0]->rect.ToString());
226 226
227 // Its target layer should have a quad as well. 227 // Its target layer should have a quad as well.
228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
229 frame.render_passes[3]->quad_list[1]->rect.ToString()); 229 frame.render_passes[3]->quad_list[1]->rect.ToString());
230 230
231 host_impl_->DrawLayers(&frame); 231 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
232 host_impl_->DidDrawAllLayers(frame); 232 host_impl_->DidDrawAllLayers(frame);
233 } 233 }
234 234
235 TEST_F(DelegatedRendererLayerImplTestSimple, 235 TEST_F(DelegatedRendererLayerImplTestSimple,
236 QuadsFromRootRenderPassAreModifiedForTheTarget) { 236 QuadsFromRootRenderPassAreModifiedForTheTarget) {
237 LayerTreeHostImpl::FrameData frame; 237 LayerTreeHostImpl::FrameData frame;
238 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 238 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
239 239
240 // Each non-DelegatedRendererLayer added one RenderPass. The 240 // Each non-DelegatedRendererLayer added one RenderPass. The
241 // DelegatedRendererLayer added two contributing passes. 241 // DelegatedRendererLayer added two contributing passes.
(...skipping 10 matching lines...) Expand all
252 // Quads from non-root RenderPasses should not be shifted though. 252 // Quads from non-root RenderPasses should not be shifted though.
253 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 253 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
254 EXPECT_TRANSFORMATION_MATRIX_EQ( 254 EXPECT_TRANSFORMATION_MATRIX_EQ(
255 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 255 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
256 EXPECT_TRANSFORMATION_MATRIX_EQ( 256 EXPECT_TRANSFORMATION_MATRIX_EQ(
257 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 257 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
258 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 258 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
259 EXPECT_TRANSFORMATION_MATRIX_EQ( 259 EXPECT_TRANSFORMATION_MATRIX_EQ(
260 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 260 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
261 261
262 host_impl_->DrawLayers(&frame); 262 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
263 host_impl_->DidDrawAllLayers(frame); 263 host_impl_->DidDrawAllLayers(frame);
264 } 264 }
265 265
266 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { 266 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) {
267 LayerTreeHostImpl::FrameData frame; 267 LayerTreeHostImpl::FrameData frame;
268 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 268 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
269 269
270 // The delegated layer has a surface between it and the root. 270 // The delegated layer has a surface between it and the root.
271 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); 271 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent());
272 272
(...skipping 11 matching lines...) Expand all
284 284
285 // The second contributing surface has a translation of 7, 8. 285 // The second contributing surface has a translation of 7, 8.
286 gfx::Transform seven_eight(1, 0, 0, 1, 7, 8); 286 gfx::Transform seven_eight(1, 0, 0, 1, 7, 8);
287 287
288 EXPECT_TRANSFORMATION_MATRIX_EQ( 288 EXPECT_TRANSFORMATION_MATRIX_EQ(
289 transform * five_six, frame.render_passes[1]->transform_to_root_target); 289 transform * five_six, frame.render_passes[1]->transform_to_root_target);
290 EXPECT_TRANSFORMATION_MATRIX_EQ( 290 EXPECT_TRANSFORMATION_MATRIX_EQ(
291 transform * seven_eight, 291 transform * seven_eight,
292 frame.render_passes[2]->transform_to_root_target); 292 frame.render_passes[2]->transform_to_root_target);
293 293
294 host_impl_->DrawLayers(&frame); 294 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
295 host_impl_->DidDrawAllLayers(frame); 295 host_impl_->DidDrawAllLayers(frame);
296 } 296 }
297 297
298 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 298 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
299 LayerTreeHostImpl::FrameData frame; 299 LayerTreeHostImpl::FrameData frame;
300 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 300 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
301 301
302 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 302 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
303 // has no need to be a RenderSurface for the quads it carries. 303 // has no need to be a RenderSurface for the quads it carries.
304 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 304 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
305 305
306 host_impl_->DrawLayers(&frame); 306 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
307 host_impl_->DidDrawAllLayers(frame); 307 host_impl_->DidDrawAllLayers(frame);
308 } 308 }
309 309
310 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 310 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
311 delegated_renderer_layer_->SetOpacity(0.5f); 311 delegated_renderer_layer_->SetOpacity(0.5f);
312 312
313 LayerTreeHostImpl::FrameData frame; 313 LayerTreeHostImpl::FrameData frame;
314 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 314 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
315 315
316 // This test case has quads from multiple layers in the delegated renderer, so 316 // This test case has quads from multiple layers in the delegated renderer, so
317 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 317 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
318 // render surface. 318 // render surface.
319 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 319 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
320 320
321 host_impl_->DrawLayers(&frame); 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, 325 TEST_F(DelegatedRendererLayerImplTestSimple,
326 DoesOwnARenderSurfaceForTransform) { 326 DoesOwnARenderSurfaceForTransform) {
327 gfx::Transform rotation; 327 gfx::Transform rotation;
328 rotation.RotateAboutZAxis(30.0); 328 rotation.RotateAboutZAxis(30.0);
329 delegated_renderer_layer_->SetTransform(rotation); 329 delegated_renderer_layer_->SetTransform(rotation);
330 330
331 LayerTreeHostImpl::FrameData frame; 331 LayerTreeHostImpl::FrameData frame;
332 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 332 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
333 333
334 // This test case has quads from multiple layers in the delegated renderer, so 334 // This test case has quads from multiple layers in the delegated renderer, so
335 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 335 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
336 // render surface. 336 // render surface.
337 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 337 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
338 338
339 host_impl_->DrawLayers(&frame); 339 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
340 host_impl_->DidDrawAllLayers(frame); 340 host_impl_->DidDrawAllLayers(frame);
341 } 341 }
342 342
343 class DelegatedRendererLayerImplTestOwnSurface 343 class DelegatedRendererLayerImplTestOwnSurface
344 : public DelegatedRendererLayerImplTestSimple { 344 : public DelegatedRendererLayerImplTestSimple {
345 public: 345 public:
346 DelegatedRendererLayerImplTestOwnSurface() 346 DelegatedRendererLayerImplTestOwnSurface()
347 : DelegatedRendererLayerImplTestSimple() { 347 : DelegatedRendererLayerImplTestSimple() {
348 delegated_renderer_layer_->SetForceRenderSurface(true); 348 delegated_renderer_layer_->SetForceRenderSurface(true);
349 } 349 }
(...skipping 26 matching lines...) Expand all
376 EXPECT_NE(4, frame.render_passes[5]->id.layer_id); 376 EXPECT_NE(4, frame.render_passes[5]->id.layer_id);
377 EXPECT_EQ(0, frame.render_passes[5]->id.index); 377 EXPECT_EQ(0, frame.render_passes[5]->id.index);
378 378
379 // The DelegatedRendererLayer should have added its RenderPasses to the frame 379 // The DelegatedRendererLayer should have added its RenderPasses to the frame
380 // in order. 380 // in order.
381 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 381 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
382 frame.render_passes[1]->output_rect.ToString()); 382 frame.render_passes[1]->output_rect.ToString());
383 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 383 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
384 frame.render_passes[2]->output_rect.ToString()); 384 frame.render_passes[2]->output_rect.ToString());
385 385
386 host_impl_->DrawLayers(&frame); 386 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
387 host_impl_->DidDrawAllLayers(frame); 387 host_impl_->DidDrawAllLayers(frame);
388 } 388 }
389 389
390 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 390 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
391 AddsQuadsToContributingRenderPasses) { 391 AddsQuadsToContributingRenderPasses) {
392 LayerTreeHostImpl::FrameData frame; 392 LayerTreeHostImpl::FrameData frame;
393 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 393 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
394 394
395 // Each non-DelegatedRendererLayer added one RenderPass. The 395 // Each non-DelegatedRendererLayer added one RenderPass. The
396 // DelegatedRendererLayer added two contributing passes and its owned surface 396 // DelegatedRendererLayer added two contributing passes and its owned surface
(...skipping 16 matching lines...) Expand all
413 // Verify it added the right quads. 413 // Verify it added the right quads.
414 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 414 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
415 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 415 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
416 frame.render_passes[2]->quad_list[0]->rect.ToString()); 416 frame.render_passes[2]->quad_list[0]->rect.ToString());
417 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 417 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
418 frame.render_passes[2]->quad_list[1]->rect.ToString()); 418 frame.render_passes[2]->quad_list[1]->rect.ToString());
419 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 419 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
420 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 420 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
421 frame.render_passes[1]->quad_list[0]->rect.ToString()); 421 frame.render_passes[1]->quad_list[0]->rect.ToString());
422 422
423 host_impl_->DrawLayers(&frame); 423 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
424 host_impl_->DidDrawAllLayers(frame); 424 host_impl_->DidDrawAllLayers(frame);
425 } 425 }
426 426
427 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 427 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
428 LayerTreeHostImpl::FrameData frame; 428 LayerTreeHostImpl::FrameData frame;
429 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 429 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
430 430
431 // Each non-DelegatedRendererLayer added one RenderPass. The 431 // Each non-DelegatedRendererLayer added one RenderPass. The
432 // DelegatedRendererLayer added two contributing passes and its owned surface 432 // DelegatedRendererLayer added two contributing passes and its owned surface
433 // added one pass. 433 // added one pass.
434 ASSERT_EQ(6u, frame.render_passes.size()); 434 ASSERT_EQ(6u, frame.render_passes.size());
435 435
436 // The layer's target is the RenderPass owned by itself. 436 // The layer's target is the RenderPass owned by itself.
437 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 437 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
438 438
439 // The DelegatedRendererLayer should have added copies of quads in its root 439 // The DelegatedRendererLayer should have added copies of quads in its root
440 // RenderPass to its target RenderPass. 440 // RenderPass to its target RenderPass.
441 // The layer_after also adds one quad. 441 // The layer_after also adds one quad.
442 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 442 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
443 443
444 // Verify it added the right quads. 444 // Verify it added the right quads.
445 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 445 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
446 frame.render_passes[3]->quad_list[0]->rect.ToString()); 446 frame.render_passes[3]->quad_list[0]->rect.ToString());
447 447
448 host_impl_->DrawLayers(&frame); 448 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
449 host_impl_->DidDrawAllLayers(frame); 449 host_impl_->DidDrawAllLayers(frame);
450 } 450 }
451 451
452 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 452 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
453 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 453 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
454 LayerTreeHostImpl::FrameData frame; 454 LayerTreeHostImpl::FrameData frame;
455 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 455 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
456 456
457 // Each non-DelegatedRendererLayer added one RenderPass. The 457 // Each non-DelegatedRendererLayer added one RenderPass. The
458 // DelegatedRendererLayer added two contributing passes and its owned surface 458 // DelegatedRendererLayer added two contributing passes and its owned surface
459 // added one pass. 459 // added one pass.
460 ASSERT_EQ(6u, frame.render_passes.size()); 460 ASSERT_EQ(6u, frame.render_passes.size());
461 461
462 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 462 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
463 // RenderPass' quads do not need to be translated at all. 463 // RenderPass' quads do not need to be translated at all.
464 EXPECT_TRANSFORMATION_MATRIX_EQ( 464 EXPECT_TRANSFORMATION_MATRIX_EQ(
465 gfx::Transform(), frame.render_passes[3]->quad_list[0]->quadTransform()); 465 gfx::Transform(), frame.render_passes[3]->quad_list[0]->quadTransform());
466 466
467 // Quads from non-root RenderPasses should not be shifted either. 467 // Quads from non-root RenderPasses should not be shifted either.
468 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 468 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
469 EXPECT_TRANSFORMATION_MATRIX_EQ( 469 EXPECT_TRANSFORMATION_MATRIX_EQ(
470 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 470 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
471 EXPECT_TRANSFORMATION_MATRIX_EQ( 471 EXPECT_TRANSFORMATION_MATRIX_EQ(
472 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 472 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
473 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 473 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
474 EXPECT_TRANSFORMATION_MATRIX_EQ( 474 EXPECT_TRANSFORMATION_MATRIX_EQ(
475 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 475 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
476 476
477 host_impl_->DrawLayers(&frame); 477 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
478 host_impl_->DidDrawAllLayers(frame); 478 host_impl_->DidDrawAllLayers(frame);
479 } 479 }
480 480
481 class DelegatedRendererLayerImplTestTransform 481 class DelegatedRendererLayerImplTestTransform
482 : public DelegatedRendererLayerImplTest { 482 : public DelegatedRendererLayerImplTest {
483 public: 483 public:
484 DelegatedRendererLayerImplTestTransform() 484 DelegatedRendererLayerImplTestTransform()
485 : root_delegated_render_pass_is_clipped_(false), 485 : root_delegated_render_pass_is_clipped_(false),
486 delegated_device_scale_factor_(2.f) {} 486 delegated_device_scale_factor_(2.f) {}
487 487
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 720 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
721 contrib_delegated_shared_quad_state->clip_rect.ToString()); 721 contrib_delegated_shared_quad_state->clip_rect.ToString());
722 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 722 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
723 expected.MakeIdentity(); 723 expected.MakeIdentity();
724 expected.Scale(0.8f, 0.8f); 724 expected.Scale(0.8f, 0.8f);
725 expected.Translate(9.0, 9.0); 725 expected.Translate(9.0, 9.0);
726 EXPECT_TRANSFORMATION_MATRIX_EQ( 726 EXPECT_TRANSFORMATION_MATRIX_EQ(
727 expected, 727 expected,
728 contrib_delegated_shared_quad_state->content_to_target_transform); 728 contrib_delegated_shared_quad_state->content_to_target_transform);
729 729
730 host_impl_->DrawLayers(&frame); 730 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
731 host_impl_->DidDrawAllLayers(frame); 731 host_impl_->DidDrawAllLayers(frame);
732 } 732 }
733 733
734 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 734 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
735 root_delegated_render_pass_is_clipped_ = true; 735 root_delegated_render_pass_is_clipped_ = true;
736 SetUpTest(); 736 SetUpTest();
737 737
738 LayerTreeHostImpl::FrameData frame; 738 LayerTreeHostImpl::FrameData frame;
739 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 739 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
740 740
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 779 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
780 contrib_delegated_shared_quad_state->clip_rect.ToString()); 780 contrib_delegated_shared_quad_state->clip_rect.ToString());
781 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 781 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
782 expected.MakeIdentity(); 782 expected.MakeIdentity();
783 expected.Scale(0.8f, 0.8f); 783 expected.Scale(0.8f, 0.8f);
784 expected.Translate(9.0, 9.0); 784 expected.Translate(9.0, 9.0);
785 EXPECT_TRANSFORMATION_MATRIX_EQ( 785 EXPECT_TRANSFORMATION_MATRIX_EQ(
786 expected, 786 expected,
787 contrib_delegated_shared_quad_state->content_to_target_transform); 787 contrib_delegated_shared_quad_state->content_to_target_transform);
788 788
789 host_impl_->DrawLayers(&frame); 789 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
790 host_impl_->DidDrawAllLayers(frame); 790 host_impl_->DidDrawAllLayers(frame);
791 } 791 }
792 792
793 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 793 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
794 root_delegated_render_pass_is_clipped_ = false; 794 root_delegated_render_pass_is_clipped_ = false;
795 SetUpTest(); 795 SetUpTest();
796 796
797 delegated_renderer_layer_->SetForceRenderSurface(true); 797 delegated_renderer_layer_->SetForceRenderSurface(true);
798 798
799 LayerTreeHostImpl::FrameData frame; 799 LayerTreeHostImpl::FrameData frame;
(...skipping 27 matching lines...) Expand all
827 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 827 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
828 contrib_delegated_shared_quad_state->clip_rect.ToString()); 828 contrib_delegated_shared_quad_state->clip_rect.ToString());
829 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 829 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
830 expected.MakeIdentity(); 830 expected.MakeIdentity();
831 expected.Scale(0.8f, 0.8f); 831 expected.Scale(0.8f, 0.8f);
832 expected.Translate(9.0, 9.0); 832 expected.Translate(9.0, 9.0);
833 EXPECT_TRANSFORMATION_MATRIX_EQ( 833 EXPECT_TRANSFORMATION_MATRIX_EQ(
834 expected, 834 expected,
835 contrib_delegated_shared_quad_state->content_to_target_transform); 835 contrib_delegated_shared_quad_state->content_to_target_transform);
836 836
837 host_impl_->DrawLayers(&frame); 837 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
838 host_impl_->DidDrawAllLayers(frame); 838 host_impl_->DidDrawAllLayers(frame);
839 } 839 }
840 840
841 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 841 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
842 root_delegated_render_pass_is_clipped_ = true; 842 root_delegated_render_pass_is_clipped_ = true;
843 SetUpTest(); 843 SetUpTest();
844 844
845 delegated_renderer_layer_->SetForceRenderSurface(true); 845 delegated_renderer_layer_->SetForceRenderSurface(true);
846 846
847 LayerTreeHostImpl::FrameData frame; 847 LayerTreeHostImpl::FrameData frame;
(...skipping 26 matching lines...) Expand all
874 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 874 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
875 contrib_delegated_shared_quad_state->clip_rect.ToString()); 875 contrib_delegated_shared_quad_state->clip_rect.ToString());
876 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 876 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
877 expected.MakeIdentity(); 877 expected.MakeIdentity();
878 expected.Scale(0.8f, 0.8f); 878 expected.Scale(0.8f, 0.8f);
879 expected.Translate(9.0, 9.0); 879 expected.Translate(9.0, 9.0);
880 EXPECT_TRANSFORMATION_MATRIX_EQ( 880 EXPECT_TRANSFORMATION_MATRIX_EQ(
881 expected, 881 expected,
882 contrib_delegated_shared_quad_state->content_to_target_transform); 882 contrib_delegated_shared_quad_state->content_to_target_transform);
883 883
884 host_impl_->DrawLayers(&frame); 884 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
885 host_impl_->DidDrawAllLayers(frame); 885 host_impl_->DidDrawAllLayers(frame);
886 } 886 }
887 887
888 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) { 888 TEST_F(DelegatedRendererLayerImplTestTransform, MismatchedDeviceScaleFactor) {
889 root_delegated_render_pass_is_clipped_ = true; 889 root_delegated_render_pass_is_clipped_ = true;
890 delegated_device_scale_factor_ = 1.3f; 890 delegated_device_scale_factor_ = 1.3f;
891 891
892 SetUpTest(); 892 SetUpTest();
893 893
894 LayerTreeHostImpl::FrameData frame; 894 LayerTreeHostImpl::FrameData frame;
(...skipping 18 matching lines...) Expand all
913 expected.Scale(2.0, 2.0); 913 expected.Scale(2.0, 2.0);
914 expected.Translate(8.0, 8.0); 914 expected.Translate(8.0, 8.0);
915 // This is the transform within the source frame. 915 // This is the transform within the source frame.
916 // Inverse device scale factor (from child). 916 // Inverse device scale factor (from child).
917 expected.Scale(1.0f / 1.3f, 1.0f / 1.3f); 917 expected.Scale(1.0f / 1.3f, 1.0f / 1.3f);
918 expected.Scale(1.5, 1.5); 918 expected.Scale(1.5, 1.5);
919 expected.Translate(7.0, 7.0); 919 expected.Translate(7.0, 7.0);
920 EXPECT_TRANSFORMATION_MATRIX_EQ( 920 EXPECT_TRANSFORMATION_MATRIX_EQ(
921 expected, root_delegated_shared_quad_state->content_to_target_transform); 921 expected, root_delegated_shared_quad_state->content_to_target_transform);
922 922
923 host_impl_->DrawLayers(&frame); 923 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
924 host_impl_->DidDrawAllLayers(frame); 924 host_impl_->DidDrawAllLayers(frame);
925 } 925 }
926 926
927 class DelegatedRendererLayerImplTestClip 927 class DelegatedRendererLayerImplTestClip
928 : public DelegatedRendererLayerImplTest { 928 : public DelegatedRendererLayerImplTest {
929 public: 929 public:
930 void SetUpTest() { 930 void SetUpTest() {
931 scoped_ptr<LayerImpl> root_layer = 931 scoped_ptr<LayerImpl> root_layer =
932 LayerImpl::Create(host_impl_->active_tree(), 1); 932 LayerImpl::Create(host_impl_->active_tree(), 1);
933 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 933 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 const SharedQuadState* root_delegated_shared_quad_state = 1105 const SharedQuadState* root_delegated_shared_quad_state =
1106 root_delegated_quad_list[0]->shared_quad_state; 1106 root_delegated_quad_list[0]->shared_quad_state;
1107 1107
1108 // When the quads don't have a clip of their own, the clip rect is set to 1108 // When the quads don't have a clip of their own, the clip rect is set to
1109 // the drawable_content_rect of the delegated renderer layer. 1109 // the drawable_content_rect of the delegated renderer layer.
1110 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1110 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1111 root_delegated_shared_quad_state->clip_rect.ToString()); 1111 root_delegated_shared_quad_state->clip_rect.ToString());
1112 // Quads are clipped to the delegated renderer layer. 1112 // Quads are clipped to the delegated renderer layer.
1113 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1113 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1114 1114
1115 host_impl_->DrawLayers(&frame); 1115 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1116 host_impl_->DidDrawAllLayers(frame); 1116 host_impl_->DidDrawAllLayers(frame);
1117 } 1117 }
1118 1118
1119 TEST_F(DelegatedRendererLayerImplTestClip, 1119 TEST_F(DelegatedRendererLayerImplTestClip,
1120 QuadsClipped_LayerUnclipped_NoSurface) { 1120 QuadsClipped_LayerUnclipped_NoSurface) {
1121 root_delegated_render_pass_is_clipped_ = true; 1121 root_delegated_render_pass_is_clipped_ = true;
1122 clip_delegated_renderer_layer_ = false; 1122 clip_delegated_renderer_layer_ = false;
1123 SetUpTest(); 1123 SetUpTest();
1124 1124
1125 LayerTreeHostImpl::FrameData frame; 1125 LayerTreeHostImpl::FrameData frame;
1126 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1126 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1127 1127
1128 ASSERT_EQ(2u, frame.render_passes.size()); 1128 ASSERT_EQ(2u, frame.render_passes.size());
1129 const QuadList& contrib_delegated_quad_list = 1129 const QuadList& contrib_delegated_quad_list =
1130 frame.render_passes[0]->quad_list; 1130 frame.render_passes[0]->quad_list;
1131 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1131 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1132 const QuadList& root_delegated_quad_list = 1132 const QuadList& root_delegated_quad_list =
1133 frame.render_passes[1]->quad_list; 1133 frame.render_passes[1]->quad_list;
1134 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1134 ASSERT_EQ(5u, root_delegated_quad_list.size());
1135 const SharedQuadState* root_delegated_shared_quad_state = 1135 const SharedQuadState* root_delegated_shared_quad_state =
1136 root_delegated_quad_list[0]->shared_quad_state; 1136 root_delegated_quad_list[0]->shared_quad_state;
1137 1137
1138 // When the quads have a clip of their own, it is used. 1138 // When the quads have a clip of their own, it is used.
1139 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1139 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1140 root_delegated_shared_quad_state->clip_rect.ToString()); 1140 root_delegated_shared_quad_state->clip_rect.ToString());
1141 // Quads came with a clip rect. 1141 // Quads came with a clip rect.
1142 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1142 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1143 1143
1144 host_impl_->DrawLayers(&frame); 1144 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1145 host_impl_->DidDrawAllLayers(frame); 1145 host_impl_->DidDrawAllLayers(frame);
1146 } 1146 }
1147 1147
1148 TEST_F(DelegatedRendererLayerImplTestClip, 1148 TEST_F(DelegatedRendererLayerImplTestClip,
1149 QuadsUnclipped_LayerClipped_NoSurface) { 1149 QuadsUnclipped_LayerClipped_NoSurface) {
1150 root_delegated_render_pass_is_clipped_ = false; 1150 root_delegated_render_pass_is_clipped_ = false;
1151 clip_delegated_renderer_layer_ = true; 1151 clip_delegated_renderer_layer_ = true;
1152 SetUpTest(); 1152 SetUpTest();
1153 1153
1154 LayerTreeHostImpl::FrameData frame; 1154 LayerTreeHostImpl::FrameData frame;
1155 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1155 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1156 1156
1157 ASSERT_EQ(2u, frame.render_passes.size()); 1157 ASSERT_EQ(2u, frame.render_passes.size());
1158 const QuadList& contrib_delegated_quad_list = 1158 const QuadList& contrib_delegated_quad_list =
1159 frame.render_passes[0]->quad_list; 1159 frame.render_passes[0]->quad_list;
1160 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1160 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1161 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1161 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1162 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1162 ASSERT_EQ(5u, root_delegated_quad_list.size());
1163 const SharedQuadState* root_delegated_shared_quad_state = 1163 const SharedQuadState* root_delegated_shared_quad_state =
1164 root_delegated_quad_list[0]->shared_quad_state; 1164 root_delegated_quad_list[0]->shared_quad_state;
1165 1165
1166 // When the quads don't have a clip of their own, the clip rect is set to 1166 // When the quads don't have a clip of their own, the clip rect is set to
1167 // the drawable_content_rect of the delegated renderer layer. When the layer 1167 // the drawable_content_rect of the delegated renderer layer. When the layer
1168 // is clipped, that should be seen in the quads' clip_rect. 1168 // is clipped, that should be seen in the quads' clip_rect.
1169 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1169 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1170 root_delegated_shared_quad_state->clip_rect.ToString()); 1170 root_delegated_shared_quad_state->clip_rect.ToString());
1171 // Quads are clipped to the delegated renderer layer. 1171 // Quads are clipped to the delegated renderer layer.
1172 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1172 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1173 1173
1174 host_impl_->DrawLayers(&frame); 1174 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1175 host_impl_->DidDrawAllLayers(frame); 1175 host_impl_->DidDrawAllLayers(frame);
1176 } 1176 }
1177 1177
1178 TEST_F(DelegatedRendererLayerImplTestClip, 1178 TEST_F(DelegatedRendererLayerImplTestClip,
1179 QuadsClipped_LayerClipped_NoSurface) { 1179 QuadsClipped_LayerClipped_NoSurface) {
1180 root_delegated_render_pass_is_clipped_ = true; 1180 root_delegated_render_pass_is_clipped_ = true;
1181 clip_delegated_renderer_layer_ = true; 1181 clip_delegated_renderer_layer_ = true;
1182 SetUpTest(); 1182 SetUpTest();
1183 1183
1184 LayerTreeHostImpl::FrameData frame; 1184 LayerTreeHostImpl::FrameData frame;
1185 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1185 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1186 1186
1187 ASSERT_EQ(2u, frame.render_passes.size()); 1187 ASSERT_EQ(2u, frame.render_passes.size());
1188 const QuadList& contrib_delegated_quad_list = 1188 const QuadList& contrib_delegated_quad_list =
1189 frame.render_passes[0]->quad_list; 1189 frame.render_passes[0]->quad_list;
1190 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1190 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1191 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1191 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1192 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1192 ASSERT_EQ(5u, root_delegated_quad_list.size());
1193 const SharedQuadState* root_delegated_shared_quad_state = 1193 const SharedQuadState* root_delegated_shared_quad_state =
1194 root_delegated_quad_list[0]->shared_quad_state; 1194 root_delegated_quad_list[0]->shared_quad_state;
1195 1195
1196 // When the quads have a clip of their own, it is used, but it is 1196 // When the quads have a clip of their own, it is used, but it is
1197 // combined with the clip rect of the delegated renderer layer. 1197 // combined with the clip rect of the delegated renderer layer.
1198 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), 1198 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(),
1199 root_delegated_shared_quad_state->clip_rect.ToString()); 1199 root_delegated_shared_quad_state->clip_rect.ToString());
1200 // Quads came with a clip rect. 1200 // Quads came with a clip rect.
1201 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1201 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1202 1202
1203 host_impl_->DrawLayers(&frame); 1203 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1204 host_impl_->DidDrawAllLayers(frame); 1204 host_impl_->DidDrawAllLayers(frame);
1205 } 1205 }
1206 1206
1207 TEST_F(DelegatedRendererLayerImplTestClip, 1207 TEST_F(DelegatedRendererLayerImplTestClip,
1208 QuadsUnclipped_LayerUnclipped_Surface) { 1208 QuadsUnclipped_LayerUnclipped_Surface) {
1209 root_delegated_render_pass_is_clipped_ = false; 1209 root_delegated_render_pass_is_clipped_ = false;
1210 clip_delegated_renderer_layer_ = false; 1210 clip_delegated_renderer_layer_ = false;
1211 SetUpTest(); 1211 SetUpTest();
1212 1212
1213 delegated_renderer_layer_->SetForceRenderSurface(true); 1213 delegated_renderer_layer_->SetForceRenderSurface(true);
1214 1214
1215 LayerTreeHostImpl::FrameData frame; 1215 LayerTreeHostImpl::FrameData frame;
1216 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1216 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1217 1217
1218 ASSERT_EQ(3u, frame.render_passes.size()); 1218 ASSERT_EQ(3u, frame.render_passes.size());
1219 const QuadList& contrib_delegated_quad_list = 1219 const QuadList& contrib_delegated_quad_list =
1220 frame.render_passes[0]->quad_list; 1220 frame.render_passes[0]->quad_list;
1221 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1221 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1222 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1222 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1223 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1223 ASSERT_EQ(5u, root_delegated_quad_list.size());
1224 const SharedQuadState* root_delegated_shared_quad_state = 1224 const SharedQuadState* root_delegated_shared_quad_state =
1225 root_delegated_quad_list[0]->shared_quad_state; 1225 root_delegated_quad_list[0]->shared_quad_state;
1226 1226
1227 // When the layer owns a surface, the quads don't need to be clipped 1227 // When the layer owns a surface, the quads don't need to be clipped
1228 // further than they already specify. If they aren't clipped, then their 1228 // further than they already specify. If they aren't clipped, then their
1229 // clip rect is ignored, and they are not set as clipped. 1229 // clip rect is ignored, and they are not set as clipped.
1230 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1230 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1231 1231
1232 host_impl_->DrawLayers(&frame); 1232 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1233 host_impl_->DidDrawAllLayers(frame); 1233 host_impl_->DidDrawAllLayers(frame);
1234 } 1234 }
1235 1235
1236 TEST_F(DelegatedRendererLayerImplTestClip, 1236 TEST_F(DelegatedRendererLayerImplTestClip,
1237 QuadsClipped_LayerUnclipped_Surface) { 1237 QuadsClipped_LayerUnclipped_Surface) {
1238 root_delegated_render_pass_is_clipped_ = true; 1238 root_delegated_render_pass_is_clipped_ = true;
1239 clip_delegated_renderer_layer_ = false; 1239 clip_delegated_renderer_layer_ = false;
1240 SetUpTest(); 1240 SetUpTest();
1241 1241
1242 delegated_renderer_layer_->SetForceRenderSurface(true); 1242 delegated_renderer_layer_->SetForceRenderSurface(true);
1243 1243
1244 LayerTreeHostImpl::FrameData frame; 1244 LayerTreeHostImpl::FrameData frame;
1245 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1245 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1246 1246
1247 ASSERT_EQ(3u, frame.render_passes.size()); 1247 ASSERT_EQ(3u, frame.render_passes.size());
1248 const QuadList& contrib_delegated_quad_list = 1248 const QuadList& contrib_delegated_quad_list =
1249 frame.render_passes[0]->quad_list; 1249 frame.render_passes[0]->quad_list;
1250 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1250 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1251 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1251 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1252 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1252 ASSERT_EQ(5u, root_delegated_quad_list.size());
1253 const SharedQuadState* root_delegated_shared_quad_state = 1253 const SharedQuadState* root_delegated_shared_quad_state =
1254 root_delegated_quad_list[0]->shared_quad_state; 1254 root_delegated_quad_list[0]->shared_quad_state;
1255 1255
1256 // When the quads have a clip of their own, it is used. 1256 // When the quads have a clip of their own, it is used.
1257 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1257 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1258 root_delegated_shared_quad_state->clip_rect.ToString()); 1258 root_delegated_shared_quad_state->clip_rect.ToString());
1259 // Quads came with a clip rect. 1259 // Quads came with a clip rect.
1260 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1260 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1261 1261
1262 host_impl_->DrawLayers(&frame); 1262 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1263 host_impl_->DidDrawAllLayers(frame); 1263 host_impl_->DidDrawAllLayers(frame);
1264 } 1264 }
1265 1265
1266 TEST_F(DelegatedRendererLayerImplTestClip, 1266 TEST_F(DelegatedRendererLayerImplTestClip,
1267 QuadsUnclipped_LayerClipped_Surface) { 1267 QuadsUnclipped_LayerClipped_Surface) {
1268 root_delegated_render_pass_is_clipped_ = false; 1268 root_delegated_render_pass_is_clipped_ = false;
1269 clip_delegated_renderer_layer_ = true; 1269 clip_delegated_renderer_layer_ = true;
1270 SetUpTest(); 1270 SetUpTest();
1271 1271
1272 delegated_renderer_layer_->SetForceRenderSurface(true); 1272 delegated_renderer_layer_->SetForceRenderSurface(true);
1273 1273
1274 LayerTreeHostImpl::FrameData frame; 1274 LayerTreeHostImpl::FrameData frame;
1275 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1275 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1276 1276
1277 ASSERT_EQ(3u, frame.render_passes.size()); 1277 ASSERT_EQ(3u, frame.render_passes.size());
1278 const QuadList& contrib_delegated_quad_list = 1278 const QuadList& contrib_delegated_quad_list =
1279 frame.render_passes[0]->quad_list; 1279 frame.render_passes[0]->quad_list;
1280 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1280 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1281 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1281 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1282 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1282 ASSERT_EQ(5u, root_delegated_quad_list.size());
1283 const SharedQuadState* root_delegated_shared_quad_state = 1283 const SharedQuadState* root_delegated_shared_quad_state =
1284 root_delegated_quad_list[0]->shared_quad_state; 1284 root_delegated_quad_list[0]->shared_quad_state;
1285 1285
1286 // When the layer owns a surface, the quads don't need to be clipped 1286 // When the layer owns a surface, the quads don't need to be clipped
1287 // further than they already specify. If they aren't clipped, then their 1287 // further than they already specify. If they aren't clipped, then their
1288 // clip rect is ignored, and they are not set as clipped. 1288 // clip rect is ignored, and they are not set as clipped.
1289 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1289 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1290 1290
1291 host_impl_->DrawLayers(&frame); 1291 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1292 host_impl_->DidDrawAllLayers(frame); 1292 host_impl_->DidDrawAllLayers(frame);
1293 } 1293 }
1294 1294
1295 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1295 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1296 root_delegated_render_pass_is_clipped_ = true; 1296 root_delegated_render_pass_is_clipped_ = true;
1297 clip_delegated_renderer_layer_ = true; 1297 clip_delegated_renderer_layer_ = true;
1298 SetUpTest(); 1298 SetUpTest();
1299 1299
1300 delegated_renderer_layer_->SetForceRenderSurface(true); 1300 delegated_renderer_layer_->SetForceRenderSurface(true);
1301 1301
(...skipping 10 matching lines...) Expand all
1312 root_delegated_quad_list[0]->shared_quad_state; 1312 root_delegated_quad_list[0]->shared_quad_state;
1313 1313
1314 // When the quads have a clip of their own, it is used, but it is 1314 // When the quads have a clip of their own, it is used, but it is
1315 // combined with the clip rect of the delegated renderer layer. If the 1315 // combined with the clip rect of the delegated renderer layer. If the
1316 // layer owns a surface, then it does not have a clip rect of its own. 1316 // layer owns a surface, then it does not have a clip rect of its own.
1317 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1317 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1318 root_delegated_shared_quad_state->clip_rect.ToString()); 1318 root_delegated_shared_quad_state->clip_rect.ToString());
1319 // Quads came with a clip rect. 1319 // Quads came with a clip rect.
1320 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1320 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1321 1321
1322 host_impl_->DrawLayers(&frame); 1322 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1323 host_impl_->DidDrawAllLayers(frame); 1323 host_impl_->DidDrawAllLayers(frame);
1324 } 1324 }
1325 1325
1326 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) { 1326 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) {
1327 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( 1327 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create(
1328 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); 1328 host_impl_->active_tree(), 1).PassAs<LayerImpl>();
1329 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 1329 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
1330 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); 1330 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4);
1331 1331
1332 host_impl_->SetViewportSize(gfx::Size(100, 100)); 1332 host_impl_->SetViewportSize(gfx::Size(100, 100));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 1365
1366 LayerTreeHostImpl::FrameData frame; 1366 LayerTreeHostImpl::FrameData frame;
1367 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1367 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1368 1368
1369 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1369 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1370 ASSERT_EQ(1u, frame.render_passes.size()); 1370 ASSERT_EQ(1u, frame.render_passes.size());
1371 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1371 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1372 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1372 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1373 frame.render_passes[0]->quad_list[0]->material); 1373 frame.render_passes[0]->quad_list[0]->material);
1374 1374
1375 host_impl_->DrawLayers(&frame); 1375 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1376 host_impl_->DidDrawAllLayers(frame); 1376 host_impl_->DidDrawAllLayers(frame);
1377 } 1377 }
1378 1378
1379 TEST_F(DelegatedRendererLayerImplTest, Occlusion) { 1379 TEST_F(DelegatedRendererLayerImplTest, Occlusion) {
1380 gfx::Size layer_size(1000, 1000); 1380 gfx::Size layer_size(1000, 1000);
1381 gfx::Size viewport_size(1000, 1000); 1381 gfx::Size viewport_size(1000, 1000);
1382 gfx::Rect quad_rect(200, 300, 400, 500); 1382 gfx::Rect quad_rect(200, 300, 400, 500);
1383 1383
1384 gfx::Transform transform; 1384 gfx::Transform transform;
1385 transform.Translate(11.0, 0.0); 1385 transform.Translate(11.0, 0.0);
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 scoped_ptr<DelegatedRendererLayerImpl> other_layer = 1532 scoped_ptr<DelegatedRendererLayerImpl> other_layer =
1533 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); 1533 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6);
1534 1534
1535 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); 1535 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get());
1536 1536
1537 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); 1537 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor());
1538 } 1538 }
1539 1539
1540 } // namespace 1540 } // namespace
1541 } // namespace cc 1541 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/test/layer_tree_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698