| 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/quad_sink.h" | 8 #include "cc/layers/quad_sink.h" |
| 9 #include "cc/layers/solid_color_layer_impl.h" | 9 #include "cc/layers/solid_color_layer_impl.h" |
| 10 #include "cc/quads/render_pass_draw_quad.h" | 10 #include "cc/quads/render_pass_draw_quad.h" |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 protected: | 134 protected: |
| 135 LayerImpl* root_layer_; | 135 LayerImpl* root_layer_; |
| 136 LayerImpl* layer_before_; | 136 LayerImpl* layer_before_; |
| 137 LayerImpl* layer_after_; | 137 LayerImpl* layer_after_; |
| 138 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 138 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
| 139 }; | 139 }; |
| 140 | 140 |
| 141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { | 141 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { |
| 142 LayerTreeHostImpl::FrameData frame; | 142 LayerTreeHostImpl::FrameData frame; |
| 143 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 143 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 144 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 144 host_impl_->PrepareToDraw(&frame)); |
| 145 | 145 |
| 146 // Each non-DelegatedRendererLayer added one RenderPass. The | 146 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 147 // DelegatedRendererLayer added two contributing passes. | 147 // DelegatedRendererLayer added two contributing passes. |
| 148 ASSERT_EQ(5u, frame.render_passes.size()); | 148 ASSERT_EQ(5u, frame.render_passes.size()); |
| 149 | 149 |
| 150 // The DelegatedRendererLayer should have added its contributing RenderPasses | 150 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 151 // to the frame. | 151 // to the frame. |
| 152 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); | 152 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 153 EXPECT_EQ(1, frame.render_passes[1]->id.index); | 153 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 154 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); | 154 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 169 frame.render_passes[2]->output_rect.ToString()); | 169 frame.render_passes[2]->output_rect.ToString()); |
| 170 | 170 |
| 171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 172 host_impl_->DidDrawAllLayers(frame); | 172 host_impl_->DidDrawAllLayers(frame); |
| 173 } | 173 } |
| 174 | 174 |
| 175 TEST_F(DelegatedRendererLayerImplTestSimple, | 175 TEST_F(DelegatedRendererLayerImplTestSimple, |
| 176 AddsQuadsToContributingRenderPasses) { | 176 AddsQuadsToContributingRenderPasses) { |
| 177 LayerTreeHostImpl::FrameData frame; | 177 LayerTreeHostImpl::FrameData frame; |
| 178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 178 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 179 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 179 host_impl_->PrepareToDraw(&frame)); |
| 180 | 180 |
| 181 // Each non-DelegatedRendererLayer added one RenderPass. The | 181 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 182 // DelegatedRendererLayer added two contributing passes. | 182 // DelegatedRendererLayer added two contributing passes. |
| 183 ASSERT_EQ(5u, frame.render_passes.size()); | 183 ASSERT_EQ(5u, frame.render_passes.size()); |
| 184 | 184 |
| 185 // The DelegatedRendererLayer should have added its contributing RenderPasses | 185 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 186 // to the frame. | 186 // to the frame. |
| 187 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); | 187 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 188 EXPECT_EQ(1, frame.render_passes[1]->id.index); | 188 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 189 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); | 189 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 205 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 205 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 206 frame.render_passes[1]->quad_list[0]->rect.ToString()); | 206 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 207 | 207 |
| 208 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 208 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 209 host_impl_->DidDrawAllLayers(frame); | 209 host_impl_->DidDrawAllLayers(frame); |
| 210 } | 210 } |
| 211 | 211 |
| 212 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { | 212 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { |
| 213 LayerTreeHostImpl::FrameData frame; | 213 LayerTreeHostImpl::FrameData frame; |
| 214 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 214 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 215 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 215 host_impl_->PrepareToDraw(&frame)); |
| 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, gfx::FrameTime::Now()); | 236 host_impl_->DrawLayers(&frame, gfx::FrameTime::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_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 243 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 244 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 244 host_impl_->PrepareToDraw(&frame)); |
| 245 | 245 |
| 246 // Each non-DelegatedRendererLayer added one RenderPass. The | 246 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 247 // DelegatedRendererLayer added two contributing passes. | 247 // DelegatedRendererLayer added two contributing passes. |
| 248 ASSERT_EQ(5u, frame.render_passes.size()); | 248 ASSERT_EQ(5u, frame.render_passes.size()); |
| 249 | 249 |
| 250 // The DelegatedRendererLayer is at position 3,3 compared to its target, and | 250 // The DelegatedRendererLayer is at position 3,3 compared to its target, and |
| 251 // has a translation transform of 1,1. So its root RenderPass' quads should | 251 // has a translation transform of 1,1. So its root RenderPass' quads should |
| 252 // all be transformed by that combined amount. | 252 // all be transformed by that combined amount. |
| 253 // The DelegatedRendererLayer has a size of 10x10, but the root delegated | 253 // The DelegatedRendererLayer has a size of 10x10, but the root delegated |
| 254 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. | 254 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 268 EXPECT_TRANSFORMATION_MATRIX_EQ( | 268 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 269 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); | 269 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); |
| 270 | 270 |
| 271 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 271 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 272 host_impl_->DidDrawAllLayers(frame); | 272 host_impl_->DidDrawAllLayers(frame); |
| 273 } | 273 } |
| 274 | 274 |
| 275 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { | 275 TEST_F(DelegatedRendererLayerImplTestSimple, RenderPassTransformIsModified) { |
| 276 LayerTreeHostImpl::FrameData frame; | 276 LayerTreeHostImpl::FrameData frame; |
| 277 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 277 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 278 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 278 host_impl_->PrepareToDraw(&frame)); |
| 279 | 279 |
| 280 // The delegated layer has a surface between it and the root. | 280 // The delegated layer has a surface between it and the root. |
| 281 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); | 281 EXPECT_TRUE(delegated_renderer_layer_->render_target()->parent()); |
| 282 | 282 |
| 283 // Each non-DelegatedRendererLayer added one RenderPass. The | 283 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 284 // DelegatedRendererLayer added two contributing passes. | 284 // DelegatedRendererLayer added two contributing passes. |
| 285 ASSERT_EQ(5u, frame.render_passes.size()); | 285 ASSERT_EQ(5u, frame.render_passes.size()); |
| 286 | 286 |
| 287 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all | 287 // The DelegatedRendererLayer is at position 9,9 compared to the root, so all |
| 288 // render pass' transforms to the root should be shifted by this amount. | 288 // render pass' transforms to the root should be shifted by this amount. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 305 transform * seven_eight, | 305 transform * seven_eight, |
| 306 frame.render_passes[2]->transform_to_root_target); | 306 frame.render_passes[2]->transform_to_root_target); |
| 307 | 307 |
| 308 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 308 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
| 309 host_impl_->DidDrawAllLayers(frame); | 309 host_impl_->DidDrawAllLayers(frame); |
| 310 } | 310 } |
| 311 | 311 |
| 312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { | 312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { |
| 313 LayerTreeHostImpl::FrameData frame; | 313 LayerTreeHostImpl::FrameData frame; |
| 314 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 314 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 315 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 315 host_impl_->PrepareToDraw(&frame)); |
| 316 | 316 |
| 317 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it | 317 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it |
| 318 // has no need to be a RenderSurface for the quads it carries. | 318 // has no need to be a RenderSurface for the quads it carries. |
| 319 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); | 319 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); |
| 320 | 320 |
| 321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 321 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 322 host_impl_->DidDrawAllLayers(frame); | 322 host_impl_->DidDrawAllLayers(frame); |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { | 325 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { |
| 326 delegated_renderer_layer_->SetOpacity(0.5f); | 326 delegated_renderer_layer_->SetOpacity(0.5f); |
| 327 | 327 |
| 328 LayerTreeHostImpl::FrameData frame; | 328 LayerTreeHostImpl::FrameData frame; |
| 329 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 329 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 330 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 330 host_impl_->PrepareToDraw(&frame)); |
| 331 | 331 |
| 332 // This test case has quads from multiple layers in the delegated renderer, so | 332 // This test case has quads from multiple layers in the delegated renderer, so |
| 333 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | 333 // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| 334 // render surface. | 334 // render surface. |
| 335 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | 335 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| 336 | 336 |
| 337 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 337 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 338 host_impl_->DidDrawAllLayers(frame); | 338 host_impl_->DidDrawAllLayers(frame); |
| 339 } | 339 } |
| 340 | 340 |
| 341 TEST_F(DelegatedRendererLayerImplTestSimple, | 341 TEST_F(DelegatedRendererLayerImplTestSimple, |
| 342 DoesOwnARenderSurfaceForTransform) { | 342 DoesOwnARenderSurfaceForTransform) { |
| 343 gfx::Transform rotation; | 343 gfx::Transform rotation; |
| 344 rotation.RotateAboutZAxis(30.0); | 344 rotation.RotateAboutZAxis(30.0); |
| 345 delegated_renderer_layer_->SetTransform(rotation); | 345 delegated_renderer_layer_->SetTransform(rotation); |
| 346 | 346 |
| 347 LayerTreeHostImpl::FrameData frame; | 347 LayerTreeHostImpl::FrameData frame; |
| 348 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 348 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 349 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 349 host_impl_->PrepareToDraw(&frame)); |
| 350 | 350 |
| 351 // This test case has quads from multiple layers in the delegated renderer, so | 351 // This test case has quads from multiple layers in the delegated renderer, so |
| 352 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | 352 // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| 353 // render surface. | 353 // render surface. |
| 354 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | 354 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| 355 | 355 |
| 356 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 356 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 357 host_impl_->DidDrawAllLayers(frame); | 357 host_impl_->DidDrawAllLayers(frame); |
| 358 } | 358 } |
| 359 | 359 |
| 360 class DelegatedRendererLayerImplTestOwnSurface | 360 class DelegatedRendererLayerImplTestOwnSurface |
| 361 : public DelegatedRendererLayerImplTestSimple { | 361 : public DelegatedRendererLayerImplTestSimple { |
| 362 public: | 362 public: |
| 363 DelegatedRendererLayerImplTestOwnSurface() | 363 DelegatedRendererLayerImplTestOwnSurface() |
| 364 : DelegatedRendererLayerImplTestSimple() { | 364 : DelegatedRendererLayerImplTestSimple() { |
| 365 delegated_renderer_layer_->SetForceRenderSurface(true); | 365 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 366 } | 366 } |
| 367 }; | 367 }; |
| 368 | 368 |
| 369 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { | 369 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { |
| 370 LayerTreeHostImpl::FrameData frame; | 370 LayerTreeHostImpl::FrameData frame; |
| 371 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 371 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 372 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 372 host_impl_->PrepareToDraw(&frame)); |
| 373 | 373 |
| 374 // Each non-DelegatedRendererLayer added one RenderPass. The | 374 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 375 // DelegatedRendererLayer added two contributing passes and its owned surface | 375 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 376 // added one pass. | 376 // added one pass. |
| 377 ASSERT_EQ(6u, frame.render_passes.size()); | 377 ASSERT_EQ(6u, frame.render_passes.size()); |
| 378 | 378 |
| 379 // The DelegatedRendererLayer should have added its contributing RenderPasses | 379 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 380 // to the frame. | 380 // to the frame. |
| 381 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); | 381 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 382 EXPECT_EQ(1, frame.render_passes[1]->id.index); | 382 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 402 frame.render_passes[2]->output_rect.ToString()); | 402 frame.render_passes[2]->output_rect.ToString()); |
| 403 | 403 |
| 404 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 404 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 405 host_impl_->DidDrawAllLayers(frame); | 405 host_impl_->DidDrawAllLayers(frame); |
| 406 } | 406 } |
| 407 | 407 |
| 408 TEST_F(DelegatedRendererLayerImplTestOwnSurface, | 408 TEST_F(DelegatedRendererLayerImplTestOwnSurface, |
| 409 AddsQuadsToContributingRenderPasses) { | 409 AddsQuadsToContributingRenderPasses) { |
| 410 LayerTreeHostImpl::FrameData frame; | 410 LayerTreeHostImpl::FrameData frame; |
| 411 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 411 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 412 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 412 host_impl_->PrepareToDraw(&frame)); |
| 413 | 413 |
| 414 // Each non-DelegatedRendererLayer added one RenderPass. The | 414 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 415 // DelegatedRendererLayer added two contributing passes and its owned surface | 415 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 416 // added one pass. | 416 // added one pass. |
| 417 ASSERT_EQ(6u, frame.render_passes.size()); | 417 ASSERT_EQ(6u, frame.render_passes.size()); |
| 418 | 418 |
| 419 // The DelegatedRendererLayer should have added its contributing RenderPasses | 419 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 420 // to the frame. | 420 // to the frame. |
| 421 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); | 421 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 422 EXPECT_EQ(1, frame.render_passes[1]->id.index); | 422 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 439 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 439 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 440 frame.render_passes[1]->quad_list[0]->rect.ToString()); | 440 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 441 | 441 |
| 442 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 442 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 443 host_impl_->DidDrawAllLayers(frame); | 443 host_impl_->DidDrawAllLayers(frame); |
| 444 } | 444 } |
| 445 | 445 |
| 446 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { | 446 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { |
| 447 LayerTreeHostImpl::FrameData frame; | 447 LayerTreeHostImpl::FrameData frame; |
| 448 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 448 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 449 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 449 host_impl_->PrepareToDraw(&frame)); |
| 450 | 450 |
| 451 // Each non-DelegatedRendererLayer added one RenderPass. The | 451 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 452 // DelegatedRendererLayer added two contributing passes and its owned surface | 452 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 453 // added one pass. | 453 // added one pass. |
| 454 ASSERT_EQ(6u, frame.render_passes.size()); | 454 ASSERT_EQ(6u, frame.render_passes.size()); |
| 455 | 455 |
| 456 // The layer's target is the RenderPass owned by itself. | 456 // The layer's target is the RenderPass owned by itself. |
| 457 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); | 457 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); |
| 458 | 458 |
| 459 // The DelegatedRendererLayer should have added copies of quads in its root | 459 // The DelegatedRendererLayer should have added copies of quads in its root |
| 460 // RenderPass to its target RenderPass. | 460 // RenderPass to its target RenderPass. |
| 461 // The layer_after also adds one quad. | 461 // The layer_after also adds one quad. |
| 462 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); | 462 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); |
| 463 | 463 |
| 464 // Verify it added the right quads. | 464 // Verify it added the right quads. |
| 465 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), | 465 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), |
| 466 frame.render_passes[3]->quad_list[0]->rect.ToString()); | 466 frame.render_passes[3]->quad_list[0]->rect.ToString()); |
| 467 | 467 |
| 468 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 468 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 469 host_impl_->DidDrawAllLayers(frame); | 469 host_impl_->DidDrawAllLayers(frame); |
| 470 } | 470 } |
| 471 | 471 |
| 472 TEST_F(DelegatedRendererLayerImplTestOwnSurface, | 472 TEST_F(DelegatedRendererLayerImplTestOwnSurface, |
| 473 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { | 473 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { |
| 474 LayerTreeHostImpl::FrameData frame; | 474 LayerTreeHostImpl::FrameData frame; |
| 475 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 475 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 476 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 476 host_impl_->PrepareToDraw(&frame)); |
| 477 | 477 |
| 478 // Each non-DelegatedRendererLayer added one RenderPass. The | 478 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 479 // DelegatedRendererLayer added two contributing passes and its owned surface | 479 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 480 // added one pass. | 480 // added one pass. |
| 481 ASSERT_EQ(6u, frame.render_passes.size()); | 481 ASSERT_EQ(6u, frame.render_passes.size()); |
| 482 | 482 |
| 483 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root | 483 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root |
| 484 // RenderPass' quads do not need to be translated at all. However, they are | 484 // RenderPass' quads do not need to be translated at all. However, they are |
| 485 // scaled from the frame's size (8x8) to the layer's bounds (10x10). | 485 // scaled from the frame's size (8x8) to the layer's bounds (10x10). |
| 486 gfx::Transform transform; | 486 gfx::Transform transform; |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 700 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 700 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
| 701 bool root_delegated_render_pass_is_clipped_; | 701 bool root_delegated_render_pass_is_clipped_; |
| 702 }; | 702 }; |
| 703 | 703 |
| 704 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { | 704 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { |
| 705 root_delegated_render_pass_is_clipped_ = false; | 705 root_delegated_render_pass_is_clipped_ = false; |
| 706 SetUpTest(); | 706 SetUpTest(); |
| 707 | 707 |
| 708 LayerTreeHostImpl::FrameData frame; | 708 LayerTreeHostImpl::FrameData frame; |
| 709 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 709 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 710 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 710 host_impl_->PrepareToDraw(&frame)); |
| 711 | 711 |
| 712 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 712 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 713 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 713 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 714 VerifyRenderPasses( | 714 VerifyRenderPasses( |
| 715 frame, | 715 frame, |
| 716 2, | 716 2, |
| 717 &root_delegated_shared_quad_state, | 717 &root_delegated_shared_quad_state, |
| 718 &contrib_delegated_shared_quad_state); | 718 &contrib_delegated_shared_quad_state); |
| 719 | 719 |
| 720 // When the quads don't have a clip of their own, the clip rect is set to | 720 // When the quads don't have a clip of their own, the clip rect is set to |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 757 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 758 host_impl_->DidDrawAllLayers(frame); | 758 host_impl_->DidDrawAllLayers(frame); |
| 759 } | 759 } |
| 760 | 760 |
| 761 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { | 761 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { |
| 762 root_delegated_render_pass_is_clipped_ = true; | 762 root_delegated_render_pass_is_clipped_ = true; |
| 763 SetUpTest(); | 763 SetUpTest(); |
| 764 | 764 |
| 765 LayerTreeHostImpl::FrameData frame; | 765 LayerTreeHostImpl::FrameData frame; |
| 766 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 766 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 767 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 767 host_impl_->PrepareToDraw(&frame)); |
| 768 | 768 |
| 769 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 769 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 770 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 770 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 771 VerifyRenderPasses( | 771 VerifyRenderPasses( |
| 772 frame, | 772 frame, |
| 773 2, | 773 2, |
| 774 &root_delegated_shared_quad_state, | 774 &root_delegated_shared_quad_state, |
| 775 &contrib_delegated_shared_quad_state); | 775 &contrib_delegated_shared_quad_state); |
| 776 | 776 |
| 777 // Since the quads have a clip_rect it should be modified by delegated | 777 // Since the quads have a clip_rect it should be modified by delegated |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 } | 823 } |
| 824 | 824 |
| 825 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { | 825 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { |
| 826 root_delegated_render_pass_is_clipped_ = false; | 826 root_delegated_render_pass_is_clipped_ = false; |
| 827 SetUpTest(); | 827 SetUpTest(); |
| 828 | 828 |
| 829 delegated_renderer_layer_->SetForceRenderSurface(true); | 829 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 830 | 830 |
| 831 LayerTreeHostImpl::FrameData frame; | 831 LayerTreeHostImpl::FrameData frame; |
| 832 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 832 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 833 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 833 host_impl_->PrepareToDraw(&frame)); |
| 834 | 834 |
| 835 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 835 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 836 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 836 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 837 VerifyRenderPasses( | 837 VerifyRenderPasses( |
| 838 frame, | 838 frame, |
| 839 3, | 839 3, |
| 840 &root_delegated_shared_quad_state, | 840 &root_delegated_shared_quad_state, |
| 841 &contrib_delegated_shared_quad_state); | 841 &contrib_delegated_shared_quad_state); |
| 842 | 842 |
| 843 // When the layer owns a surface, then its position and translation are not | 843 // When the layer owns a surface, then its position and translation are not |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 880 } | 880 } |
| 881 | 881 |
| 882 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { | 882 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { |
| 883 root_delegated_render_pass_is_clipped_ = true; | 883 root_delegated_render_pass_is_clipped_ = true; |
| 884 SetUpTest(); | 884 SetUpTest(); |
| 885 | 885 |
| 886 delegated_renderer_layer_->SetForceRenderSurface(true); | 886 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 887 | 887 |
| 888 LayerTreeHostImpl::FrameData frame; | 888 LayerTreeHostImpl::FrameData frame; |
| 889 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 889 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 890 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 890 host_impl_->PrepareToDraw(&frame)); |
| 891 | 891 |
| 892 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 892 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 893 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 893 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 894 VerifyRenderPasses( | 894 VerifyRenderPasses( |
| 895 frame, | 895 frame, |
| 896 3, | 896 3, |
| 897 &root_delegated_shared_quad_state, | 897 &root_delegated_shared_quad_state, |
| 898 &contrib_delegated_shared_quad_state); | 898 &contrib_delegated_shared_quad_state); |
| 899 | 899 |
| 900 // When the layer owns a surface, then its position and translation are not | 900 // When the layer owns a surface, then its position and translation are not |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1105 }; | 1105 }; |
| 1106 | 1106 |
| 1107 TEST_F(DelegatedRendererLayerImplTestClip, | 1107 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1108 QuadsUnclipped_LayerUnclipped_NoSurface) { | 1108 QuadsUnclipped_LayerUnclipped_NoSurface) { |
| 1109 root_delegated_render_pass_is_clipped_ = false; | 1109 root_delegated_render_pass_is_clipped_ = false; |
| 1110 clip_delegated_renderer_layer_ = false; | 1110 clip_delegated_renderer_layer_ = false; |
| 1111 SetUpTest(); | 1111 SetUpTest(); |
| 1112 | 1112 |
| 1113 LayerTreeHostImpl::FrameData frame; | 1113 LayerTreeHostImpl::FrameData frame; |
| 1114 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1114 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1115 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1115 host_impl_->PrepareToDraw(&frame)); |
| 1116 | 1116 |
| 1117 ASSERT_EQ(2u, frame.render_passes.size()); | 1117 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1118 const QuadList& contrib_delegated_quad_list = | 1118 const QuadList& contrib_delegated_quad_list = |
| 1119 frame.render_passes[0]->quad_list; | 1119 frame.render_passes[0]->quad_list; |
| 1120 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1120 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1121 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1121 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1122 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1122 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1123 const SharedQuadState* root_delegated_shared_quad_state = | 1123 const SharedQuadState* root_delegated_shared_quad_state = |
| 1124 root_delegated_quad_list[0]->shared_quad_state; | 1124 root_delegated_quad_list[0]->shared_quad_state; |
| 1125 | 1125 |
| 1126 // When the quads don't have a clip of their own, the clip rect is set to | 1126 // When the quads don't have a clip of their own, the clip rect is set to |
| 1127 // the drawable_content_rect of the delegated renderer layer. | 1127 // the drawable_content_rect of the delegated renderer layer. |
| 1128 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), | 1128 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), |
| 1129 root_delegated_shared_quad_state->clip_rect.ToString()); | 1129 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1130 // Quads are clipped to the delegated renderer layer. | 1130 // Quads are clipped to the delegated renderer layer. |
| 1131 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1131 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1132 | 1132 |
| 1133 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1133 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 1134 host_impl_->DidDrawAllLayers(frame); | 1134 host_impl_->DidDrawAllLayers(frame); |
| 1135 } | 1135 } |
| 1136 | 1136 |
| 1137 TEST_F(DelegatedRendererLayerImplTestClip, | 1137 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1138 QuadsClipped_LayerUnclipped_NoSurface) { | 1138 QuadsClipped_LayerUnclipped_NoSurface) { |
| 1139 root_delegated_render_pass_is_clipped_ = true; | 1139 root_delegated_render_pass_is_clipped_ = true; |
| 1140 clip_delegated_renderer_layer_ = false; | 1140 clip_delegated_renderer_layer_ = false; |
| 1141 SetUpTest(); | 1141 SetUpTest(); |
| 1142 | 1142 |
| 1143 LayerTreeHostImpl::FrameData frame; | 1143 LayerTreeHostImpl::FrameData frame; |
| 1144 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1144 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1145 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1145 host_impl_->PrepareToDraw(&frame)); |
| 1146 | 1146 |
| 1147 ASSERT_EQ(2u, frame.render_passes.size()); | 1147 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1148 const QuadList& contrib_delegated_quad_list = | 1148 const QuadList& contrib_delegated_quad_list = |
| 1149 frame.render_passes[0]->quad_list; | 1149 frame.render_passes[0]->quad_list; |
| 1150 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1150 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1151 const QuadList& root_delegated_quad_list = | 1151 const QuadList& root_delegated_quad_list = |
| 1152 frame.render_passes[1]->quad_list; | 1152 frame.render_passes[1]->quad_list; |
| 1153 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1153 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1154 const SharedQuadState* root_delegated_shared_quad_state = | 1154 const SharedQuadState* root_delegated_shared_quad_state = |
| 1155 root_delegated_quad_list[0]->shared_quad_state; | 1155 root_delegated_quad_list[0]->shared_quad_state; |
| 1156 | 1156 |
| 1157 // When the quads have a clip of their own, it is used. | 1157 // When the quads have a clip of their own, it is used. |
| 1158 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), | 1158 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), |
| 1159 root_delegated_shared_quad_state->clip_rect.ToString()); | 1159 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1160 // Quads came with a clip rect. | 1160 // Quads came with a clip rect. |
| 1161 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1161 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1162 | 1162 |
| 1163 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1163 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 1164 host_impl_->DidDrawAllLayers(frame); | 1164 host_impl_->DidDrawAllLayers(frame); |
| 1165 } | 1165 } |
| 1166 | 1166 |
| 1167 TEST_F(DelegatedRendererLayerImplTestClip, | 1167 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1168 QuadsUnclipped_LayerClipped_NoSurface) { | 1168 QuadsUnclipped_LayerClipped_NoSurface) { |
| 1169 root_delegated_render_pass_is_clipped_ = false; | 1169 root_delegated_render_pass_is_clipped_ = false; |
| 1170 clip_delegated_renderer_layer_ = true; | 1170 clip_delegated_renderer_layer_ = true; |
| 1171 SetUpTest(); | 1171 SetUpTest(); |
| 1172 | 1172 |
| 1173 LayerTreeHostImpl::FrameData frame; | 1173 LayerTreeHostImpl::FrameData frame; |
| 1174 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1174 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1175 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1175 host_impl_->PrepareToDraw(&frame)); |
| 1176 | 1176 |
| 1177 ASSERT_EQ(2u, frame.render_passes.size()); | 1177 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1178 const QuadList& contrib_delegated_quad_list = | 1178 const QuadList& contrib_delegated_quad_list = |
| 1179 frame.render_passes[0]->quad_list; | 1179 frame.render_passes[0]->quad_list; |
| 1180 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1180 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1181 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1181 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1182 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1182 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1183 const SharedQuadState* root_delegated_shared_quad_state = | 1183 const SharedQuadState* root_delegated_shared_quad_state = |
| 1184 root_delegated_quad_list[0]->shared_quad_state; | 1184 root_delegated_quad_list[0]->shared_quad_state; |
| 1185 | 1185 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1196 } | 1196 } |
| 1197 | 1197 |
| 1198 TEST_F(DelegatedRendererLayerImplTestClip, | 1198 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1199 QuadsClipped_LayerClipped_NoSurface) { | 1199 QuadsClipped_LayerClipped_NoSurface) { |
| 1200 root_delegated_render_pass_is_clipped_ = true; | 1200 root_delegated_render_pass_is_clipped_ = true; |
| 1201 clip_delegated_renderer_layer_ = true; | 1201 clip_delegated_renderer_layer_ = true; |
| 1202 SetUpTest(); | 1202 SetUpTest(); |
| 1203 | 1203 |
| 1204 LayerTreeHostImpl::FrameData frame; | 1204 LayerTreeHostImpl::FrameData frame; |
| 1205 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1205 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1206 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1206 host_impl_->PrepareToDraw(&frame)); |
| 1207 | 1207 |
| 1208 ASSERT_EQ(2u, frame.render_passes.size()); | 1208 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1209 const QuadList& contrib_delegated_quad_list = | 1209 const QuadList& contrib_delegated_quad_list = |
| 1210 frame.render_passes[0]->quad_list; | 1210 frame.render_passes[0]->quad_list; |
| 1211 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1211 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1212 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1212 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1213 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1213 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1214 const SharedQuadState* root_delegated_shared_quad_state = | 1214 const SharedQuadState* root_delegated_shared_quad_state = |
| 1215 root_delegated_quad_list[0]->shared_quad_state; | 1215 root_delegated_quad_list[0]->shared_quad_state; |
| 1216 | 1216 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1228 TEST_F(DelegatedRendererLayerImplTestClip, | 1228 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1229 QuadsUnclipped_LayerUnclipped_Surface) { | 1229 QuadsUnclipped_LayerUnclipped_Surface) { |
| 1230 root_delegated_render_pass_is_clipped_ = false; | 1230 root_delegated_render_pass_is_clipped_ = false; |
| 1231 clip_delegated_renderer_layer_ = false; | 1231 clip_delegated_renderer_layer_ = false; |
| 1232 SetUpTest(); | 1232 SetUpTest(); |
| 1233 | 1233 |
| 1234 delegated_renderer_layer_->SetForceRenderSurface(true); | 1234 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1235 | 1235 |
| 1236 LayerTreeHostImpl::FrameData frame; | 1236 LayerTreeHostImpl::FrameData frame; |
| 1237 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1237 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1238 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1238 host_impl_->PrepareToDraw(&frame)); |
| 1239 | 1239 |
| 1240 ASSERT_EQ(3u, frame.render_passes.size()); | 1240 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1241 const QuadList& contrib_delegated_quad_list = | 1241 const QuadList& contrib_delegated_quad_list = |
| 1242 frame.render_passes[0]->quad_list; | 1242 frame.render_passes[0]->quad_list; |
| 1243 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1243 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1244 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1244 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1245 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1245 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1246 const SharedQuadState* root_delegated_shared_quad_state = | 1246 const SharedQuadState* root_delegated_shared_quad_state = |
| 1247 root_delegated_quad_list[0]->shared_quad_state; | 1247 root_delegated_quad_list[0]->shared_quad_state; |
| 1248 | 1248 |
| 1249 // When the layer owns a surface, the quads don't need to be clipped | 1249 // When the layer owns a surface, the quads don't need to be clipped |
| 1250 // further than they already specify. If they aren't clipped, then their | 1250 // further than they already specify. If they aren't clipped, then their |
| 1251 // clip rect is ignored, and they are not set as clipped. | 1251 // clip rect is ignored, and they are not set as clipped. |
| 1252 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1252 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1253 | 1253 |
| 1254 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1254 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 1255 host_impl_->DidDrawAllLayers(frame); | 1255 host_impl_->DidDrawAllLayers(frame); |
| 1256 } | 1256 } |
| 1257 | 1257 |
| 1258 TEST_F(DelegatedRendererLayerImplTestClip, | 1258 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1259 QuadsClipped_LayerUnclipped_Surface) { | 1259 QuadsClipped_LayerUnclipped_Surface) { |
| 1260 root_delegated_render_pass_is_clipped_ = true; | 1260 root_delegated_render_pass_is_clipped_ = true; |
| 1261 clip_delegated_renderer_layer_ = false; | 1261 clip_delegated_renderer_layer_ = false; |
| 1262 SetUpTest(); | 1262 SetUpTest(); |
| 1263 | 1263 |
| 1264 delegated_renderer_layer_->SetForceRenderSurface(true); | 1264 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1265 | 1265 |
| 1266 LayerTreeHostImpl::FrameData frame; | 1266 LayerTreeHostImpl::FrameData frame; |
| 1267 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1267 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1268 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1268 host_impl_->PrepareToDraw(&frame)); |
| 1269 | 1269 |
| 1270 ASSERT_EQ(3u, frame.render_passes.size()); | 1270 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1271 const QuadList& contrib_delegated_quad_list = | 1271 const QuadList& contrib_delegated_quad_list = |
| 1272 frame.render_passes[0]->quad_list; | 1272 frame.render_passes[0]->quad_list; |
| 1273 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1273 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1274 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1274 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1275 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1275 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1276 const SharedQuadState* root_delegated_shared_quad_state = | 1276 const SharedQuadState* root_delegated_shared_quad_state = |
| 1277 root_delegated_quad_list[0]->shared_quad_state; | 1277 root_delegated_quad_list[0]->shared_quad_state; |
| 1278 | 1278 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1289 TEST_F(DelegatedRendererLayerImplTestClip, | 1289 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1290 QuadsUnclipped_LayerClipped_Surface) { | 1290 QuadsUnclipped_LayerClipped_Surface) { |
| 1291 root_delegated_render_pass_is_clipped_ = false; | 1291 root_delegated_render_pass_is_clipped_ = false; |
| 1292 clip_delegated_renderer_layer_ = true; | 1292 clip_delegated_renderer_layer_ = true; |
| 1293 SetUpTest(); | 1293 SetUpTest(); |
| 1294 | 1294 |
| 1295 delegated_renderer_layer_->SetForceRenderSurface(true); | 1295 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1296 | 1296 |
| 1297 LayerTreeHostImpl::FrameData frame; | 1297 LayerTreeHostImpl::FrameData frame; |
| 1298 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1298 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1299 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1299 host_impl_->PrepareToDraw(&frame)); |
| 1300 | 1300 |
| 1301 ASSERT_EQ(3u, frame.render_passes.size()); | 1301 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1302 const QuadList& contrib_delegated_quad_list = | 1302 const QuadList& contrib_delegated_quad_list = |
| 1303 frame.render_passes[0]->quad_list; | 1303 frame.render_passes[0]->quad_list; |
| 1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1306 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1306 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1307 const SharedQuadState* root_delegated_shared_quad_state = | 1307 const SharedQuadState* root_delegated_shared_quad_state = |
| 1308 root_delegated_quad_list[0]->shared_quad_state; | 1308 root_delegated_quad_list[0]->shared_quad_state; |
| 1309 | 1309 |
| 1310 // When the layer owns a surface, the quads don't need to be clipped | 1310 // When the layer owns a surface, the quads don't need to be clipped |
| 1311 // further than they already specify. If they aren't clipped, then their | 1311 // further than they already specify. If they aren't clipped, then their |
| 1312 // clip rect is ignored, and they are not set as clipped. | 1312 // clip rect is ignored, and they are not set as clipped. |
| 1313 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1313 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1314 | 1314 |
| 1315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1315 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 1316 host_impl_->DidDrawAllLayers(frame); | 1316 host_impl_->DidDrawAllLayers(frame); |
| 1317 } | 1317 } |
| 1318 | 1318 |
| 1319 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { | 1319 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { |
| 1320 root_delegated_render_pass_is_clipped_ = true; | 1320 root_delegated_render_pass_is_clipped_ = true; |
| 1321 clip_delegated_renderer_layer_ = true; | 1321 clip_delegated_renderer_layer_ = true; |
| 1322 SetUpTest(); | 1322 SetUpTest(); |
| 1323 | 1323 |
| 1324 delegated_renderer_layer_->SetForceRenderSurface(true); | 1324 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1325 | 1325 |
| 1326 LayerTreeHostImpl::FrameData frame; | 1326 LayerTreeHostImpl::FrameData frame; |
| 1327 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1327 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1328 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1328 host_impl_->PrepareToDraw(&frame)); |
| 1329 | 1329 |
| 1330 ASSERT_EQ(3u, frame.render_passes.size()); | 1330 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1331 const QuadList& contrib_delegated_quad_list = | 1331 const QuadList& contrib_delegated_quad_list = |
| 1332 frame.render_passes[0]->quad_list; | 1332 frame.render_passes[0]->quad_list; |
| 1333 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1333 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1334 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1334 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1335 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1335 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1336 const SharedQuadState* root_delegated_shared_quad_state = | 1336 const SharedQuadState* root_delegated_shared_quad_state = |
| 1337 root_delegated_quad_list[0]->shared_quad_state; | 1337 root_delegated_quad_list[0]->shared_quad_state; |
| 1338 | 1338 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1383 &delegated_render_passes); | 1383 &delegated_render_passes); |
| 1384 | 1384 |
| 1385 // The RenderPasses should be taken by the layer. | 1385 // The RenderPasses should be taken by the layer. |
| 1386 EXPECT_EQ(0u, delegated_render_passes.size()); | 1386 EXPECT_EQ(0u, delegated_render_passes.size()); |
| 1387 | 1387 |
| 1388 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); | 1388 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); |
| 1389 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 1389 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 1390 | 1390 |
| 1391 LayerTreeHostImpl::FrameData frame; | 1391 LayerTreeHostImpl::FrameData frame; |
| 1392 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, | 1392 EXPECT_EQ(DrawSwapReadbackResult::DRAW_SUCCESS, |
| 1393 host_impl_->PrepareToDraw(&frame, gfx::Rect())); | 1393 host_impl_->PrepareToDraw(&frame)); |
| 1394 | 1394 |
| 1395 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. | 1395 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. |
| 1396 ASSERT_EQ(1u, frame.render_passes.size()); | 1396 ASSERT_EQ(1u, frame.render_passes.size()); |
| 1397 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 1397 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
| 1398 EXPECT_EQ(DrawQuad::SOLID_COLOR, | 1398 EXPECT_EQ(DrawQuad::SOLID_COLOR, |
| 1399 frame.render_passes[0]->quad_list[0]->material); | 1399 frame.render_passes[0]->quad_list[0]->material); |
| 1400 | 1400 |
| 1401 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1401 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 1402 host_impl_->DidDrawAllLayers(frame); | 1402 host_impl_->DidDrawAllLayers(frame); |
| 1403 } | 1403 } |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1531 // The occlusion extends to 500 in the x-axis, pushing the left of the | 1531 // The occlusion extends to 500 in the x-axis, pushing the left of the |
| 1532 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. | 1532 // visible part of the quad to 500 - 211 = 300 - 11 inside the quad. |
| 1533 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), | 1533 EXPECT_EQ(gfx::Rect(300 - 11, 0, 100 + 11, 500).ToString(), |
| 1534 impl.quad_list()[0]->visible_rect.ToString()); | 1534 impl.quad_list()[0]->visible_rect.ToString()); |
| 1535 } | 1535 } |
| 1536 } | 1536 } |
| 1537 } | 1537 } |
| 1538 | 1538 |
| 1539 } // namespace | 1539 } // namespace |
| 1540 } // namespace cc | 1540 } // namespace cc |
| OLD | NEW |