OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |