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

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

Issue 12662021: cc: Don't draw and swap if the frame will not change. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add perf test Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/layers/append_quads_data.h" 8 #include "cc/layers/append_quads_data.h"
9 #include "cc/layers/quad_sink.h" 9 #include "cc/layers/quad_sink.h"
10 #include "cc/layers/solid_color_layer_impl.h" 10 #include "cc/layers/solid_color_layer_impl.h"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 protected: 137 protected:
138 LayerImpl* root_layer_; 138 LayerImpl* root_layer_;
139 LayerImpl* layer_before_; 139 LayerImpl* layer_before_;
140 LayerImpl* layer_after_; 140 LayerImpl* layer_after_;
141 DelegatedRendererLayerImpl* delegated_renderer_layer_; 141 DelegatedRendererLayerImpl* delegated_renderer_layer_;
142 }; 142 };
143 143
144 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 144 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
145 LayerTreeHostImpl::FrameData frame; 145 LayerTreeHostImpl::FrameData frame;
146 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 146 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
147 147
148 // Each non-DelegatedRendererLayer added one RenderPass. The 148 // Each non-DelegatedRendererLayer added one RenderPass. The
149 // DelegatedRendererLayer added two contributing passes. 149 // DelegatedRendererLayer added two contributing passes.
150 ASSERT_EQ(5u, frame.render_passes.size()); 150 ASSERT_EQ(5u, frame.render_passes.size());
151 151
152 // The DelegatedRendererLayer should have added its contributing RenderPasses 152 // The DelegatedRendererLayer should have added its contributing RenderPasses
153 // to the frame. 153 // to the frame.
154 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 154 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
155 EXPECT_EQ(1, frame.render_passes[1]->id.index); 155 EXPECT_EQ(1, frame.render_passes[1]->id.index);
156 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 156 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 13 matching lines...) Expand all
170 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 170 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
171 frame.render_passes[2]->output_rect.ToString()); 171 frame.render_passes[2]->output_rect.ToString());
172 172
173 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 173 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
174 host_impl_->DidDrawAllLayers(frame); 174 host_impl_->DidDrawAllLayers(frame);
175 } 175 }
176 176
177 TEST_F(DelegatedRendererLayerImplTestSimple, 177 TEST_F(DelegatedRendererLayerImplTestSimple,
178 AddsQuadsToContributingRenderPasses) { 178 AddsQuadsToContributingRenderPasses) {
179 LayerTreeHostImpl::FrameData frame; 179 LayerTreeHostImpl::FrameData frame;
180 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 180 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
181 181
182 // Each non-DelegatedRendererLayer added one RenderPass. The 182 // Each non-DelegatedRendererLayer added one RenderPass. The
183 // DelegatedRendererLayer added two contributing passes. 183 // DelegatedRendererLayer added two contributing passes.
184 ASSERT_EQ(5u, frame.render_passes.size()); 184 ASSERT_EQ(5u, frame.render_passes.size());
185 185
186 // The DelegatedRendererLayer should have added its contributing RenderPasses 186 // The DelegatedRendererLayer should have added its contributing RenderPasses
187 // to the frame. 187 // to the frame.
188 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 188 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
189 EXPECT_EQ(1, frame.render_passes[1]->id.index); 189 EXPECT_EQ(1, frame.render_passes[1]->id.index);
190 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); 190 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
(...skipping 14 matching lines...) Expand all
205 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 205 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
206 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 206 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
207 frame.render_passes[1]->quad_list[0]->rect.ToString()); 207 frame.render_passes[1]->quad_list[0]->rect.ToString());
208 208
209 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 209 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
210 host_impl_->DidDrawAllLayers(frame); 210 host_impl_->DidDrawAllLayers(frame);
211 } 211 }
212 212
213 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 213 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
214 LayerTreeHostImpl::FrameData frame; 214 LayerTreeHostImpl::FrameData frame;
215 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 215 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
216 216
217 // Each non-DelegatedRendererLayer added one RenderPass. The 217 // Each non-DelegatedRendererLayer added one RenderPass. The
218 // DelegatedRendererLayer added two contributing passes. 218 // DelegatedRendererLayer added two contributing passes.
219 ASSERT_EQ(5u, frame.render_passes.size()); 219 ASSERT_EQ(5u, frame.render_passes.size());
220 220
221 // The layer's target is the RenderPass from layer_after_. 221 // The layer's target is the RenderPass from layer_after_.
222 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 222 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
223 223
224 // The DelegatedRendererLayer should have added copies of quads in its root 224 // The DelegatedRendererLayer should have added copies of quads in its root
225 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 225 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
226 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 226 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
227 227
228 // Verify it added the right quads. 228 // Verify it added the right quads.
229 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 229 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
230 frame.render_passes[3]->quad_list[0]->rect.ToString()); 230 frame.render_passes[3]->quad_list[0]->rect.ToString());
231 231
232 // Its target layer should have a quad as well. 232 // Its target layer should have a quad as well.
233 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 233 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
234 frame.render_passes[3]->quad_list[1]->rect.ToString()); 234 frame.render_passes[3]->quad_list[1]->rect.ToString());
235 235
236 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 236 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
237 host_impl_->DidDrawAllLayers(frame); 237 host_impl_->DidDrawAllLayers(frame);
238 } 238 }
239 239
240 TEST_F(DelegatedRendererLayerImplTestSimple, 240 TEST_F(DelegatedRendererLayerImplTestSimple,
241 QuadsFromRootRenderPassAreModifiedForTheTarget) { 241 QuadsFromRootRenderPassAreModifiedForTheTarget) {
242 LayerTreeHostImpl::FrameData frame; 242 LayerTreeHostImpl::FrameData frame;
243 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 243 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
244 244
245 // Each non-DelegatedRendererLayer added one RenderPass. The 245 // Each non-DelegatedRendererLayer added one RenderPass. The
246 // DelegatedRendererLayer added two contributing passes. 246 // DelegatedRendererLayer added two contributing passes.
247 ASSERT_EQ(5u, frame.render_passes.size()); 247 ASSERT_EQ(5u, frame.render_passes.size());
248 248
249 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 249 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
250 // has a translation transform of 1,1. So its root RenderPass' quads should 250 // has a translation transform of 1,1. So its root RenderPass' quads should
251 // all be transformed by that combined amount. 251 // all be transformed by that combined amount.
252 // The DelegatedRendererLayer has a size of 10x10, but the root delegated 252 // The DelegatedRendererLayer has a size of 10x10, but the root delegated
253 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. 253 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8.
(...skipping 12 matching lines...) Expand all
266 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 266 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
267 EXPECT_TRANSFORMATION_MATRIX_EQ( 267 EXPECT_TRANSFORMATION_MATRIX_EQ(
268 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 268 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
269 269
270 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 270 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
271 host_impl_->DidDrawAllLayers(frame); 271 host_impl_->DidDrawAllLayers(frame);
272 } 272 }
273 273
274 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 274 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
275 LayerTreeHostImpl::FrameData frame; 275 LayerTreeHostImpl::FrameData frame;
276 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 276 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
277 277
278 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 278 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
279 // has no need to be a RenderSurface for the quads it carries. 279 // has no need to be a RenderSurface for the quads it carries.
280 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 280 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
281 281
282 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 282 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
283 host_impl_->DidDrawAllLayers(frame); 283 host_impl_->DidDrawAllLayers(frame);
284 } 284 }
285 285
286 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 286 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
287 delegated_renderer_layer_->SetOpacity(0.5f); 287 delegated_renderer_layer_->SetOpacity(0.5f);
288 288
289 LayerTreeHostImpl::FrameData frame; 289 LayerTreeHostImpl::FrameData frame;
290 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 290 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
291 291
292 // This test case has quads from multiple layers in the delegated renderer, so 292 // This test case has quads from multiple layers in the delegated renderer, so
293 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 293 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
294 // render surface. 294 // render surface.
295 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 295 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
296 296
297 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 297 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
298 host_impl_->DidDrawAllLayers(frame); 298 host_impl_->DidDrawAllLayers(frame);
299 } 299 }
300 300
301 TEST_F(DelegatedRendererLayerImplTestSimple, 301 TEST_F(DelegatedRendererLayerImplTestSimple,
302 DoesOwnARenderSurfaceForTransform) { 302 DoesOwnARenderSurfaceForTransform) {
303 gfx::Transform rotation; 303 gfx::Transform rotation;
304 rotation.RotateAboutZAxis(30.0); 304 rotation.RotateAboutZAxis(30.0);
305 delegated_renderer_layer_->SetTransform(rotation); 305 delegated_renderer_layer_->SetTransform(rotation);
306 306
307 LayerTreeHostImpl::FrameData frame; 307 LayerTreeHostImpl::FrameData frame;
308 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 308 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
309 309
310 // This test case has quads from multiple layers in the delegated renderer, so 310 // This test case has quads from multiple layers in the delegated renderer, so
311 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 311 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
312 // render surface. 312 // render surface.
313 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 313 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
314 314
315 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 315 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
316 host_impl_->DidDrawAllLayers(frame); 316 host_impl_->DidDrawAllLayers(frame);
317 } 317 }
318 318
319 class DelegatedRendererLayerImplTestOwnSurface 319 class DelegatedRendererLayerImplTestOwnSurface
320 : public DelegatedRendererLayerImplTestSimple { 320 : public DelegatedRendererLayerImplTestSimple {
321 public: 321 public:
322 DelegatedRendererLayerImplTestOwnSurface() 322 DelegatedRendererLayerImplTestOwnSurface()
323 : DelegatedRendererLayerImplTestSimple() { 323 : DelegatedRendererLayerImplTestSimple() {
324 delegated_renderer_layer_->SetForceRenderSurface(true); 324 delegated_renderer_layer_->SetForceRenderSurface(true);
325 } 325 }
326 }; 326 };
327 327
328 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 328 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
329 LayerTreeHostImpl::FrameData frame; 329 LayerTreeHostImpl::FrameData frame;
330 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 330 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
331 331
332 // Each non-DelegatedRendererLayer added one RenderPass. The 332 // Each non-DelegatedRendererLayer added one RenderPass. The
333 // DelegatedRendererLayer added two contributing passes and its owned surface 333 // DelegatedRendererLayer added two contributing passes and its owned surface
334 // added one pass. 334 // added one pass.
335 ASSERT_EQ(6u, frame.render_passes.size()); 335 ASSERT_EQ(6u, frame.render_passes.size());
336 336
337 // The DelegatedRendererLayer should have added its contributing RenderPasses 337 // The DelegatedRendererLayer should have added its contributing RenderPasses
338 // to the frame. 338 // to the frame.
339 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 339 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
340 EXPECT_EQ(1, frame.render_passes[1]->id.index); 340 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 18 matching lines...) Expand all
359 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 359 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
360 frame.render_passes[2]->output_rect.ToString()); 360 frame.render_passes[2]->output_rect.ToString());
361 361
362 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 362 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
363 host_impl_->DidDrawAllLayers(frame); 363 host_impl_->DidDrawAllLayers(frame);
364 } 364 }
365 365
366 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 366 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
367 AddsQuadsToContributingRenderPasses) { 367 AddsQuadsToContributingRenderPasses) {
368 LayerTreeHostImpl::FrameData frame; 368 LayerTreeHostImpl::FrameData frame;
369 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 369 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
370 370
371 // Each non-DelegatedRendererLayer added one RenderPass. The 371 // Each non-DelegatedRendererLayer added one RenderPass. The
372 // DelegatedRendererLayer added two contributing passes and its owned surface 372 // DelegatedRendererLayer added two contributing passes and its owned surface
373 // added one pass. 373 // added one pass.
374 ASSERT_EQ(6u, frame.render_passes.size()); 374 ASSERT_EQ(6u, frame.render_passes.size());
375 375
376 // The DelegatedRendererLayer should have added its contributing RenderPasses 376 // The DelegatedRendererLayer should have added its contributing RenderPasses
377 // to the frame. 377 // to the frame.
378 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); 378 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
379 EXPECT_EQ(1, frame.render_passes[1]->id.index); 379 EXPECT_EQ(1, frame.render_passes[1]->id.index);
(...skipping 15 matching lines...) Expand all
395 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 395 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
396 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 396 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
397 frame.render_passes[1]->quad_list[0]->rect.ToString()); 397 frame.render_passes[1]->quad_list[0]->rect.ToString());
398 398
399 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 399 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
400 host_impl_->DidDrawAllLayers(frame); 400 host_impl_->DidDrawAllLayers(frame);
401 } 401 }
402 402
403 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 403 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
404 LayerTreeHostImpl::FrameData frame; 404 LayerTreeHostImpl::FrameData frame;
405 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 405 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
406 406
407 // Each non-DelegatedRendererLayer added one RenderPass. The 407 // Each non-DelegatedRendererLayer added one RenderPass. The
408 // DelegatedRendererLayer added two contributing passes and its owned surface 408 // DelegatedRendererLayer added two contributing passes and its owned surface
409 // added one pass. 409 // added one pass.
410 ASSERT_EQ(6u, frame.render_passes.size()); 410 ASSERT_EQ(6u, frame.render_passes.size());
411 411
412 // The layer's target is the RenderPass owned by itself. 412 // The layer's target is the RenderPass owned by itself.
413 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 413 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
414 414
415 // The DelegatedRendererLayer should have added copies of quads in its root 415 // The DelegatedRendererLayer should have added copies of quads in its root
416 // RenderPass to its target RenderPass. 416 // RenderPass to its target RenderPass.
417 // The m_layer_after also adds one quad. 417 // The m_layer_after also adds one quad.
418 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 418 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
419 419
420 // Verify it added the right quads. 420 // Verify it added the right quads.
421 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 421 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
422 frame.render_passes[3]->quad_list[0]->rect.ToString()); 422 frame.render_passes[3]->quad_list[0]->rect.ToString());
423 423
424 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 424 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
425 host_impl_->DidDrawAllLayers(frame); 425 host_impl_->DidDrawAllLayers(frame);
426 } 426 }
427 427
428 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 428 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
429 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 429 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
430 LayerTreeHostImpl::FrameData frame; 430 LayerTreeHostImpl::FrameData frame;
431 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 431 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
432 432
433 // Each non-DelegatedRendererLayer added one RenderPass. The 433 // Each non-DelegatedRendererLayer added one RenderPass. The
434 // DelegatedRendererLayer added two contributing passes and its owned surface 434 // DelegatedRendererLayer added two contributing passes and its owned surface
435 // added one pass. 435 // added one pass.
436 ASSERT_EQ(6u, frame.render_passes.size()); 436 ASSERT_EQ(6u, frame.render_passes.size());
437 437
438 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 438 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
439 // RenderPass' quads do not need to be translated at all. However, they are 439 // RenderPass' quads do not need to be translated at all. However, they are
440 // scaled from the frame's size (8x8) to the layer's bounds (10x10). 440 // scaled from the frame's size (8x8) to the layer's bounds (10x10).
441 gfx::Transform transform; 441 gfx::Transform transform;
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 LayerImpl* root_layer_; 632 LayerImpl* root_layer_;
633 DelegatedRendererLayerImpl* delegated_renderer_layer_; 633 DelegatedRendererLayerImpl* delegated_renderer_layer_;
634 bool root_delegated_render_pass_is_clipped_; 634 bool root_delegated_render_pass_is_clipped_;
635 }; 635 };
636 636
637 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 637 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
638 root_delegated_render_pass_is_clipped_ = false; 638 root_delegated_render_pass_is_clipped_ = false;
639 SetUpTest(); 639 SetUpTest();
640 640
641 LayerTreeHostImpl::FrameData frame; 641 LayerTreeHostImpl::FrameData frame;
642 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 642 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
643 643
644 const SharedQuadState* root_delegated_shared_quad_state = NULL; 644 const SharedQuadState* root_delegated_shared_quad_state = NULL;
645 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 645 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
646 VerifyRenderPasses( 646 VerifyRenderPasses(
647 frame, 647 frame,
648 2, 648 2,
649 &root_delegated_shared_quad_state, 649 &root_delegated_shared_quad_state,
650 &contrib_delegated_shared_quad_state); 650 &contrib_delegated_shared_quad_state);
651 651
652 // When the quads don't have a clip of their own, the clip rect is set to 652 // When the quads don't have a clip of their own, the clip rect is set to
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 686
687 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 687 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
688 host_impl_->DidDrawAllLayers(frame); 688 host_impl_->DidDrawAllLayers(frame);
689 } 689 }
690 690
691 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 691 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
692 root_delegated_render_pass_is_clipped_ = true; 692 root_delegated_render_pass_is_clipped_ = true;
693 SetUpTest(); 693 SetUpTest();
694 694
695 LayerTreeHostImpl::FrameData frame; 695 LayerTreeHostImpl::FrameData frame;
696 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 696 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
697 697
698 const SharedQuadState* root_delegated_shared_quad_state = NULL; 698 const SharedQuadState* root_delegated_shared_quad_state = NULL;
699 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 699 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
700 VerifyRenderPasses( 700 VerifyRenderPasses(
701 frame, 701 frame,
702 2, 702 2,
703 &root_delegated_shared_quad_state, 703 &root_delegated_shared_quad_state,
704 &contrib_delegated_shared_quad_state); 704 &contrib_delegated_shared_quad_state);
705 705
706 // Since the quads have a clip_rect it should be modified by delegated 706 // Since the quads have a clip_rect it should be modified by delegated
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 host_impl_->DidDrawAllLayers(frame); 747 host_impl_->DidDrawAllLayers(frame);
748 } 748 }
749 749
750 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 750 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
751 root_delegated_render_pass_is_clipped_ = false; 751 root_delegated_render_pass_is_clipped_ = false;
752 SetUpTest(); 752 SetUpTest();
753 753
754 delegated_renderer_layer_->SetForceRenderSurface(true); 754 delegated_renderer_layer_->SetForceRenderSurface(true);
755 755
756 LayerTreeHostImpl::FrameData frame; 756 LayerTreeHostImpl::FrameData frame;
757 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 757 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
758 758
759 const SharedQuadState* root_delegated_shared_quad_state = NULL; 759 const SharedQuadState* root_delegated_shared_quad_state = NULL;
760 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 760 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
761 VerifyRenderPasses( 761 VerifyRenderPasses(
762 frame, 762 frame,
763 3, 763 3,
764 &root_delegated_shared_quad_state, 764 &root_delegated_shared_quad_state,
765 &contrib_delegated_shared_quad_state); 765 &contrib_delegated_shared_quad_state);
766 766
767 // When the layer owns a surface, then its position and translation are not 767 // When the layer owns a surface, then its position and translation are not
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 host_impl_->DidDrawAllLayers(frame); 802 host_impl_->DidDrawAllLayers(frame);
803 } 803 }
804 804
805 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 805 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
806 root_delegated_render_pass_is_clipped_ = true; 806 root_delegated_render_pass_is_clipped_ = true;
807 SetUpTest(); 807 SetUpTest();
808 808
809 delegated_renderer_layer_->SetForceRenderSurface(true); 809 delegated_renderer_layer_->SetForceRenderSurface(true);
810 810
811 LayerTreeHostImpl::FrameData frame; 811 LayerTreeHostImpl::FrameData frame;
812 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 812 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
813 813
814 const SharedQuadState* root_delegated_shared_quad_state = NULL; 814 const SharedQuadState* root_delegated_shared_quad_state = NULL;
815 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 815 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
816 VerifyRenderPasses( 816 VerifyRenderPasses(
817 frame, 817 frame,
818 3, 818 3,
819 &root_delegated_shared_quad_state, 819 &root_delegated_shared_quad_state,
820 &contrib_delegated_shared_quad_state); 820 &contrib_delegated_shared_quad_state);
821 821
822 // When the layer owns a surface, then its position and translation are not 822 // When the layer owns a surface, then its position and translation are not
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1004 bool clip_delegated_renderer_layer_; 1004 bool clip_delegated_renderer_layer_;
1005 }; 1005 };
1006 1006
1007 TEST_F(DelegatedRendererLayerImplTestClip, 1007 TEST_F(DelegatedRendererLayerImplTestClip,
1008 QuadsUnclipped_LayerUnclipped_NoSurface) { 1008 QuadsUnclipped_LayerUnclipped_NoSurface) {
1009 root_delegated_render_pass_is_clipped_ = false; 1009 root_delegated_render_pass_is_clipped_ = false;
1010 clip_delegated_renderer_layer_ = false; 1010 clip_delegated_renderer_layer_ = false;
1011 SetUpTest(); 1011 SetUpTest();
1012 1012
1013 LayerTreeHostImpl::FrameData frame; 1013 LayerTreeHostImpl::FrameData frame;
1014 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1014 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1015 1015
1016 ASSERT_EQ(2u, frame.render_passes.size()); 1016 ASSERT_EQ(2u, frame.render_passes.size());
1017 const QuadList& contrib_delegated_quad_list = 1017 const QuadList& contrib_delegated_quad_list =
1018 frame.render_passes[0]->quad_list; 1018 frame.render_passes[0]->quad_list;
1019 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1019 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1020 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1020 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1021 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1021 ASSERT_EQ(5u, root_delegated_quad_list.size());
1022 const SharedQuadState* root_delegated_shared_quad_state = 1022 const SharedQuadState* root_delegated_shared_quad_state =
1023 root_delegated_quad_list[0]->shared_quad_state; 1023 root_delegated_quad_list[0]->shared_quad_state;
1024 const SharedQuadState* contrib_delegated_shared_quad_state = 1024 const SharedQuadState* contrib_delegated_shared_quad_state =
(...skipping 10 matching lines...) Expand all
1035 host_impl_->DidDrawAllLayers(frame); 1035 host_impl_->DidDrawAllLayers(frame);
1036 } 1036 }
1037 1037
1038 TEST_F(DelegatedRendererLayerImplTestClip, 1038 TEST_F(DelegatedRendererLayerImplTestClip,
1039 QuadsClipped_LayerUnclipped_NoSurface) { 1039 QuadsClipped_LayerUnclipped_NoSurface) {
1040 root_delegated_render_pass_is_clipped_ = true; 1040 root_delegated_render_pass_is_clipped_ = true;
1041 clip_delegated_renderer_layer_ = false; 1041 clip_delegated_renderer_layer_ = false;
1042 SetUpTest(); 1042 SetUpTest();
1043 1043
1044 LayerTreeHostImpl::FrameData frame; 1044 LayerTreeHostImpl::FrameData frame;
1045 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1045 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1046 1046
1047 ASSERT_EQ(2u, frame.render_passes.size()); 1047 ASSERT_EQ(2u, frame.render_passes.size());
1048 const QuadList& contrib_delegated_quad_list = 1048 const QuadList& contrib_delegated_quad_list =
1049 frame.render_passes[0]->quad_list; 1049 frame.render_passes[0]->quad_list;
1050 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1050 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1051 const QuadList& root_delegated_quad_list = 1051 const QuadList& root_delegated_quad_list =
1052 frame.render_passes[1]->quad_list; 1052 frame.render_passes[1]->quad_list;
1053 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1053 ASSERT_EQ(5u, root_delegated_quad_list.size());
1054 const SharedQuadState* root_delegated_shared_quad_state = 1054 const SharedQuadState* root_delegated_shared_quad_state =
1055 root_delegated_quad_list[0]->shared_quad_state; 1055 root_delegated_quad_list[0]->shared_quad_state;
(...skipping 10 matching lines...) Expand all
1066 host_impl_->DidDrawAllLayers(frame); 1066 host_impl_->DidDrawAllLayers(frame);
1067 } 1067 }
1068 1068
1069 TEST_F(DelegatedRendererLayerImplTestClip, 1069 TEST_F(DelegatedRendererLayerImplTestClip,
1070 QuadsUnclipped_LayerClipped_NoSurface) { 1070 QuadsUnclipped_LayerClipped_NoSurface) {
1071 root_delegated_render_pass_is_clipped_ = false; 1071 root_delegated_render_pass_is_clipped_ = false;
1072 clip_delegated_renderer_layer_ = true; 1072 clip_delegated_renderer_layer_ = true;
1073 SetUpTest(); 1073 SetUpTest();
1074 1074
1075 LayerTreeHostImpl::FrameData frame; 1075 LayerTreeHostImpl::FrameData frame;
1076 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1076 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1077 1077
1078 ASSERT_EQ(2u, frame.render_passes.size()); 1078 ASSERT_EQ(2u, frame.render_passes.size());
1079 const QuadList& contrib_delegated_quad_list = 1079 const QuadList& contrib_delegated_quad_list =
1080 frame.render_passes[0]->quad_list; 1080 frame.render_passes[0]->quad_list;
1081 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1081 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1082 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1082 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1083 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1083 ASSERT_EQ(5u, root_delegated_quad_list.size());
1084 const SharedQuadState* root_delegated_shared_quad_state = 1084 const SharedQuadState* root_delegated_shared_quad_state =
1085 root_delegated_quad_list[0]->shared_quad_state; 1085 root_delegated_quad_list[0]->shared_quad_state;
1086 const SharedQuadState* contrib_delegated_shared_quad_state = 1086 const SharedQuadState* contrib_delegated_shared_quad_state =
(...skipping 11 matching lines...) Expand all
1098 host_impl_->DidDrawAllLayers(frame); 1098 host_impl_->DidDrawAllLayers(frame);
1099 } 1099 }
1100 1100
1101 TEST_F(DelegatedRendererLayerImplTestClip, 1101 TEST_F(DelegatedRendererLayerImplTestClip,
1102 QuadsClipped_LayerClipped_NoSurface) { 1102 QuadsClipped_LayerClipped_NoSurface) {
1103 root_delegated_render_pass_is_clipped_ = true; 1103 root_delegated_render_pass_is_clipped_ = true;
1104 clip_delegated_renderer_layer_ = true; 1104 clip_delegated_renderer_layer_ = true;
1105 SetUpTest(); 1105 SetUpTest();
1106 1106
1107 LayerTreeHostImpl::FrameData frame; 1107 LayerTreeHostImpl::FrameData frame;
1108 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1108 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1109 1109
1110 ASSERT_EQ(2u, frame.render_passes.size()); 1110 ASSERT_EQ(2u, frame.render_passes.size());
1111 const QuadList& contrib_delegated_quad_list = 1111 const QuadList& contrib_delegated_quad_list =
1112 frame.render_passes[0]->quad_list; 1112 frame.render_passes[0]->quad_list;
1113 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1113 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1114 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1114 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1115 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1115 ASSERT_EQ(5u, root_delegated_quad_list.size());
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 const SharedQuadState* contrib_delegated_shared_quad_state = 1118 const SharedQuadState* contrib_delegated_shared_quad_state =
(...skipping 12 matching lines...) Expand all
1131 1131
1132 TEST_F(DelegatedRendererLayerImplTestClip, 1132 TEST_F(DelegatedRendererLayerImplTestClip,
1133 QuadsUnclipped_LayerUnclipped_Surface) { 1133 QuadsUnclipped_LayerUnclipped_Surface) {
1134 root_delegated_render_pass_is_clipped_ = false; 1134 root_delegated_render_pass_is_clipped_ = false;
1135 clip_delegated_renderer_layer_ = false; 1135 clip_delegated_renderer_layer_ = false;
1136 SetUpTest(); 1136 SetUpTest();
1137 1137
1138 delegated_renderer_layer_->SetForceRenderSurface(true); 1138 delegated_renderer_layer_->SetForceRenderSurface(true);
1139 1139
1140 LayerTreeHostImpl::FrameData frame; 1140 LayerTreeHostImpl::FrameData frame;
1141 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1141 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1142 1142
1143 ASSERT_EQ(3u, frame.render_passes.size()); 1143 ASSERT_EQ(3u, frame.render_passes.size());
1144 const QuadList& contrib_delegated_quad_list = 1144 const QuadList& contrib_delegated_quad_list =
1145 frame.render_passes[0]->quad_list; 1145 frame.render_passes[0]->quad_list;
1146 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1146 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1147 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1147 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1148 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1148 ASSERT_EQ(5u, root_delegated_quad_list.size());
1149 const SharedQuadState* root_delegated_shared_quad_state = 1149 const SharedQuadState* root_delegated_shared_quad_state =
1150 root_delegated_quad_list[0]->shared_quad_state; 1150 root_delegated_quad_list[0]->shared_quad_state;
1151 const SharedQuadState* contrib_delegated_shared_quad_state = 1151 const SharedQuadState* contrib_delegated_shared_quad_state =
(...skipping 10 matching lines...) Expand all
1162 1162
1163 TEST_F(DelegatedRendererLayerImplTestClip, 1163 TEST_F(DelegatedRendererLayerImplTestClip,
1164 QuadsClipped_LayerUnclipped_Surface) { 1164 QuadsClipped_LayerUnclipped_Surface) {
1165 root_delegated_render_pass_is_clipped_ = true; 1165 root_delegated_render_pass_is_clipped_ = true;
1166 clip_delegated_renderer_layer_ = false; 1166 clip_delegated_renderer_layer_ = false;
1167 SetUpTest(); 1167 SetUpTest();
1168 1168
1169 delegated_renderer_layer_->SetForceRenderSurface(true); 1169 delegated_renderer_layer_->SetForceRenderSurface(true);
1170 1170
1171 LayerTreeHostImpl::FrameData frame; 1171 LayerTreeHostImpl::FrameData frame;
1172 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1172 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1173 1173
1174 ASSERT_EQ(3u, frame.render_passes.size()); 1174 ASSERT_EQ(3u, frame.render_passes.size());
1175 const QuadList& contrib_delegated_quad_list = 1175 const QuadList& contrib_delegated_quad_list =
1176 frame.render_passes[0]->quad_list; 1176 frame.render_passes[0]->quad_list;
1177 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1177 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1178 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1178 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1179 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1179 ASSERT_EQ(5u, root_delegated_quad_list.size());
1180 const SharedQuadState* root_delegated_shared_quad_state = 1180 const SharedQuadState* root_delegated_shared_quad_state =
1181 root_delegated_quad_list[0]->shared_quad_state; 1181 root_delegated_quad_list[0]->shared_quad_state;
1182 const SharedQuadState* contrib_delegated_shared_quad_state = 1182 const SharedQuadState* contrib_delegated_shared_quad_state =
(...skipping 11 matching lines...) Expand all
1194 1194
1195 TEST_F(DelegatedRendererLayerImplTestClip, 1195 TEST_F(DelegatedRendererLayerImplTestClip,
1196 QuadsUnclipped_LayerClipped_Surface) { 1196 QuadsUnclipped_LayerClipped_Surface) {
1197 root_delegated_render_pass_is_clipped_ = false; 1197 root_delegated_render_pass_is_clipped_ = false;
1198 clip_delegated_renderer_layer_ = true; 1198 clip_delegated_renderer_layer_ = true;
1199 SetUpTest(); 1199 SetUpTest();
1200 1200
1201 delegated_renderer_layer_->SetForceRenderSurface(true); 1201 delegated_renderer_layer_->SetForceRenderSurface(true);
1202 1202
1203 LayerTreeHostImpl::FrameData frame; 1203 LayerTreeHostImpl::FrameData frame;
1204 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1204 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1205 1205
1206 ASSERT_EQ(3u, frame.render_passes.size()); 1206 ASSERT_EQ(3u, frame.render_passes.size());
1207 const QuadList& contrib_delegated_quad_list = 1207 const QuadList& contrib_delegated_quad_list =
1208 frame.render_passes[0]->quad_list; 1208 frame.render_passes[0]->quad_list;
1209 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1209 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1210 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1210 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1211 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1211 ASSERT_EQ(5u, root_delegated_quad_list.size());
1212 const SharedQuadState* root_delegated_shared_quad_state = 1212 const SharedQuadState* root_delegated_shared_quad_state =
1213 root_delegated_quad_list[0]->shared_quad_state; 1213 root_delegated_quad_list[0]->shared_quad_state;
1214 const SharedQuadState* contrib_delegated_shared_quad_state = 1214 const SharedQuadState* contrib_delegated_shared_quad_state =
1215 contrib_delegated_quad_list[0]->shared_quad_state; 1215 contrib_delegated_quad_list[0]->shared_quad_state;
1216 1216
1217 // When the layer owns a surface, the quads don't need to be clipped 1217 // When the layer owns a surface, the quads don't need to be clipped
1218 // further than they already specify. If they aren't clipped, then their 1218 // further than they already specify. If they aren't clipped, then their
1219 // clip rect is ignored, and they are not set as clipped. 1219 // clip rect is ignored, and they are not set as clipped.
1220 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1220 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1221 1221
1222 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1222 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
1223 host_impl_->DidDrawAllLayers(frame); 1223 host_impl_->DidDrawAllLayers(frame);
1224 } 1224 }
1225 1225
1226 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1226 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1227 root_delegated_render_pass_is_clipped_ = true; 1227 root_delegated_render_pass_is_clipped_ = true;
1228 clip_delegated_renderer_layer_ = true; 1228 clip_delegated_renderer_layer_ = true;
1229 SetUpTest(); 1229 SetUpTest();
1230 1230
1231 delegated_renderer_layer_->SetForceRenderSurface(true); 1231 delegated_renderer_layer_->SetForceRenderSurface(true);
1232 1232
1233 LayerTreeHostImpl::FrameData frame; 1233 LayerTreeHostImpl::FrameData frame;
1234 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); 1234 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1235 1235
1236 ASSERT_EQ(3u, frame.render_passes.size()); 1236 ASSERT_EQ(3u, frame.render_passes.size());
1237 const QuadList& contrib_delegated_quad_list = 1237 const QuadList& contrib_delegated_quad_list =
1238 frame.render_passes[0]->quad_list; 1238 frame.render_passes[0]->quad_list;
1239 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1239 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1240 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1240 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1241 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1241 ASSERT_EQ(5u, root_delegated_quad_list.size());
1242 const SharedQuadState* root_delegated_shared_quad_state = 1242 const SharedQuadState* root_delegated_shared_quad_state =
1243 root_delegated_quad_list[0]->shared_quad_state; 1243 root_delegated_quad_list[0]->shared_quad_state;
1244 const SharedQuadState* contrib_delegated_shared_quad_state = 1244 const SharedQuadState* contrib_delegated_shared_quad_state =
1245 contrib_delegated_quad_list[0]->shared_quad_state; 1245 contrib_delegated_quad_list[0]->shared_quad_state;
1246 1246
1247 // When the quads have a clip of their own, it is used, but it is 1247 // When the quads have a clip of their own, it is used, but it is
1248 // combined with the clip rect of the delegated renderer layer. If the 1248 // combined with the clip rect of the delegated renderer layer. If the
1249 // layer owns a surface, then it does not have a clip rect of its own. 1249 // layer owns a surface, then it does not have a clip rect of its own.
1250 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1250 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1251 root_delegated_shared_quad_state->clip_rect.ToString()); 1251 root_delegated_shared_quad_state->clip_rect.ToString());
1252 // Quads came with a clip rect. 1252 // Quads came with a clip rect.
1253 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1253 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1254 1254
1255 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1255 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
1256 host_impl_->DidDrawAllLayers(frame); 1256 host_impl_->DidDrawAllLayers(frame);
1257 } 1257 }
1258 1258
1259 } // namespace 1259 } // namespace
1260 } // namespace cc 1260 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698