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

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

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

Powered by Google App Engine
This is Rietveld 408576698