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/solid_color_layer_impl.h" | 8 #include "cc/layers/solid_color_layer_impl.h" |
9 #include "cc/quads/render_pass_draw_quad.h" | 9 #include "cc/quads/render_pass_draw_quad.h" |
10 #include "cc/quads/solid_color_draw_quad.h" | 10 #include "cc/quads/solid_color_draw_quad.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
62 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); | 62 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); |
63 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create( | 63 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create( |
64 host_impl_->active_tree(), 2).PassAs<LayerImpl>(); | 64 host_impl_->active_tree(), 2).PassAs<LayerImpl>(); |
65 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create( | 65 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create( |
66 host_impl_->active_tree(), 3).PassAs<LayerImpl>(); | 66 host_impl_->active_tree(), 3).PassAs<LayerImpl>(); |
67 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 67 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
68 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); | 68 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); |
69 | 69 |
70 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 70 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
71 root_layer->SetBounds(gfx::Size(100, 100)); | 71 root_layer->SetBounds(gfx::Size(100, 100)); |
72 root_layer->CreateRenderSurface(); | |
72 | 73 |
73 layer_before->SetPosition(gfx::Point(20, 20)); | 74 layer_before->SetPosition(gfx::Point(20, 20)); |
74 layer_before->SetBounds(gfx::Size(14, 14)); | 75 layer_before->SetBounds(gfx::Size(14, 14)); |
75 layer_before->SetContentBounds(gfx::Size(14, 14)); | 76 layer_before->SetContentBounds(gfx::Size(14, 14)); |
76 layer_before->SetDrawsContent(true); | 77 layer_before->SetDrawsContent(true); |
77 layer_before->SetForceRenderSurface(true); | 78 layer_before->CreateRenderSurface(); |
78 | 79 |
79 layer_after->SetPosition(gfx::Point(5, 5)); | 80 layer_after->SetPosition(gfx::Point(5, 5)); |
80 layer_after->SetBounds(gfx::Size(15, 15)); | 81 layer_after->SetBounds(gfx::Size(15, 15)); |
81 layer_after->SetContentBounds(gfx::Size(15, 15)); | 82 layer_after->SetContentBounds(gfx::Size(15, 15)); |
82 layer_after->SetDrawsContent(true); | 83 layer_after->SetDrawsContent(true); |
83 layer_after->SetForceRenderSurface(true); | 84 layer_after->CreateRenderSurface(); |
84 | 85 |
85 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); | 86 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); |
86 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 87 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
87 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); | 88 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); |
88 delegated_renderer_layer->SetDrawsContent(true); | 89 delegated_renderer_layer->SetDrawsContent(true); |
89 gfx::Transform transform; | 90 gfx::Transform transform; |
90 transform.Translate(1.0, 1.0); | 91 transform.Translate(1.0, 1.0); |
91 delegated_renderer_layer->SetTransform(transform); | 92 delegated_renderer_layer->SetTransform(transform); |
92 | 93 |
93 RenderPassList delegated_render_passes; | 94 RenderPassList delegated_render_passes; |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
287 | 288 |
288 EXPECT_TRANSFORMATION_MATRIX_EQ( | 289 EXPECT_TRANSFORMATION_MATRIX_EQ( |
289 transform * five_six, frame.render_passes[1]->transform_to_root_target); | 290 transform * five_six, frame.render_passes[1]->transform_to_root_target); |
290 EXPECT_TRANSFORMATION_MATRIX_EQ( | 291 EXPECT_TRANSFORMATION_MATRIX_EQ( |
291 transform * seven_eight, | 292 transform * seven_eight, |
292 frame.render_passes[2]->transform_to_root_target); | 293 frame.render_passes[2]->transform_to_root_target); |
293 | 294 |
294 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); | 295 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); |
295 host_impl_->DidDrawAllLayers(frame); | 296 host_impl_->DidDrawAllLayers(frame); |
296 } | 297 } |
297 | 298 |
awoloszyn
2014/08/25 21:03:43
These tests were moved to main-thread where we now
| |
298 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { | |
299 LayerTreeHostImpl::FrameData frame; | |
300 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | |
301 | |
302 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it | |
303 // has no need to be a RenderSurface for the quads it carries. | |
304 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); | |
305 | |
306 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | |
307 host_impl_->DidDrawAllLayers(frame); | |
308 } | |
309 | |
310 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { | |
311 delegated_renderer_layer_->SetOpacity(0.5f); | |
312 | |
313 LayerTreeHostImpl::FrameData frame; | |
314 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | |
315 host_impl_->active_tree()->root_layer()); | |
316 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | |
317 | |
318 // This test case has quads from multiple layers in the delegated renderer, so | |
319 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | |
320 // render surface. | |
321 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | |
322 | |
323 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | |
324 host_impl_->DidDrawAllLayers(frame); | |
325 } | |
326 | |
327 TEST_F(DelegatedRendererLayerImplTestSimple, | |
328 DoesOwnARenderSurfaceForTransform) { | |
329 gfx::Transform rotation; | |
330 rotation.RotateAboutZAxis(30.0); | |
331 delegated_renderer_layer_->SetTransform(rotation); | |
332 | |
333 LayerTreeHostImpl::FrameData frame; | |
334 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | |
335 host_impl_->active_tree()->root_layer()); | |
336 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | |
337 | |
338 // This test case has quads from multiple layers in the delegated renderer, so | |
339 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | |
340 // render surface. | |
341 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | |
342 | |
343 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | |
344 host_impl_->DidDrawAllLayers(frame); | |
345 } | |
346 | |
347 class DelegatedRendererLayerImplTestOwnSurface | 299 class DelegatedRendererLayerImplTestOwnSurface |
348 : public DelegatedRendererLayerImplTestSimple { | 300 : public DelegatedRendererLayerImplTestSimple { |
349 public: | 301 public: |
350 DelegatedRendererLayerImplTestOwnSurface() | 302 DelegatedRendererLayerImplTestOwnSurface() |
351 : DelegatedRendererLayerImplTestSimple() { | 303 : DelegatedRendererLayerImplTestSimple() { |
352 delegated_renderer_layer_->SetForceRenderSurface(true); | 304 delegated_renderer_layer_->CreateRenderSurface(); |
353 } | 305 } |
354 }; | 306 }; |
355 | 307 |
356 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { | 308 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { |
357 LayerTreeHostImpl::FrameData frame; | 309 LayerTreeHostImpl::FrameData frame; |
358 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 310 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
359 | 311 |
360 // Each non-DelegatedRendererLayer added one RenderPass. The | 312 // Each non-DelegatedRendererLayer added one RenderPass. The |
361 // DelegatedRendererLayer added two contributing passes and its owned surface | 313 // DelegatedRendererLayer added two contributing passes and its owned surface |
362 // added one pass. | 314 // added one pass. |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
492 void SetUpTest() { | 444 void SetUpTest() { |
493 host_impl_->SetDeviceScaleFactor(2.f); | 445 host_impl_->SetDeviceScaleFactor(2.f); |
494 | 446 |
495 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( | 447 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( |
496 host_impl_->active_tree(), 1); | 448 host_impl_->active_tree(), 1); |
497 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 449 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
498 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 450 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
499 | 451 |
500 host_impl_->SetViewportSize(gfx::Size(200, 200)); | 452 host_impl_->SetViewportSize(gfx::Size(200, 200)); |
501 root_layer->SetBounds(gfx::Size(100, 100)); | 453 root_layer->SetBounds(gfx::Size(100, 100)); |
454 root_layer->CreateRenderSurface(); | |
502 | 455 |
503 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 456 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
504 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); | 457 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); |
505 delegated_renderer_layer->SetContentBounds(gfx::Size(75, 75)); | 458 delegated_renderer_layer->SetContentBounds(gfx::Size(75, 75)); |
506 delegated_renderer_layer->SetDrawsContent(true); | 459 delegated_renderer_layer->SetDrawsContent(true); |
507 gfx::Transform transform; | 460 gfx::Transform transform; |
508 transform.Scale(2.0, 2.0); | 461 transform.Scale(2.0, 2.0); |
509 transform.Translate(8.0, 8.0); | 462 transform.Translate(8.0, 8.0); |
510 delegated_renderer_layer->SetTransform(transform); | 463 delegated_renderer_layer->SetTransform(transform); |
511 | 464 |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
787 contrib_delegated_shared_quad_state->content_to_target_transform); | 740 contrib_delegated_shared_quad_state->content_to_target_transform); |
788 | 741 |
789 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 742 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
790 host_impl_->DidDrawAllLayers(frame); | 743 host_impl_->DidDrawAllLayers(frame); |
791 } | 744 } |
792 | 745 |
793 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { | 746 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { |
794 root_delegated_render_pass_is_clipped_ = false; | 747 root_delegated_render_pass_is_clipped_ = false; |
795 SetUpTest(); | 748 SetUpTest(); |
796 | 749 |
797 delegated_renderer_layer_->SetForceRenderSurface(true); | 750 delegated_renderer_layer_->CreateRenderSurface(); |
798 | 751 |
799 LayerTreeHostImpl::FrameData frame; | 752 LayerTreeHostImpl::FrameData frame; |
800 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 753 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
801 | 754 |
802 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 755 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
803 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 756 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
804 VerifyRenderPasses( | 757 VerifyRenderPasses( |
805 frame, | 758 frame, |
806 3, | 759 3, |
807 &root_delegated_shared_quad_state, | 760 &root_delegated_shared_quad_state, |
(...skipping 27 matching lines...) Expand all Loading... | |
835 contrib_delegated_shared_quad_state->content_to_target_transform); | 788 contrib_delegated_shared_quad_state->content_to_target_transform); |
836 | 789 |
837 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 790 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
838 host_impl_->DidDrawAllLayers(frame); | 791 host_impl_->DidDrawAllLayers(frame); |
839 } | 792 } |
840 | 793 |
841 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { | 794 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { |
842 root_delegated_render_pass_is_clipped_ = true; | 795 root_delegated_render_pass_is_clipped_ = true; |
843 SetUpTest(); | 796 SetUpTest(); |
844 | 797 |
845 delegated_renderer_layer_->SetForceRenderSurface(true); | 798 delegated_renderer_layer_->CreateRenderSurface(); |
846 | 799 |
847 LayerTreeHostImpl::FrameData frame; | 800 LayerTreeHostImpl::FrameData frame; |
848 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 801 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
849 | 802 |
850 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 803 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
851 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 804 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
852 VerifyRenderPasses( | 805 VerifyRenderPasses( |
853 frame, | 806 frame, |
854 3, | 807 3, |
855 &root_delegated_shared_quad_state, | 808 &root_delegated_shared_quad_state, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
932 LayerImpl::Create(host_impl_->active_tree(), 1); | 885 LayerImpl::Create(host_impl_->active_tree(), 1); |
933 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 886 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
934 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 887 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
935 scoped_ptr<LayerImpl> clip_layer = | 888 scoped_ptr<LayerImpl> clip_layer = |
936 LayerImpl::Create(host_impl_->active_tree(), 3); | 889 LayerImpl::Create(host_impl_->active_tree(), 3); |
937 scoped_ptr<LayerImpl> origin_layer = | 890 scoped_ptr<LayerImpl> origin_layer = |
938 LayerImpl::Create(host_impl_->active_tree(), 4); | 891 LayerImpl::Create(host_impl_->active_tree(), 4); |
939 | 892 |
940 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 893 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
941 root_layer->SetBounds(gfx::Size(100, 100)); | 894 root_layer->SetBounds(gfx::Size(100, 100)); |
895 root_layer->CreateRenderSurface(); | |
942 | 896 |
943 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 897 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
944 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); | 898 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); |
945 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); | 899 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); |
946 delegated_renderer_layer->SetDrawsContent(true); | 900 delegated_renderer_layer->SetDrawsContent(true); |
947 | 901 |
948 RenderPassList delegated_render_passes; | 902 RenderPassList delegated_render_passes; |
949 | 903 |
950 gfx::Size child_pass_content_bounds(7, 7); | 904 gfx::Size child_pass_content_bounds(7, 7); |
951 gfx::Rect child_pass_rect(20, 20, 7, 7); | 905 gfx::Rect child_pass_rect(20, 20, 7, 7); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1199 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1153 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
1200 host_impl_->DidDrawAllLayers(frame); | 1154 host_impl_->DidDrawAllLayers(frame); |
1201 } | 1155 } |
1202 | 1156 |
1203 TEST_F(DelegatedRendererLayerImplTestClip, | 1157 TEST_F(DelegatedRendererLayerImplTestClip, |
1204 QuadsUnclipped_LayerUnclipped_Surface) { | 1158 QuadsUnclipped_LayerUnclipped_Surface) { |
1205 root_delegated_render_pass_is_clipped_ = false; | 1159 root_delegated_render_pass_is_clipped_ = false; |
1206 clip_delegated_renderer_layer_ = false; | 1160 clip_delegated_renderer_layer_ = false; |
1207 SetUpTest(); | 1161 SetUpTest(); |
1208 | 1162 |
1209 delegated_renderer_layer_->SetForceRenderSurface(true); | 1163 delegated_renderer_layer_->CreateRenderSurface(); |
1210 | 1164 |
1211 LayerTreeHostImpl::FrameData frame; | 1165 LayerTreeHostImpl::FrameData frame; |
1212 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1166 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1213 | 1167 |
1214 ASSERT_EQ(3u, frame.render_passes.size()); | 1168 ASSERT_EQ(3u, frame.render_passes.size()); |
1215 const QuadList& contrib_delegated_quad_list = | 1169 const QuadList& contrib_delegated_quad_list = |
1216 frame.render_passes[0]->quad_list; | 1170 frame.render_passes[0]->quad_list; |
1217 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1171 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1218 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1172 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1219 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1173 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1220 const SharedQuadState* root_delegated_shared_quad_state = | 1174 const SharedQuadState* root_delegated_shared_quad_state = |
1221 root_delegated_quad_list[0]->shared_quad_state; | 1175 root_delegated_quad_list[0]->shared_quad_state; |
1222 | 1176 |
1223 // When the layer owns a surface, the quads don't need to be clipped | 1177 // When the layer owns a surface, the quads don't need to be clipped |
1224 // further than they already specify. If they aren't clipped, then their | 1178 // further than they already specify. If they aren't clipped, then their |
1225 // clip rect is ignored, and they are not set as clipped. | 1179 // clip rect is ignored, and they are not set as clipped. |
1226 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1180 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
1227 | 1181 |
1228 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1182 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
1229 host_impl_->DidDrawAllLayers(frame); | 1183 host_impl_->DidDrawAllLayers(frame); |
1230 } | 1184 } |
1231 | 1185 |
1232 TEST_F(DelegatedRendererLayerImplTestClip, | 1186 TEST_F(DelegatedRendererLayerImplTestClip, |
1233 QuadsClipped_LayerUnclipped_Surface) { | 1187 QuadsClipped_LayerUnclipped_Surface) { |
1234 root_delegated_render_pass_is_clipped_ = true; | 1188 root_delegated_render_pass_is_clipped_ = true; |
1235 clip_delegated_renderer_layer_ = false; | 1189 clip_delegated_renderer_layer_ = false; |
1236 SetUpTest(); | 1190 SetUpTest(); |
1237 | 1191 |
1238 delegated_renderer_layer_->SetForceRenderSurface(true); | 1192 delegated_renderer_layer_->CreateRenderSurface(); |
1239 | 1193 |
1240 LayerTreeHostImpl::FrameData frame; | 1194 LayerTreeHostImpl::FrameData frame; |
1241 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1195 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1242 | 1196 |
1243 ASSERT_EQ(3u, frame.render_passes.size()); | 1197 ASSERT_EQ(3u, frame.render_passes.size()); |
1244 const QuadList& contrib_delegated_quad_list = | 1198 const QuadList& contrib_delegated_quad_list = |
1245 frame.render_passes[0]->quad_list; | 1199 frame.render_passes[0]->quad_list; |
1246 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1200 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1247 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1201 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1248 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1202 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1249 const SharedQuadState* root_delegated_shared_quad_state = | 1203 const SharedQuadState* root_delegated_shared_quad_state = |
1250 root_delegated_quad_list[0]->shared_quad_state; | 1204 root_delegated_quad_list[0]->shared_quad_state; |
1251 | 1205 |
1252 // When the quads have a clip of their own, it is used. | 1206 // When the quads have a clip of their own, it is used. |
1253 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1207 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
1254 root_delegated_shared_quad_state->clip_rect.ToString()); | 1208 root_delegated_shared_quad_state->clip_rect.ToString()); |
1255 // Quads came with a clip rect. | 1209 // Quads came with a clip rect. |
1256 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1210 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
1257 | 1211 |
1258 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1212 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
1259 host_impl_->DidDrawAllLayers(frame); | 1213 host_impl_->DidDrawAllLayers(frame); |
1260 } | 1214 } |
1261 | 1215 |
1262 TEST_F(DelegatedRendererLayerImplTestClip, | 1216 TEST_F(DelegatedRendererLayerImplTestClip, |
1263 QuadsUnclipped_LayerClipped_Surface) { | 1217 QuadsUnclipped_LayerClipped_Surface) { |
1264 root_delegated_render_pass_is_clipped_ = false; | 1218 root_delegated_render_pass_is_clipped_ = false; |
1265 clip_delegated_renderer_layer_ = true; | 1219 clip_delegated_renderer_layer_ = true; |
1266 SetUpTest(); | 1220 SetUpTest(); |
1267 | 1221 |
1268 delegated_renderer_layer_->SetForceRenderSurface(true); | 1222 delegated_renderer_layer_->CreateRenderSurface(); |
1269 | 1223 |
1270 LayerTreeHostImpl::FrameData frame; | 1224 LayerTreeHostImpl::FrameData frame; |
1271 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1225 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1272 | 1226 |
1273 ASSERT_EQ(3u, frame.render_passes.size()); | 1227 ASSERT_EQ(3u, frame.render_passes.size()); |
1274 const QuadList& contrib_delegated_quad_list = | 1228 const QuadList& contrib_delegated_quad_list = |
1275 frame.render_passes[0]->quad_list; | 1229 frame.render_passes[0]->quad_list; |
1276 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1230 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1277 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1231 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1278 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1232 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
1279 const SharedQuadState* root_delegated_shared_quad_state = | 1233 const SharedQuadState* root_delegated_shared_quad_state = |
1280 root_delegated_quad_list[0]->shared_quad_state; | 1234 root_delegated_quad_list[0]->shared_quad_state; |
1281 | 1235 |
1282 // When the layer owns a surface, the quads don't need to be clipped | 1236 // When the layer owns a surface, the quads don't need to be clipped |
1283 // further than they already specify. If they aren't clipped, then their | 1237 // further than they already specify. If they aren't clipped, then their |
1284 // clip rect is ignored, and they are not set as clipped. | 1238 // clip rect is ignored, and they are not set as clipped. |
1285 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1239 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
1286 | 1240 |
1287 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1241 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
1288 host_impl_->DidDrawAllLayers(frame); | 1242 host_impl_->DidDrawAllLayers(frame); |
1289 } | 1243 } |
1290 | 1244 |
1291 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { | 1245 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { |
1292 root_delegated_render_pass_is_clipped_ = true; | 1246 root_delegated_render_pass_is_clipped_ = true; |
1293 clip_delegated_renderer_layer_ = true; | 1247 clip_delegated_renderer_layer_ = true; |
1294 SetUpTest(); | 1248 SetUpTest(); |
1295 | 1249 |
1296 delegated_renderer_layer_->SetForceRenderSurface(true); | 1250 delegated_renderer_layer_->CreateRenderSurface(); |
1297 | 1251 |
1298 LayerTreeHostImpl::FrameData frame; | 1252 LayerTreeHostImpl::FrameData frame; |
1299 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1253 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1300 | 1254 |
1301 ASSERT_EQ(3u, frame.render_passes.size()); | 1255 ASSERT_EQ(3u, frame.render_passes.size()); |
1302 const QuadList& contrib_delegated_quad_list = | 1256 const QuadList& contrib_delegated_quad_list = |
1303 frame.render_passes[0]->quad_list; | 1257 frame.render_passes[0]->quad_list; |
1304 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1258 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
1305 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; | 1259 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
1306 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1260 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
(...skipping 12 matching lines...) Expand all Loading... | |
1319 host_impl_->DidDrawAllLayers(frame); | 1273 host_impl_->DidDrawAllLayers(frame); |
1320 } | 1274 } |
1321 | 1275 |
1322 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) { | 1276 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) { |
1323 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( | 1277 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( |
1324 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); | 1278 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); |
1325 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 1279 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
1326 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); | 1280 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); |
1327 | 1281 |
1328 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 1282 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
1283 root_layer->CreateRenderSurface(); | |
1329 | 1284 |
1330 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); | 1285 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); |
1331 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 1286 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
1332 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); | 1287 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); |
1333 delegated_renderer_layer->SetDrawsContent(true); | 1288 delegated_renderer_layer->SetDrawsContent(true); |
1334 | 1289 |
1335 RenderPassList delegated_render_passes; | 1290 RenderPassList delegated_render_passes; |
1336 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes, | 1291 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes, |
1337 RenderPassId(9, 6), | 1292 RenderPassId(9, 6), |
1338 gfx::Rect(0, 0, 10, 10), | 1293 gfx::Rect(0, 0, 10, 10), |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1554 scoped_ptr<DelegatedRendererLayerImpl> other_layer = | 1509 scoped_ptr<DelegatedRendererLayerImpl> other_layer = |
1555 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); | 1510 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); |
1556 | 1511 |
1557 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); | 1512 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); |
1558 | 1513 |
1559 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); | 1514 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); |
1560 } | 1515 } |
1561 | 1516 |
1562 } // namespace | 1517 } // namespace |
1563 } // namespace cc | 1518 } // namespace cc |
OLD | NEW |