| 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/layers/solid_color_layer_impl.h" | 7 #include "cc/layers/solid_color_layer_impl.h" |
| 8 #include "cc/quads/render_pass_draw_quad.h" | 8 #include "cc/quads/render_pass_draw_quad.h" |
| 9 #include "cc/quads/solid_color_draw_quad.h" | 9 #include "cc/quads/solid_color_draw_quad.h" |
| 10 #include "cc/test/fake_delegated_renderer_layer_impl.h" | 10 #include "cc/test/fake_delegated_renderer_layer_impl.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 69 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); |
| 70 scoped_ptr<LayerImpl> layer_before = | 70 scoped_ptr<LayerImpl> layer_before = |
| 71 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); | 71 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); |
| 72 scoped_ptr<LayerImpl> layer_after = | 72 scoped_ptr<LayerImpl> layer_after = |
| 73 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3); | 73 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3); |
| 74 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 74 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 75 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); | 75 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); |
| 76 | 76 |
| 77 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 77 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
| 78 root_layer->SetBounds(gfx::Size(100, 100)); | 78 root_layer->SetBounds(gfx::Size(100, 100)); |
| 79 root_layer->SetHasRenderSurface(true); | 79 root_layer->SetForceRenderSurface(true); |
| 80 | 80 |
| 81 layer_before->SetPosition(gfx::PointF(20.f, 20.f)); | 81 layer_before->SetPosition(gfx::PointF(20.f, 20.f)); |
| 82 layer_before->SetBounds(gfx::Size(14, 14)); | 82 layer_before->SetBounds(gfx::Size(14, 14)); |
| 83 layer_before->SetDrawsContent(true); | 83 layer_before->SetDrawsContent(true); |
| 84 layer_before->SetHasRenderSurface(true); | 84 layer_before->SetForceRenderSurface(true); |
| 85 | 85 |
| 86 layer_after->SetPosition(gfx::PointF(5.f, 5.f)); | 86 layer_after->SetPosition(gfx::PointF(5.f, 5.f)); |
| 87 layer_after->SetBounds(gfx::Size(15, 15)); | 87 layer_after->SetBounds(gfx::Size(15, 15)); |
| 88 layer_after->SetDrawsContent(true); | 88 layer_after->SetDrawsContent(true); |
| 89 layer_after->SetHasRenderSurface(true); | 89 layer_after->SetForceRenderSurface(true); |
| 90 | 90 |
| 91 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); | 91 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); |
| 92 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 92 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
| 93 delegated_renderer_layer->SetDrawsContent(true); | 93 delegated_renderer_layer->SetDrawsContent(true); |
| 94 gfx::Transform transform; | 94 gfx::Transform transform; |
| 95 transform.Translate(1.0, 1.0); | 95 transform.Translate(1.0, 1.0); |
| 96 delegated_renderer_layer->SetTransform(transform); | 96 delegated_renderer_layer->SetTransform(transform); |
| 97 | 97 |
| 98 RenderPassList delegated_render_passes; | 98 RenderPassList delegated_render_passes; |
| 99 RenderPass* pass1 = | 99 RenderPass* pass1 = |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 ChangeContributingRenderPassForNewFrame) { | 139 ChangeContributingRenderPassForNewFrame) { |
| 140 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl; | 140 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl; |
| 141 { | 141 { |
| 142 scoped_ptr<LayerImpl> root_layer = | 142 scoped_ptr<LayerImpl> root_layer = |
| 143 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 143 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); |
| 144 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 144 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 145 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 145 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
| 146 | 146 |
| 147 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 147 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
| 148 root_layer->SetBounds(gfx::Size(100, 100)); | 148 root_layer->SetBounds(gfx::Size(100, 100)); |
| 149 root_layer->SetHasRenderSurface(true); | 149 root_layer->SetForceRenderSurface(true); |
| 150 | 150 |
| 151 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); | 151 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); |
| 152 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 152 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
| 153 delegated_renderer_layer->SetDrawsContent(true); | 153 delegated_renderer_layer->SetDrawsContent(true); |
| 154 delegated_renderer_layer->SetHasRenderSurface(true); | 154 delegated_renderer_layer->SetForceRenderSurface(true); |
| 155 gfx::Transform transform; | 155 gfx::Transform transform; |
| 156 transform.Translate(1.0, 1.0); | 156 transform.Translate(1.0, 1.0); |
| 157 delegated_renderer_layer->SetTransform(transform); | 157 delegated_renderer_layer->SetTransform(transform); |
| 158 | 158 |
| 159 RenderPassList delegated_render_passes; | 159 RenderPassList delegated_render_passes; |
| 160 RenderPass* pass1 = | 160 RenderPass* pass1 = |
| 161 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), | 161 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), |
| 162 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); | 162 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); |
| 163 AddQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); | 163 AddQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); |
| 164 RenderPass* pass2 = | 164 RenderPass* pass2 = |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl; | 218 FakeDelegatedRendererLayerImpl* fake_delegated_renderer_layer_impl; |
| 219 { | 219 { |
| 220 host_impl_->CreatePendingTree(); | 220 host_impl_->CreatePendingTree(); |
| 221 scoped_ptr<LayerImpl> root_layer = | 221 scoped_ptr<LayerImpl> root_layer = |
| 222 SolidColorLayerImpl::Create(host_impl_->pending_tree(), 1); | 222 SolidColorLayerImpl::Create(host_impl_->pending_tree(), 1); |
| 223 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 223 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 224 FakeDelegatedRendererLayerImpl::Create(host_impl_->pending_tree(), 2); | 224 FakeDelegatedRendererLayerImpl::Create(host_impl_->pending_tree(), 2); |
| 225 | 225 |
| 226 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 226 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
| 227 root_layer->SetBounds(gfx::Size(100, 100)); | 227 root_layer->SetBounds(gfx::Size(100, 100)); |
| 228 root_layer->SetHasRenderSurface(true); | 228 root_layer->SetForceRenderSurface(true); |
| 229 | 229 |
| 230 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); | 230 delegated_renderer_layer->SetPosition(gfx::PointF(3.f, 3.f)); |
| 231 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 231 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
| 232 delegated_renderer_layer->SetDrawsContent(true); | 232 delegated_renderer_layer->SetDrawsContent(true); |
| 233 delegated_renderer_layer->SetHasRenderSurface(true); | 233 delegated_renderer_layer->SetForceRenderSurface(true); |
| 234 gfx::Transform transform; | 234 gfx::Transform transform; |
| 235 transform.Translate(1.0, 1.0); | 235 transform.Translate(1.0, 1.0); |
| 236 delegated_renderer_layer->SetTransform(transform); | 236 delegated_renderer_layer->SetTransform(transform); |
| 237 | 237 |
| 238 RenderPassList delegated_render_passes; | 238 RenderPassList delegated_render_passes; |
| 239 RenderPass* pass1 = | 239 RenderPass* pass1 = |
| 240 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), | 240 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), |
| 241 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); | 241 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); |
| 242 AddQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); | 242 AddQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); |
| 243 RenderPass* pass2 = | 243 RenderPass* pass2 = |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 | 462 |
| 463 host_impl_->DrawLayers(&frame); | 463 host_impl_->DrawLayers(&frame); |
| 464 host_impl_->DidDrawAllLayers(frame); | 464 host_impl_->DidDrawAllLayers(frame); |
| 465 } | 465 } |
| 466 | 466 |
| 467 class DelegatedRendererLayerImplTestOwnSurface | 467 class DelegatedRendererLayerImplTestOwnSurface |
| 468 : public DelegatedRendererLayerImplTestSimple { | 468 : public DelegatedRendererLayerImplTestSimple { |
| 469 public: | 469 public: |
| 470 DelegatedRendererLayerImplTestOwnSurface() | 470 DelegatedRendererLayerImplTestOwnSurface() |
| 471 : DelegatedRendererLayerImplTestSimple() { | 471 : DelegatedRendererLayerImplTestSimple() { |
| 472 delegated_renderer_layer_->SetHasRenderSurface(true); | 472 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 473 } | 473 } |
| 474 }; | 474 }; |
| 475 | 475 |
| 476 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { | 476 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { |
| 477 LayerTreeHostImpl::FrameData frame; | 477 LayerTreeHostImpl::FrameData frame; |
| 478 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 478 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 479 | 479 |
| 480 // Each non-DelegatedRendererLayer added one RenderPass. The | 480 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 481 // DelegatedRendererLayer added two contributing passes and its owned surface | 481 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 482 // added one pass. | 482 // added one pass. |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 void SetUpTest() { | 622 void SetUpTest() { |
| 623 host_impl_->active_tree()->SetDeviceScaleFactor(2.f); | 623 host_impl_->active_tree()->SetDeviceScaleFactor(2.f); |
| 624 | 624 |
| 625 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( | 625 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( |
| 626 host_impl_->active_tree(), 1); | 626 host_impl_->active_tree(), 1); |
| 627 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 627 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 628 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 628 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
| 629 | 629 |
| 630 host_impl_->SetViewportSize(gfx::Size(200, 200)); | 630 host_impl_->SetViewportSize(gfx::Size(200, 200)); |
| 631 root_layer->SetBounds(gfx::Size(100, 100)); | 631 root_layer->SetBounds(gfx::Size(100, 100)); |
| 632 root_layer->SetHasRenderSurface(true); | 632 root_layer->SetForceRenderSurface(true); |
| 633 | 633 |
| 634 delegated_renderer_layer->SetPosition(gfx::PointF(20.f, 20.f)); | 634 delegated_renderer_layer->SetPosition(gfx::PointF(20.f, 20.f)); |
| 635 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); | 635 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); |
| 636 delegated_renderer_layer->SetDrawsContent(true); | 636 delegated_renderer_layer->SetDrawsContent(true); |
| 637 gfx::Transform transform; | 637 gfx::Transform transform; |
| 638 transform.Scale(2.0, 2.0); | 638 transform.Scale(2.0, 2.0); |
| 639 transform.Translate(8.0, 8.0); | 639 transform.Translate(8.0, 8.0); |
| 640 delegated_renderer_layer->SetTransform(transform); | 640 delegated_renderer_layer->SetTransform(transform); |
| 641 | 641 |
| 642 RenderPassList delegated_render_passes; | 642 RenderPassList delegated_render_passes; |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 903 expected, contrib_delegated_shared_quad_state->quad_to_target_transform); | 903 expected, contrib_delegated_shared_quad_state->quad_to_target_transform); |
| 904 | 904 |
| 905 host_impl_->DrawLayers(&frame); | 905 host_impl_->DrawLayers(&frame); |
| 906 host_impl_->DidDrawAllLayers(frame); | 906 host_impl_->DidDrawAllLayers(frame); |
| 907 } | 907 } |
| 908 | 908 |
| 909 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { | 909 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { |
| 910 root_delegated_render_pass_is_clipped_ = false; | 910 root_delegated_render_pass_is_clipped_ = false; |
| 911 SetUpTest(); | 911 SetUpTest(); |
| 912 | 912 |
| 913 delegated_renderer_layer_->SetHasRenderSurface(true); | 913 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 914 | 914 |
| 915 LayerTreeHostImpl::FrameData frame; | 915 LayerTreeHostImpl::FrameData frame; |
| 916 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 916 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 917 | 917 |
| 918 const SharedQuadState* root_delegated_shared_quad_state = nullptr; | 918 const SharedQuadState* root_delegated_shared_quad_state = nullptr; |
| 919 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; | 919 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; |
| 920 VerifyRenderPasses( | 920 VerifyRenderPasses( |
| 921 frame, | 921 frame, |
| 922 3, | 922 3, |
| 923 &root_delegated_shared_quad_state, | 923 &root_delegated_shared_quad_state, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 951 expected, contrib_delegated_shared_quad_state->quad_to_target_transform); | 951 expected, contrib_delegated_shared_quad_state->quad_to_target_transform); |
| 952 | 952 |
| 953 host_impl_->DrawLayers(&frame); | 953 host_impl_->DrawLayers(&frame); |
| 954 host_impl_->DidDrawAllLayers(frame); | 954 host_impl_->DidDrawAllLayers(frame); |
| 955 } | 955 } |
| 956 | 956 |
| 957 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { | 957 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { |
| 958 root_delegated_render_pass_is_clipped_ = true; | 958 root_delegated_render_pass_is_clipped_ = true; |
| 959 SetUpTest(); | 959 SetUpTest(); |
| 960 | 960 |
| 961 delegated_renderer_layer_->SetHasRenderSurface(true); | 961 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 962 | 962 |
| 963 LayerTreeHostImpl::FrameData frame; | 963 LayerTreeHostImpl::FrameData frame; |
| 964 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 964 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 965 | 965 |
| 966 const SharedQuadState* root_delegated_shared_quad_state = nullptr; | 966 const SharedQuadState* root_delegated_shared_quad_state = nullptr; |
| 967 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; | 967 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; |
| 968 VerifyRenderPasses( | 968 VerifyRenderPasses( |
| 969 frame, | 969 frame, |
| 970 3, | 970 3, |
| 971 &root_delegated_shared_quad_state, | 971 &root_delegated_shared_quad_state, |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1048 LayerImpl::Create(host_impl_->active_tree(), 1); | 1048 LayerImpl::Create(host_impl_->active_tree(), 1); |
| 1049 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 1049 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 1050 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 1050 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
| 1051 scoped_ptr<LayerImpl> clip_layer = | 1051 scoped_ptr<LayerImpl> clip_layer = |
| 1052 LayerImpl::Create(host_impl_->active_tree(), 3); | 1052 LayerImpl::Create(host_impl_->active_tree(), 3); |
| 1053 scoped_ptr<LayerImpl> origin_layer = | 1053 scoped_ptr<LayerImpl> origin_layer = |
| 1054 LayerImpl::Create(host_impl_->active_tree(), 4); | 1054 LayerImpl::Create(host_impl_->active_tree(), 4); |
| 1055 | 1055 |
| 1056 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 1056 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
| 1057 root_layer->SetBounds(gfx::Size(100, 100)); | 1057 root_layer->SetBounds(gfx::Size(100, 100)); |
| 1058 root_layer->SetHasRenderSurface(true); | 1058 root_layer->SetForceRenderSurface(true); |
| 1059 | 1059 |
| 1060 delegated_renderer_layer->SetPosition(gfx::PointF(20.f, 20.f)); | 1060 delegated_renderer_layer->SetPosition(gfx::PointF(20.f, 20.f)); |
| 1061 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); | 1061 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); |
| 1062 delegated_renderer_layer->SetDrawsContent(true); | 1062 delegated_renderer_layer->SetDrawsContent(true); |
| 1063 | 1063 |
| 1064 RenderPassList delegated_render_passes; | 1064 RenderPassList delegated_render_passes; |
| 1065 | 1065 |
| 1066 gfx::Size child_pass_bounds(7, 7); | 1066 gfx::Size child_pass_bounds(7, 7); |
| 1067 gfx::Rect child_pass_rect(20, 20, 7, 7); | 1067 gfx::Rect child_pass_rect(20, 20, 7, 7); |
| 1068 gfx::Transform child_pass_transform; | 1068 gfx::Transform child_pass_transform; |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1305 host_impl_->DrawLayers(&frame); | 1305 host_impl_->DrawLayers(&frame); |
| 1306 host_impl_->DidDrawAllLayers(frame); | 1306 host_impl_->DidDrawAllLayers(frame); |
| 1307 } | 1307 } |
| 1308 | 1308 |
| 1309 TEST_F(DelegatedRendererLayerImplTestClip, | 1309 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1310 QuadsUnclipped_LayerUnclipped_Surface) { | 1310 QuadsUnclipped_LayerUnclipped_Surface) { |
| 1311 root_delegated_render_pass_is_clipped_ = false; | 1311 root_delegated_render_pass_is_clipped_ = false; |
| 1312 clip_delegated_renderer_layer_ = false; | 1312 clip_delegated_renderer_layer_ = false; |
| 1313 SetUpTest(); | 1313 SetUpTest(); |
| 1314 | 1314 |
| 1315 delegated_renderer_layer_->SetHasRenderSurface(true); | 1315 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1316 | 1316 |
| 1317 LayerTreeHostImpl::FrameData frame; | 1317 LayerTreeHostImpl::FrameData frame; |
| 1318 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 1318 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 1319 | 1319 |
| 1320 ASSERT_EQ(3u, frame.render_passes.size()); | 1320 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1321 const QuadList& contrib_delegated_quad_list = | 1321 const QuadList& contrib_delegated_quad_list = |
| 1322 frame.render_passes[0]->quad_list; | 1322 frame.render_passes[0]->quad_list; |
| 1323 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1323 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1324 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1324 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1325 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1325 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1326 const SharedQuadState* root_delegated_shared_quad_state = | 1326 const SharedQuadState* root_delegated_shared_quad_state = |
| 1327 root_delegated_quad_list.front()->shared_quad_state; | 1327 root_delegated_quad_list.front()->shared_quad_state; |
| 1328 | 1328 |
| 1329 // When the layer owns a surface, the quads don't need to be clipped | 1329 // When the layer owns a surface, the quads don't need to be clipped |
| 1330 // further than they already specify. If they aren't clipped, then their | 1330 // further than they already specify. If they aren't clipped, then their |
| 1331 // clip rect is ignored, and they are not set as clipped. | 1331 // clip rect is ignored, and they are not set as clipped. |
| 1332 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1332 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1333 | 1333 |
| 1334 host_impl_->DrawLayers(&frame); | 1334 host_impl_->DrawLayers(&frame); |
| 1335 host_impl_->DidDrawAllLayers(frame); | 1335 host_impl_->DidDrawAllLayers(frame); |
| 1336 } | 1336 } |
| 1337 | 1337 |
| 1338 TEST_F(DelegatedRendererLayerImplTestClip, | 1338 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1339 QuadsClipped_LayerUnclipped_Surface) { | 1339 QuadsClipped_LayerUnclipped_Surface) { |
| 1340 root_delegated_render_pass_is_clipped_ = true; | 1340 root_delegated_render_pass_is_clipped_ = true; |
| 1341 clip_delegated_renderer_layer_ = false; | 1341 clip_delegated_renderer_layer_ = false; |
| 1342 SetUpTest(); | 1342 SetUpTest(); |
| 1343 | 1343 |
| 1344 delegated_renderer_layer_->SetHasRenderSurface(true); | 1344 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1345 | 1345 |
| 1346 LayerTreeHostImpl::FrameData frame; | 1346 LayerTreeHostImpl::FrameData frame; |
| 1347 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 1347 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 1348 | 1348 |
| 1349 ASSERT_EQ(3u, frame.render_passes.size()); | 1349 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1350 const QuadList& contrib_delegated_quad_list = | 1350 const QuadList& contrib_delegated_quad_list = |
| 1351 frame.render_passes[0]->quad_list; | 1351 frame.render_passes[0]->quad_list; |
| 1352 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1352 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1353 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1353 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1354 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1354 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1355 const SharedQuadState* root_delegated_shared_quad_state = | 1355 const SharedQuadState* root_delegated_shared_quad_state = |
| 1356 root_delegated_quad_list.front()->shared_quad_state; | 1356 root_delegated_quad_list.front()->shared_quad_state; |
| 1357 | 1357 |
| 1358 // When the quads have a clip of their own, it is used. | 1358 // When the quads have a clip of their own, it is used. |
| 1359 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1359 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
| 1360 root_delegated_shared_quad_state->clip_rect.ToString()); | 1360 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1361 // Quads came with a clip rect. | 1361 // Quads came with a clip rect. |
| 1362 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1362 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1363 | 1363 |
| 1364 host_impl_->DrawLayers(&frame); | 1364 host_impl_->DrawLayers(&frame); |
| 1365 host_impl_->DidDrawAllLayers(frame); | 1365 host_impl_->DidDrawAllLayers(frame); |
| 1366 } | 1366 } |
| 1367 | 1367 |
| 1368 TEST_F(DelegatedRendererLayerImplTestClip, | 1368 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1369 QuadsUnclipped_LayerClipped_Surface) { | 1369 QuadsUnclipped_LayerClipped_Surface) { |
| 1370 root_delegated_render_pass_is_clipped_ = false; | 1370 root_delegated_render_pass_is_clipped_ = false; |
| 1371 clip_delegated_renderer_layer_ = true; | 1371 clip_delegated_renderer_layer_ = true; |
| 1372 SetUpTest(); | 1372 SetUpTest(); |
| 1373 | 1373 |
| 1374 delegated_renderer_layer_->SetHasRenderSurface(true); | 1374 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1375 | 1375 |
| 1376 LayerTreeHostImpl::FrameData frame; | 1376 LayerTreeHostImpl::FrameData frame; |
| 1377 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 1377 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 1378 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 1378 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 1379 | 1379 |
| 1380 ASSERT_EQ(3u, frame.render_passes.size()); | 1380 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1381 const QuadList& contrib_delegated_quad_list = | 1381 const QuadList& contrib_delegated_quad_list = |
| 1382 frame.render_passes[0]->quad_list; | 1382 frame.render_passes[0]->quad_list; |
| 1383 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1383 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1384 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1384 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1385 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1385 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1386 const SharedQuadState* root_delegated_shared_quad_state = | 1386 const SharedQuadState* root_delegated_shared_quad_state = |
| 1387 root_delegated_quad_list.front()->shared_quad_state; | 1387 root_delegated_quad_list.front()->shared_quad_state; |
| 1388 | 1388 |
| 1389 // When the layer owns a surface, the quads don't need to be clipped | 1389 // When the layer owns a surface, the quads don't need to be clipped |
| 1390 // further than they already specify. If they aren't clipped, then their | 1390 // further than they already specify. If they aren't clipped, then their |
| 1391 // clip rect is ignored, and they are not set as clipped. | 1391 // clip rect is ignored, and they are not set as clipped. |
| 1392 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1392 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1393 | 1393 |
| 1394 host_impl_->DrawLayers(&frame); | 1394 host_impl_->DrawLayers(&frame); |
| 1395 host_impl_->DidDrawAllLayers(frame); | 1395 host_impl_->DidDrawAllLayers(frame); |
| 1396 } | 1396 } |
| 1397 | 1397 |
| 1398 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { | 1398 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { |
| 1399 root_delegated_render_pass_is_clipped_ = true; | 1399 root_delegated_render_pass_is_clipped_ = true; |
| 1400 clip_delegated_renderer_layer_ = true; | 1400 clip_delegated_renderer_layer_ = true; |
| 1401 SetUpTest(); | 1401 SetUpTest(); |
| 1402 | 1402 |
| 1403 delegated_renderer_layer_->SetHasRenderSurface(true); | 1403 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1404 | 1404 |
| 1405 LayerTreeHostImpl::FrameData frame; | 1405 LayerTreeHostImpl::FrameData frame; |
| 1406 host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 1406 host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
| 1407 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 1407 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
| 1408 | 1408 |
| 1409 ASSERT_EQ(3u, frame.render_passes.size()); | 1409 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1410 const QuadList& contrib_delegated_quad_list = | 1410 const QuadList& contrib_delegated_quad_list = |
| 1411 frame.render_passes[0]->quad_list; | 1411 frame.render_passes[0]->quad_list; |
| 1412 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1412 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1413 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1413 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1676 scoped_ptr<DelegatedRendererLayerImpl> other_layer = | 1676 scoped_ptr<DelegatedRendererLayerImpl> other_layer = |
| 1677 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); | 1677 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); |
| 1678 | 1678 |
| 1679 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); | 1679 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); |
| 1680 | 1680 |
| 1681 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); | 1681 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); |
| 1682 } | 1682 } |
| 1683 | 1683 |
| 1684 } // namespace | 1684 } // namespace |
| 1685 } // namespace cc | 1685 } // namespace cc |
| OLD | NEW |