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

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

Issue 817653003: Update from https://crrev.com/309717 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « cc/input/scroll_elasticity_helper.cc ('k') | cc/layers/draw_properties.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 60 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
61 scoped_ptr<LayerImpl> layer_before = 61 scoped_ptr<LayerImpl> layer_before =
62 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); 62 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2);
63 scoped_ptr<LayerImpl> layer_after = 63 scoped_ptr<LayerImpl> layer_after =
64 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3); 64 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3);
65 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 65 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
66 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); 66 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4);
67 67
68 host_impl_->SetViewportSize(gfx::Size(100, 100)); 68 host_impl_->SetViewportSize(gfx::Size(100, 100));
69 root_layer->SetBounds(gfx::Size(100, 100)); 69 root_layer->SetBounds(gfx::Size(100, 100));
70 root_layer->SetHasRenderSurface(true);
70 71
71 layer_before->SetPosition(gfx::Point(20, 20)); 72 layer_before->SetPosition(gfx::Point(20, 20));
72 layer_before->SetBounds(gfx::Size(14, 14)); 73 layer_before->SetBounds(gfx::Size(14, 14));
73 layer_before->SetContentBounds(gfx::Size(14, 14)); 74 layer_before->SetContentBounds(gfx::Size(14, 14));
74 layer_before->SetDrawsContent(true); 75 layer_before->SetDrawsContent(true);
75 layer_before->SetForceRenderSurface(true); 76 layer_before->SetHasRenderSurface(true);
76 77
77 layer_after->SetPosition(gfx::Point(5, 5)); 78 layer_after->SetPosition(gfx::Point(5, 5));
78 layer_after->SetBounds(gfx::Size(15, 15)); 79 layer_after->SetBounds(gfx::Size(15, 15));
79 layer_after->SetContentBounds(gfx::Size(15, 15)); 80 layer_after->SetContentBounds(gfx::Size(15, 15));
80 layer_after->SetDrawsContent(true); 81 layer_after->SetDrawsContent(true);
81 layer_after->SetForceRenderSurface(true); 82 layer_after->SetHasRenderSurface(true);
82 83
83 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); 84 delegated_renderer_layer->SetPosition(gfx::Point(3, 3));
84 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); 85 delegated_renderer_layer->SetBounds(gfx::Size(10, 10));
85 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); 86 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10));
86 delegated_renderer_layer->SetDrawsContent(true); 87 delegated_renderer_layer->SetDrawsContent(true);
87 gfx::Transform transform; 88 gfx::Transform transform;
88 transform.Translate(1.0, 1.0); 89 transform.Translate(1.0, 1.0);
89 delegated_renderer_layer->SetTransform(transform); 90 delegated_renderer_layer->SetTransform(transform);
90 91
91 RenderPassList delegated_render_passes; 92 RenderPassList delegated_render_passes;
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 EXPECT_TRANSFORMATION_MATRIX_EQ( 291 EXPECT_TRANSFORMATION_MATRIX_EQ(
291 transform * five_six, frame.render_passes[1]->transform_to_root_target); 292 transform * five_six, frame.render_passes[1]->transform_to_root_target);
292 EXPECT_TRANSFORMATION_MATRIX_EQ( 293 EXPECT_TRANSFORMATION_MATRIX_EQ(
293 transform * seven_eight, 294 transform * seven_eight,
294 frame.render_passes[2]->transform_to_root_target); 295 frame.render_passes[2]->transform_to_root_target);
295 296
296 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 297 host_impl_->DrawLayers(&frame, base::TimeTicks::Now());
297 host_impl_->DidDrawAllLayers(frame); 298 host_impl_->DidDrawAllLayers(frame);
298 } 299 }
299 300
300 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
301 LayerTreeHostImpl::FrameData frame;
302 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
303
304 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
305 // has no need to be a RenderSurface for the quads it carries.
306 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
307
308 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
309 host_impl_->DidDrawAllLayers(frame);
310 }
311
312 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
313 delegated_renderer_layer_->SetOpacity(0.5f);
314
315 LayerTreeHostImpl::FrameData frame;
316 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(
317 host_impl_->active_tree()->root_layer());
318 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
319
320 // This test case has quads from multiple layers in the delegated renderer, so
321 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
322 // render surface.
323 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
324
325 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
326 host_impl_->DidDrawAllLayers(frame);
327 }
328
329 TEST_F(DelegatedRendererLayerImplTestSimple,
330 DoesOwnARenderSurfaceForTransform) {
331 gfx::Transform rotation;
332 rotation.RotateAboutZAxis(30.0);
333 delegated_renderer_layer_->SetTransform(rotation);
334
335 LayerTreeHostImpl::FrameData frame;
336 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(
337 host_impl_->active_tree()->root_layer());
338 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
339
340 // This test case has quads from multiple layers in the delegated renderer, so
341 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
342 // render surface.
343 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
344
345 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
346 host_impl_->DidDrawAllLayers(frame);
347 }
348
349 class DelegatedRendererLayerImplTestOwnSurface 301 class DelegatedRendererLayerImplTestOwnSurface
350 : public DelegatedRendererLayerImplTestSimple { 302 : public DelegatedRendererLayerImplTestSimple {
351 public: 303 public:
352 DelegatedRendererLayerImplTestOwnSurface() 304 DelegatedRendererLayerImplTestOwnSurface()
353 : DelegatedRendererLayerImplTestSimple() { 305 : DelegatedRendererLayerImplTestSimple() {
354 delegated_renderer_layer_->SetForceRenderSurface(true); 306 delegated_renderer_layer_->SetHasRenderSurface(true);
355 } 307 }
356 }; 308 };
357 309
358 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 310 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
359 LayerTreeHostImpl::FrameData frame; 311 LayerTreeHostImpl::FrameData frame;
360 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 312 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
361 313
362 // Each non-DelegatedRendererLayer added one RenderPass. The 314 // Each non-DelegatedRendererLayer added one RenderPass. The
363 // DelegatedRendererLayer added two contributing passes and its owned surface 315 // DelegatedRendererLayer added two contributing passes and its owned surface
364 // added one pass. 316 // added one pass.
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 void SetUpTest() { 452 void SetUpTest() {
501 host_impl_->SetDeviceScaleFactor(2.f); 453 host_impl_->SetDeviceScaleFactor(2.f);
502 454
503 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( 455 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create(
504 host_impl_->active_tree(), 1); 456 host_impl_->active_tree(), 1);
505 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 457 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
506 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); 458 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2);
507 459
508 host_impl_->SetViewportSize(gfx::Size(200, 200)); 460 host_impl_->SetViewportSize(gfx::Size(200, 200));
509 root_layer->SetBounds(gfx::Size(100, 100)); 461 root_layer->SetBounds(gfx::Size(100, 100));
462 root_layer->SetHasRenderSurface(true);
510 463
511 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); 464 delegated_renderer_layer->SetPosition(gfx::Point(20, 20));
512 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); 465 delegated_renderer_layer->SetBounds(gfx::Size(75, 75));
513 delegated_renderer_layer->SetContentBounds(gfx::Size(75, 75)); 466 delegated_renderer_layer->SetContentBounds(gfx::Size(75, 75));
514 delegated_renderer_layer->SetDrawsContent(true); 467 delegated_renderer_layer->SetDrawsContent(true);
515 gfx::Transform transform; 468 gfx::Transform transform;
516 transform.Scale(2.0, 2.0); 469 transform.Scale(2.0, 2.0);
517 transform.Translate(8.0, 8.0); 470 transform.Translate(8.0, 8.0);
518 delegated_renderer_layer->SetTransform(transform); 471 delegated_renderer_layer->SetTransform(transform);
519 472
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 contrib_delegated_shared_quad_state->content_to_target_transform); 749 contrib_delegated_shared_quad_state->content_to_target_transform);
797 750
798 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 751 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
799 host_impl_->DidDrawAllLayers(frame); 752 host_impl_->DidDrawAllLayers(frame);
800 } 753 }
801 754
802 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 755 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
803 root_delegated_render_pass_is_clipped_ = false; 756 root_delegated_render_pass_is_clipped_ = false;
804 SetUpTest(); 757 SetUpTest();
805 758
806 delegated_renderer_layer_->SetForceRenderSurface(true); 759 delegated_renderer_layer_->SetHasRenderSurface(true);
807 760
808 LayerTreeHostImpl::FrameData frame; 761 LayerTreeHostImpl::FrameData frame;
809 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 762 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
810 763
811 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 764 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
812 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 765 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
813 VerifyRenderPasses( 766 VerifyRenderPasses(
814 frame, 767 frame,
815 3, 768 3,
816 &root_delegated_shared_quad_state, 769 &root_delegated_shared_quad_state,
(...skipping 27 matching lines...) Expand all
844 contrib_delegated_shared_quad_state->content_to_target_transform); 797 contrib_delegated_shared_quad_state->content_to_target_transform);
845 798
846 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 799 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
847 host_impl_->DidDrawAllLayers(frame); 800 host_impl_->DidDrawAllLayers(frame);
848 } 801 }
849 802
850 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 803 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
851 root_delegated_render_pass_is_clipped_ = true; 804 root_delegated_render_pass_is_clipped_ = true;
852 SetUpTest(); 805 SetUpTest();
853 806
854 delegated_renderer_layer_->SetForceRenderSurface(true); 807 delegated_renderer_layer_->SetHasRenderSurface(true);
855 808
856 LayerTreeHostImpl::FrameData frame; 809 LayerTreeHostImpl::FrameData frame;
857 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 810 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
858 811
859 const SharedQuadState* root_delegated_shared_quad_state = nullptr; 812 const SharedQuadState* root_delegated_shared_quad_state = nullptr;
860 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr; 813 const SharedQuadState* contrib_delegated_shared_quad_state = nullptr;
861 VerifyRenderPasses( 814 VerifyRenderPasses(
862 frame, 815 frame,
863 3, 816 3,
864 &root_delegated_shared_quad_state, 817 &root_delegated_shared_quad_state,
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
941 LayerImpl::Create(host_impl_->active_tree(), 1); 894 LayerImpl::Create(host_impl_->active_tree(), 1);
942 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 895 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
943 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); 896 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2);
944 scoped_ptr<LayerImpl> clip_layer = 897 scoped_ptr<LayerImpl> clip_layer =
945 LayerImpl::Create(host_impl_->active_tree(), 3); 898 LayerImpl::Create(host_impl_->active_tree(), 3);
946 scoped_ptr<LayerImpl> origin_layer = 899 scoped_ptr<LayerImpl> origin_layer =
947 LayerImpl::Create(host_impl_->active_tree(), 4); 900 LayerImpl::Create(host_impl_->active_tree(), 4);
948 901
949 host_impl_->SetViewportSize(gfx::Size(100, 100)); 902 host_impl_->SetViewportSize(gfx::Size(100, 100));
950 root_layer->SetBounds(gfx::Size(100, 100)); 903 root_layer->SetBounds(gfx::Size(100, 100));
904 root_layer->SetHasRenderSurface(true);
951 905
952 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); 906 delegated_renderer_layer->SetPosition(gfx::Point(20, 20));
953 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); 907 delegated_renderer_layer->SetBounds(gfx::Size(50, 50));
954 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); 908 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50));
955 delegated_renderer_layer->SetDrawsContent(true); 909 delegated_renderer_layer->SetDrawsContent(true);
956 910
957 RenderPassList delegated_render_passes; 911 RenderPassList delegated_render_passes;
958 912
959 gfx::Size child_pass_content_bounds(7, 7); 913 gfx::Size child_pass_content_bounds(7, 7);
960 gfx::Rect child_pass_rect(20, 20, 7, 7); 914 gfx::Rect child_pass_rect(20, 20, 7, 7);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1163 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1210 host_impl_->DidDrawAllLayers(frame); 1164 host_impl_->DidDrawAllLayers(frame);
1211 } 1165 }
1212 1166
1213 TEST_F(DelegatedRendererLayerImplTestClip, 1167 TEST_F(DelegatedRendererLayerImplTestClip,
1214 QuadsUnclipped_LayerUnclipped_Surface) { 1168 QuadsUnclipped_LayerUnclipped_Surface) {
1215 root_delegated_render_pass_is_clipped_ = false; 1169 root_delegated_render_pass_is_clipped_ = false;
1216 clip_delegated_renderer_layer_ = false; 1170 clip_delegated_renderer_layer_ = false;
1217 SetUpTest(); 1171 SetUpTest();
1218 1172
1219 delegated_renderer_layer_->SetForceRenderSurface(true); 1173 delegated_renderer_layer_->SetHasRenderSurface(true);
1220 1174
1221 LayerTreeHostImpl::FrameData frame; 1175 LayerTreeHostImpl::FrameData frame;
1222 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1176 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1223 1177
1224 ASSERT_EQ(3u, frame.render_passes.size()); 1178 ASSERT_EQ(3u, frame.render_passes.size());
1225 const QuadList& contrib_delegated_quad_list = 1179 const QuadList& contrib_delegated_quad_list =
1226 frame.render_passes[0]->quad_list; 1180 frame.render_passes[0]->quad_list;
1227 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1181 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1228 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1182 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1229 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1183 ASSERT_EQ(5u, root_delegated_quad_list.size());
1230 const SharedQuadState* root_delegated_shared_quad_state = 1184 const SharedQuadState* root_delegated_shared_quad_state =
1231 root_delegated_quad_list.front()->shared_quad_state; 1185 root_delegated_quad_list.front()->shared_quad_state;
1232 1186
1233 // When the layer owns a surface, the quads don't need to be clipped 1187 // When the layer owns a surface, the quads don't need to be clipped
1234 // further than they already specify. If they aren't clipped, then their 1188 // further than they already specify. If they aren't clipped, then their
1235 // clip rect is ignored, and they are not set as clipped. 1189 // clip rect is ignored, and they are not set as clipped.
1236 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1190 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1237 1191
1238 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1192 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1239 host_impl_->DidDrawAllLayers(frame); 1193 host_impl_->DidDrawAllLayers(frame);
1240 } 1194 }
1241 1195
1242 TEST_F(DelegatedRendererLayerImplTestClip, 1196 TEST_F(DelegatedRendererLayerImplTestClip,
1243 QuadsClipped_LayerUnclipped_Surface) { 1197 QuadsClipped_LayerUnclipped_Surface) {
1244 root_delegated_render_pass_is_clipped_ = true; 1198 root_delegated_render_pass_is_clipped_ = true;
1245 clip_delegated_renderer_layer_ = false; 1199 clip_delegated_renderer_layer_ = false;
1246 SetUpTest(); 1200 SetUpTest();
1247 1201
1248 delegated_renderer_layer_->SetForceRenderSurface(true); 1202 delegated_renderer_layer_->SetHasRenderSurface(true);
1249 1203
1250 LayerTreeHostImpl::FrameData frame; 1204 LayerTreeHostImpl::FrameData frame;
1251 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1205 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1252 1206
1253 ASSERT_EQ(3u, frame.render_passes.size()); 1207 ASSERT_EQ(3u, frame.render_passes.size());
1254 const QuadList& contrib_delegated_quad_list = 1208 const QuadList& contrib_delegated_quad_list =
1255 frame.render_passes[0]->quad_list; 1209 frame.render_passes[0]->quad_list;
1256 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1210 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1257 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1211 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1258 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1212 ASSERT_EQ(5u, root_delegated_quad_list.size());
1259 const SharedQuadState* root_delegated_shared_quad_state = 1213 const SharedQuadState* root_delegated_shared_quad_state =
1260 root_delegated_quad_list.front()->shared_quad_state; 1214 root_delegated_quad_list.front()->shared_quad_state;
1261 1215
1262 // When the quads have a clip of their own, it is used. 1216 // When the quads have a clip of their own, it is used.
1263 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1217 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1264 root_delegated_shared_quad_state->clip_rect.ToString()); 1218 root_delegated_shared_quad_state->clip_rect.ToString());
1265 // Quads came with a clip rect. 1219 // Quads came with a clip rect.
1266 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1220 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1267 1221
1268 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1222 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1269 host_impl_->DidDrawAllLayers(frame); 1223 host_impl_->DidDrawAllLayers(frame);
1270 } 1224 }
1271 1225
1272 TEST_F(DelegatedRendererLayerImplTestClip, 1226 TEST_F(DelegatedRendererLayerImplTestClip,
1273 QuadsUnclipped_LayerClipped_Surface) { 1227 QuadsUnclipped_LayerClipped_Surface) {
1274 root_delegated_render_pass_is_clipped_ = false; 1228 root_delegated_render_pass_is_clipped_ = false;
1275 clip_delegated_renderer_layer_ = true; 1229 clip_delegated_renderer_layer_ = true;
1276 SetUpTest(); 1230 SetUpTest();
1277 1231
1278 delegated_renderer_layer_->SetForceRenderSurface(true); 1232 delegated_renderer_layer_->SetHasRenderSurface(true);
1279 1233
1280 LayerTreeHostImpl::FrameData frame; 1234 LayerTreeHostImpl::FrameData frame;
1281 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1235 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1282 1236
1283 ASSERT_EQ(3u, frame.render_passes.size()); 1237 ASSERT_EQ(3u, frame.render_passes.size());
1284 const QuadList& contrib_delegated_quad_list = 1238 const QuadList& contrib_delegated_quad_list =
1285 frame.render_passes[0]->quad_list; 1239 frame.render_passes[0]->quad_list;
1286 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1240 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1287 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1241 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1288 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1242 ASSERT_EQ(5u, root_delegated_quad_list.size());
1289 const SharedQuadState* root_delegated_shared_quad_state = 1243 const SharedQuadState* root_delegated_shared_quad_state =
1290 root_delegated_quad_list.front()->shared_quad_state; 1244 root_delegated_quad_list.front()->shared_quad_state;
1291 1245
1292 // When the layer owns a surface, the quads don't need to be clipped 1246 // When the layer owns a surface, the quads don't need to be clipped
1293 // further than they already specify. If they aren't clipped, then their 1247 // further than they already specify. If they aren't clipped, then their
1294 // clip rect is ignored, and they are not set as clipped. 1248 // clip rect is ignored, and they are not set as clipped.
1295 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1249 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1296 1250
1297 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 1251 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1298 host_impl_->DidDrawAllLayers(frame); 1252 host_impl_->DidDrawAllLayers(frame);
1299 } 1253 }
1300 1254
1301 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1255 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1302 root_delegated_render_pass_is_clipped_ = true; 1256 root_delegated_render_pass_is_clipped_ = true;
1303 clip_delegated_renderer_layer_ = true; 1257 clip_delegated_renderer_layer_ = true;
1304 SetUpTest(); 1258 SetUpTest();
1305 1259
1306 delegated_renderer_layer_->SetForceRenderSurface(true); 1260 delegated_renderer_layer_->SetHasRenderSurface(true);
1307 1261
1308 LayerTreeHostImpl::FrameData frame; 1262 LayerTreeHostImpl::FrameData frame;
1309 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 1263 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
1310 1264
1311 ASSERT_EQ(3u, frame.render_passes.size()); 1265 ASSERT_EQ(3u, frame.render_passes.size());
1312 const QuadList& contrib_delegated_quad_list = 1266 const QuadList& contrib_delegated_quad_list =
1313 frame.render_passes[0]->quad_list; 1267 frame.render_passes[0]->quad_list;
1314 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1268 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1315 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1269 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1316 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1270 ASSERT_EQ(5u, root_delegated_quad_list.size());
(...skipping 12 matching lines...) Expand all
1329 host_impl_->DidDrawAllLayers(frame); 1283 host_impl_->DidDrawAllLayers(frame);
1330 } 1284 }
1331 1285
1332 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) { 1286 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) {
1333 scoped_ptr<LayerImpl> root_layer = 1287 scoped_ptr<LayerImpl> root_layer =
1334 LayerImpl::Create(host_impl_->active_tree(), 1); 1288 LayerImpl::Create(host_impl_->active_tree(), 1);
1335 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 1289 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
1336 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); 1290 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4);
1337 1291
1338 host_impl_->SetViewportSize(gfx::Size(100, 100)); 1292 host_impl_->SetViewportSize(gfx::Size(100, 100));
1293 root_layer->SetHasRenderSurface(true);
1339 1294
1340 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); 1295 delegated_renderer_layer->SetPosition(gfx::Point(3, 3));
1341 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); 1296 delegated_renderer_layer->SetBounds(gfx::Size(10, 10));
1342 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); 1297 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10));
1343 delegated_renderer_layer->SetDrawsContent(true); 1298 delegated_renderer_layer->SetDrawsContent(true);
1344 1299
1345 RenderPassList delegated_render_passes; 1300 RenderPassList delegated_render_passes;
1346 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes, 1301 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes,
1347 RenderPassId(9, 6), 1302 RenderPassId(9, 6),
1348 gfx::Rect(0, 0, 10, 10), 1303 gfx::Rect(0, 0, 10, 10),
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1571 scoped_ptr<DelegatedRendererLayerImpl> other_layer = 1526 scoped_ptr<DelegatedRendererLayerImpl> other_layer =
1572 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); 1527 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6);
1573 1528
1574 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); 1529 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get());
1575 1530
1576 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); 1531 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor());
1577 } 1532 }
1578 1533
1579 } // namespace 1534 } // namespace
1580 } // namespace cc 1535 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scroll_elasticity_helper.cc ('k') | cc/layers/draw_properties.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698