| 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 |