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 layer_after also adds one quad. | 417 // The 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 | 1024 |
1025 // When the quads don't have a clip of their own, the clip rect is set to | 1025 // When the quads don't have a clip of their own, the clip rect is set to |
1026 // the drawable_content_rect of the delegated renderer layer. | 1026 // the drawable_content_rect of the delegated renderer layer. |
1027 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), | 1027 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), |
1028 root_delegated_shared_quad_state->clip_rect.ToString()); | 1028 root_delegated_shared_quad_state->clip_rect.ToString()); |
1029 // Quads are clipped to the delegated renderer layer. | 1029 // Quads are clipped to the delegated renderer layer. |
1030 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1030 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1031 | 1031 |
1032 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1032 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1033 host_impl_->DidDrawAllLayers(frame); | 1033 host_impl_->DidDrawAllLayers(frame); |
1034 } | 1034 } |
1035 | 1035 |
1036 TEST_F(DelegatedRendererLayerImplTestClip, | 1036 TEST_F(DelegatedRendererLayerImplTestClip, |
1037 QuadsClipped_LayerUnclipped_NoSurface) { | 1037 QuadsClipped_LayerUnclipped_NoSurface) { |
1038 root_delegated_render_pass_is_clipped_ = true; | 1038 root_delegated_render_pass_is_clipped_ = true; |
1039 clip_delegated_renderer_layer_ = false; | 1039 clip_delegated_renderer_layer_ = false; |
1040 SetUpTest(); | 1040 SetUpTest(); |
1041 | 1041 |
1042 LayerTreeHostImpl::FrameData frame; | 1042 LayerTreeHostImpl::FrameData frame; |
1043 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1043 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1044 | 1044 |
1045 ASSERT_EQ(2u, frame.render_passes.size()); | 1045 ASSERT_EQ(2u, frame.render_passes.size()); |
1046 const QuadList& contrib_delegated_quad_list = | 1046 const QuadList& contrib_delegated_quad_list = |
1047 frame.render_passes[0]->quad_list; | 1047 frame.render_passes[0]->quad_list; |
1048 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1048 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1049 const QuadList& root_delegated_quad_list = | 1049 const QuadList& root_delegated_quad_list = |
1050 frame.render_passes[1]->quad_list; | 1050 frame.render_passes[1]->quad_list; |
1051 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1051 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1052 const SharedQuadState* root_delegated_shared_quad_state = | 1052 const SharedQuadState* root_delegated_shared_quad_state = |
1053 root_delegated_quad_list[0]->shared_quad_state; | 1053 root_delegated_quad_list[0]->shared_quad_state; |
1054 | 1054 |
1055 // When the quads have a clip of their own, it is used. | 1055 // When the quads have a clip of their own, it is used. |
1056 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), | 1056 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), |
1057 root_delegated_shared_quad_state->clip_rect.ToString()); | 1057 root_delegated_shared_quad_state->clip_rect.ToString()); |
1058 // Quads came with a clip rect. | 1058 // Quads came with a clip rect. |
1059 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1059 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1060 | 1060 |
1061 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1061 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1062 host_impl_->DidDrawAllLayers(frame); | 1062 host_impl_->DidDrawAllLayers(frame); |
1063 } | 1063 } |
1064 | 1064 |
1065 TEST_F(DelegatedRendererLayerImplTestClip, | 1065 TEST_F(DelegatedRendererLayerImplTestClip, |
1066 QuadsUnclipped_LayerClipped_NoSurface) { | 1066 QuadsUnclipped_LayerClipped_NoSurface) { |
1067 root_delegated_render_pass_is_clipped_ = false; | 1067 root_delegated_render_pass_is_clipped_ = false; |
1068 clip_delegated_renderer_layer_ = true; | 1068 clip_delegated_renderer_layer_ = true; |
1069 SetUpTest(); | 1069 SetUpTest(); |
1070 | 1070 |
1071 LayerTreeHostImpl::FrameData frame; | 1071 LayerTreeHostImpl::FrameData frame; |
1072 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1072 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1073 | 1073 |
1074 ASSERT_EQ(2u, frame.render_passes.size()); | 1074 ASSERT_EQ(2u, frame.render_passes.size()); |
1075 const QuadList& contrib_delegated_quad_list = | 1075 const QuadList& contrib_delegated_quad_list = |
1076 frame.render_passes[0]->quad_list; | 1076 frame.render_passes[0]->quad_list; |
1077 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1077 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1078 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1078 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1079 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1079 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1080 const SharedQuadState* root_delegated_shared_quad_state = | 1080 const SharedQuadState* root_delegated_shared_quad_state = |
1081 root_delegated_quad_list[0]->shared_quad_state; | 1081 root_delegated_quad_list[0]->shared_quad_state; |
1082 | 1082 |
1083 // When the quads don't have a clip of their own, the clip rect is set to | 1083 // When the quads don't have a clip of their own, the clip rect is set to |
1084 // the drawable_content_rect of the delegated renderer layer. When the layer | 1084 // the drawable_content_rect of the delegated renderer layer. When the layer |
1085 // is clipped, that should be seen in the quads' clip_rect. | 1085 // is clipped, that should be seen in the quads' clip_rect. |
1086 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), | 1086 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), |
1087 root_delegated_shared_quad_state->clip_rect.ToString()); | 1087 root_delegated_shared_quad_state->clip_rect.ToString()); |
1088 // Quads are clipped to the delegated renderer layer. | 1088 // Quads are clipped to the delegated renderer layer. |
1089 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1089 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1090 | 1090 |
1091 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1091 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1092 host_impl_->DidDrawAllLayers(frame); | 1092 host_impl_->DidDrawAllLayers(frame); |
1093 } | 1093 } |
1094 | 1094 |
1095 TEST_F(DelegatedRendererLayerImplTestClip, | 1095 TEST_F(DelegatedRendererLayerImplTestClip, |
1096 QuadsClipped_LayerClipped_NoSurface) { | 1096 QuadsClipped_LayerClipped_NoSurface) { |
1097 root_delegated_render_pass_is_clipped_ = true; | 1097 root_delegated_render_pass_is_clipped_ = true; |
1098 clip_delegated_renderer_layer_ = true; | 1098 clip_delegated_renderer_layer_ = true; |
1099 SetUpTest(); | 1099 SetUpTest(); |
1100 | 1100 |
1101 LayerTreeHostImpl::FrameData frame; | 1101 LayerTreeHostImpl::FrameData frame; |
1102 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1102 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1103 | 1103 |
1104 ASSERT_EQ(2u, frame.render_passes.size()); | 1104 ASSERT_EQ(2u, frame.render_passes.size()); |
1105 const QuadList& contrib_delegated_quad_list = | 1105 const QuadList& contrib_delegated_quad_list = |
1106 frame.render_passes[0]->quad_list; | 1106 frame.render_passes[0]->quad_list; |
1107 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1107 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1108 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1108 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1109 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1109 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1110 const SharedQuadState* root_delegated_shared_quad_state = | 1110 const SharedQuadState* root_delegated_shared_quad_state = |
1111 root_delegated_quad_list[0]->shared_quad_state; | 1111 root_delegated_quad_list[0]->shared_quad_state; |
1112 | 1112 |
(...skipping 10 matching lines...) Expand all Loading... |
1123 | 1123 |
1124 TEST_F(DelegatedRendererLayerImplTestClip, | 1124 TEST_F(DelegatedRendererLayerImplTestClip, |
1125 QuadsUnclipped_LayerUnclipped_Surface) { | 1125 QuadsUnclipped_LayerUnclipped_Surface) { |
1126 root_delegated_render_pass_is_clipped_ = false; | 1126 root_delegated_render_pass_is_clipped_ = false; |
1127 clip_delegated_renderer_layer_ = false; | 1127 clip_delegated_renderer_layer_ = false; |
1128 SetUpTest(); | 1128 SetUpTest(); |
1129 | 1129 |
1130 delegated_renderer_layer_->SetForceRenderSurface(true); | 1130 delegated_renderer_layer_->SetForceRenderSurface(true); |
1131 | 1131 |
1132 LayerTreeHostImpl::FrameData frame; | 1132 LayerTreeHostImpl::FrameData frame; |
1133 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1133 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1134 | 1134 |
1135 ASSERT_EQ(3u, frame.render_passes.size()); | 1135 ASSERT_EQ(3u, frame.render_passes.size()); |
1136 const QuadList& contrib_delegated_quad_list = | 1136 const QuadList& contrib_delegated_quad_list = |
1137 frame.render_passes[0]->quad_list; | 1137 frame.render_passes[0]->quad_list; |
1138 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1138 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1139 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1139 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1140 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1140 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1141 const SharedQuadState* root_delegated_shared_quad_state = | 1141 const SharedQuadState* root_delegated_shared_quad_state = |
1142 root_delegated_quad_list[0]->shared_quad_state; | 1142 root_delegated_quad_list[0]->shared_quad_state; |
1143 | 1143 |
1144 // When the layer owns a surface, the quads don't need to be clipped | 1144 // When the layer owns a surface, the quads don't need to be clipped |
1145 // further than they already specify. If they aren't clipped, then their | 1145 // further than they already specify. If they aren't clipped, then their |
1146 // clip rect is ignored, and they are not set as clipped. | 1146 // clip rect is ignored, and they are not set as clipped. |
1147 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1147 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
1148 | 1148 |
1149 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1149 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1150 host_impl_->DidDrawAllLayers(frame); | 1150 host_impl_->DidDrawAllLayers(frame); |
1151 } | 1151 } |
1152 | 1152 |
1153 TEST_F(DelegatedRendererLayerImplTestClip, | 1153 TEST_F(DelegatedRendererLayerImplTestClip, |
1154 QuadsClipped_LayerUnclipped_Surface) { | 1154 QuadsClipped_LayerUnclipped_Surface) { |
1155 root_delegated_render_pass_is_clipped_ = true; | 1155 root_delegated_render_pass_is_clipped_ = true; |
1156 clip_delegated_renderer_layer_ = false; | 1156 clip_delegated_renderer_layer_ = false; |
1157 SetUpTest(); | 1157 SetUpTest(); |
1158 | 1158 |
1159 delegated_renderer_layer_->SetForceRenderSurface(true); | 1159 delegated_renderer_layer_->SetForceRenderSurface(true); |
1160 | 1160 |
1161 LayerTreeHostImpl::FrameData frame; | 1161 LayerTreeHostImpl::FrameData frame; |
1162 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1162 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1163 | 1163 |
1164 ASSERT_EQ(3u, frame.render_passes.size()); | 1164 ASSERT_EQ(3u, frame.render_passes.size()); |
1165 const QuadList& contrib_delegated_quad_list = | 1165 const QuadList& contrib_delegated_quad_list = |
1166 frame.render_passes[0]->quad_list; | 1166 frame.render_passes[0]->quad_list; |
1167 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1167 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1168 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1168 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1169 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1169 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1170 const SharedQuadState* root_delegated_shared_quad_state = | 1170 const SharedQuadState* root_delegated_shared_quad_state = |
1171 root_delegated_quad_list[0]->shared_quad_state; | 1171 root_delegated_quad_list[0]->shared_quad_state; |
1172 | 1172 |
1173 // When the quads have a clip of their own, it is used. | 1173 // When the quads have a clip of their own, it is used. |
1174 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1174 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
1175 root_delegated_shared_quad_state->clip_rect.ToString()); | 1175 root_delegated_shared_quad_state->clip_rect.ToString()); |
1176 // Quads came with a clip rect. | 1176 // Quads came with a clip rect. |
1177 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1177 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1178 | 1178 |
1179 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1179 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1180 host_impl_->DidDrawAllLayers(frame); | 1180 host_impl_->DidDrawAllLayers(frame); |
1181 } | 1181 } |
1182 | 1182 |
1183 TEST_F(DelegatedRendererLayerImplTestClip, | 1183 TEST_F(DelegatedRendererLayerImplTestClip, |
1184 QuadsUnclipped_LayerClipped_Surface) { | 1184 QuadsUnclipped_LayerClipped_Surface) { |
1185 root_delegated_render_pass_is_clipped_ = false; | 1185 root_delegated_render_pass_is_clipped_ = false; |
1186 clip_delegated_renderer_layer_ = true; | 1186 clip_delegated_renderer_layer_ = true; |
1187 SetUpTest(); | 1187 SetUpTest(); |
1188 | 1188 |
1189 delegated_renderer_layer_->SetForceRenderSurface(true); | 1189 delegated_renderer_layer_->SetForceRenderSurface(true); |
1190 | 1190 |
1191 LayerTreeHostImpl::FrameData frame; | 1191 LayerTreeHostImpl::FrameData frame; |
1192 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1192 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1193 | 1193 |
1194 ASSERT_EQ(3u, frame.render_passes.size()); | 1194 ASSERT_EQ(3u, frame.render_passes.size()); |
1195 const QuadList& contrib_delegated_quad_list = | 1195 const QuadList& contrib_delegated_quad_list = |
1196 frame.render_passes[0]->quad_list; | 1196 frame.render_passes[0]->quad_list; |
1197 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1197 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1198 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1198 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1199 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1199 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1200 const SharedQuadState* root_delegated_shared_quad_state = | 1200 const SharedQuadState* root_delegated_shared_quad_state = |
1201 root_delegated_quad_list[0]->shared_quad_state; | 1201 root_delegated_quad_list[0]->shared_quad_state; |
1202 | 1202 |
1203 // When the layer owns a surface, the quads don't need to be clipped | 1203 // When the layer owns a surface, the quads don't need to be clipped |
1204 // further than they already specify. If they aren't clipped, then their | 1204 // further than they already specify. If they aren't clipped, then their |
1205 // clip rect is ignored, and they are not set as clipped. | 1205 // clip rect is ignored, and they are not set as clipped. |
1206 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1206 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
1207 | 1207 |
1208 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1208 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1209 host_impl_->DidDrawAllLayers(frame); | 1209 host_impl_->DidDrawAllLayers(frame); |
1210 } | 1210 } |
1211 | 1211 |
1212 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { | 1212 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { |
1213 root_delegated_render_pass_is_clipped_ = true; | 1213 root_delegated_render_pass_is_clipped_ = true; |
1214 clip_delegated_renderer_layer_ = true; | 1214 clip_delegated_renderer_layer_ = true; |
1215 SetUpTest(); | 1215 SetUpTest(); |
1216 | 1216 |
1217 delegated_renderer_layer_->SetForceRenderSurface(true); | 1217 delegated_renderer_layer_->SetForceRenderSurface(true); |
1218 | 1218 |
1219 LayerTreeHostImpl::FrameData frame; | 1219 LayerTreeHostImpl::FrameData frame; |
1220 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); | 1220 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
1221 | 1221 |
1222 ASSERT_EQ(3u, frame.render_passes.size()); | 1222 ASSERT_EQ(3u, frame.render_passes.size()); |
1223 const QuadList& contrib_delegated_quad_list = | 1223 const QuadList& contrib_delegated_quad_list = |
1224 frame.render_passes[0]->quad_list; | 1224 frame.render_passes[0]->quad_list; |
1225 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1225 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1226 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1226 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1227 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1227 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1228 const SharedQuadState* root_delegated_shared_quad_state = | 1228 const SharedQuadState* root_delegated_shared_quad_state = |
1229 root_delegated_quad_list[0]->shared_quad_state; | 1229 root_delegated_quad_list[0]->shared_quad_state; |
1230 | 1230 |
1231 // When the quads have a clip of their own, it is used, but it is | 1231 // When the quads have a clip of their own, it is used, but it is |
1232 // combined with the clip rect of the delegated renderer layer. If the | 1232 // combined with the clip rect of the delegated renderer layer. If the |
1233 // layer owns a surface, then it does not have a clip rect of its own. | 1233 // layer owns a surface, then it does not have a clip rect of its own. |
1234 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1234 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
1235 root_delegated_shared_quad_state->clip_rect.ToString()); | 1235 root_delegated_shared_quad_state->clip_rect.ToString()); |
1236 // Quads came with a clip rect. | 1236 // Quads came with a clip rect. |
1237 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1237 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1238 | 1238 |
1239 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 1239 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
1240 host_impl_->DidDrawAllLayers(frame); | 1240 host_impl_->DidDrawAllLayers(frame); |
1241 } | 1241 } |
1242 | 1242 |
1243 } // namespace | 1243 } // namespace |
1244 } // namespace cc | 1244 } // namespace cc |
OLD | NEW |