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

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

Issue 1491033002: Create RenderSurface on Effect Tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@alwayspt
Patch Set: fix for crash Created 5 years 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 | « no previous file | cc/layers/layer.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/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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | cc/layers/layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698