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 |