Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Side by Side Diff: cc/layers/delegated_renderer_layer_impl_unittest.cc

Issue 465853004: Moving RenderSurface creation outside of CalcDrawProps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated unit tests Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | cc/layers/delegated_renderer_layer_unittest.cc » ('j') | cc/layers/delegated_renderer_layer_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698