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

Side by Side Diff: cc/delegated_renderer_layer_impl_unittest.cc

Issue 12648005: cc: Chromify the LayerTreeHostImpl class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compl Created 7 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/delegating_renderer_unittest.cc » ('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/delegated_renderer_layer_impl.h" 5 #include "cc/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/append_quads_data.h" 7 #include "cc/append_quads_data.h"
8 #include "cc/layer_tree_host_impl.h" 8 #include "cc/layer_tree_host_impl.h"
9 #include "cc/layer_tree_impl.h" 9 #include "cc/layer_tree_impl.h"
10 #include "cc/quad_sink.h" 10 #include "cc/quad_sink.h"
(...skipping 19 matching lines...) Expand all
30 namespace { 30 namespace {
31 31
32 class DelegatedRendererLayerImplTest : public testing::Test { 32 class DelegatedRendererLayerImplTest : public testing::Test {
33 public: 33 public:
34 DelegatedRendererLayerImplTest() 34 DelegatedRendererLayerImplTest()
35 : proxy_(scoped_ptr<Thread>(NULL)) 35 : proxy_(scoped_ptr<Thread>(NULL))
36 , always_impl_thread_and_main_thread_blocked_(&proxy_) { 36 , always_impl_thread_and_main_thread_blocked_(&proxy_) {
37 LayerTreeSettings settings; 37 LayerTreeSettings settings;
38 settings.minimumOcclusionTrackingSize = gfx::Size(); 38 settings.minimumOcclusionTrackingSize = gfx::Size();
39 39
40 host_impl_ = LayerTreeHostImpl::create(settings, &client_, &proxy_); 40 host_impl_ = LayerTreeHostImpl::Create(settings, &client_, &proxy_);
41 host_impl_->initializeRenderer(createFakeOutputSurface()); 41 host_impl_->InitializeRenderer(createFakeOutputSurface());
42 host_impl_->setViewportSize(gfx::Size(10, 10), gfx::Size(10, 10)); 42 host_impl_->SetViewportSize(gfx::Size(10, 10), gfx::Size(10, 10));
43 } 43 }
44 44
45 protected: 45 protected:
46 FakeProxy proxy_; 46 FakeProxy proxy_;
47 FakeLayerTreeHostImplClient client_; 47 FakeLayerTreeHostImplClient client_;
48 DebugScopedSetImplThreadAndMainThreadBlocked 48 DebugScopedSetImplThreadAndMainThreadBlocked
49 always_impl_thread_and_main_thread_blocked_; 49 always_impl_thread_and_main_thread_blocked_;
50 scoped_ptr<LayerTreeHostImpl> host_impl_; 50 scoped_ptr<LayerTreeHostImpl> host_impl_;
51 }; 51 };
52 52
53 class DelegatedRendererLayerImplTestSimple 53 class DelegatedRendererLayerImplTestSimple
54 : public DelegatedRendererLayerImplTest { 54 : public DelegatedRendererLayerImplTest {
55 public: 55 public:
56 DelegatedRendererLayerImplTestSimple() 56 DelegatedRendererLayerImplTestSimple()
57 : DelegatedRendererLayerImplTest() { 57 : DelegatedRendererLayerImplTest() {
58 scoped_ptr<LayerImpl> root_layer = SolidColorLayerImpl::Create( 58 scoped_ptr<LayerImpl> root_layer = SolidColorLayerImpl::Create(
59 host_impl_->activeTree(), 1).PassAs<LayerImpl>(); 59 host_impl_->active_tree(), 1).PassAs<LayerImpl>();
60 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create( 60 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create(
61 host_impl_->activeTree(), 2).PassAs<LayerImpl>(); 61 host_impl_->active_tree(), 2).PassAs<LayerImpl>();
62 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create( 62 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create(
63 host_impl_->activeTree(), 3).PassAs<LayerImpl>(); 63 host_impl_->active_tree(), 3).PassAs<LayerImpl>();
64 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 64 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
65 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 4); 65 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4);
66 66
67 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); 67 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
68 root_layer->SetBounds(gfx::Size(100, 100)); 68 root_layer->SetBounds(gfx::Size(100, 100));
69 69
70 layer_before->SetPosition(gfx::Point(20, 20)); 70 layer_before->SetPosition(gfx::Point(20, 20));
71 layer_before->SetBounds(gfx::Size(14, 14)); 71 layer_before->SetBounds(gfx::Size(14, 14));
72 layer_before->SetContentBounds(gfx::Size(14, 14)); 72 layer_before->SetContentBounds(gfx::Size(14, 14));
73 layer_before->SetDrawsContent(true); 73 layer_before->SetDrawsContent(true);
74 layer_before->SetForceRenderSurface(true); 74 layer_before->SetForceRenderSurface(true);
75 75
76 layer_after->SetPosition(gfx::Point(5, 5)); 76 layer_after->SetPosition(gfx::Point(5, 5));
77 layer_after->SetBounds(gfx::Size(15, 15)); 77 layer_after->SetBounds(gfx::Size(15, 15));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 delegated_renderer_layer_ = delegated_renderer_layer.get(); 119 delegated_renderer_layer_ = delegated_renderer_layer.get();
120 120
121 // Force the delegated RenderPasses to come before the RenderPass from 121 // Force the delegated RenderPasses to come before the RenderPass from
122 // layer_after. 122 // layer_after.
123 layer_after->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 123 layer_after->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
124 root_layer->AddChild(layer_after.Pass()); 124 root_layer->AddChild(layer_after.Pass());
125 125
126 // Get the RenderPass generated by layer_before to come before the delegated 126 // Get the RenderPass generated by layer_before to come before the delegated
127 // RenderPasses. 127 // RenderPasses.
128 root_layer->AddChild(layer_before.Pass()); 128 root_layer->AddChild(layer_before.Pass());
129 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); 129 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
130 } 130 }
131 131
132 protected: 132 protected:
133 LayerImpl* root_layer_; 133 LayerImpl* root_layer_;
134 LayerImpl* layer_before_; 134 LayerImpl* layer_before_;
135 LayerImpl* layer_after_; 135 LayerImpl* layer_after_;
136 DelegatedRendererLayerImpl* delegated_renderer_layer_; 136 DelegatedRendererLayerImpl* delegated_renderer_layer_;
137 }; 137 };
138 138
139 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { 139 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) {
140 LayerTreeHostImpl::FrameData frame; 140 LayerTreeHostImpl::FrameData frame;
141 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 141 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
142 142
143 // Each non-DelegatedRendererLayer added one RenderPass. The 143 // Each non-DelegatedRendererLayer added one RenderPass. The
144 // DelegatedRendererLayer added two contributing passes. 144 // DelegatedRendererLayer added two contributing passes.
145 ASSERT_EQ(5u, frame.renderPasses.size()); 145 ASSERT_EQ(5u, frame.render_passes.size());
146 146
147 // The DelegatedRendererLayer should have added its contributing RenderPasses 147 // The DelegatedRendererLayer should have added its contributing RenderPasses
148 // to the frame. 148 // to the frame.
149 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); 149 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
150 EXPECT_EQ(1, frame.renderPasses[1]->id.index); 150 EXPECT_EQ(1, frame.render_passes[1]->id.index);
151 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); 151 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
152 EXPECT_EQ(2, frame.renderPasses[2]->id.index); 152 EXPECT_EQ(2, frame.render_passes[2]->id.index);
153 // And all other RenderPasses should be non-delegated. 153 // And all other RenderPasses should be non-delegated.
154 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id); 154 EXPECT_NE(4, frame.render_passes[0]->id.layer_id);
155 EXPECT_EQ(0, frame.renderPasses[0]->id.index); 155 EXPECT_EQ(0, frame.render_passes[0]->id.index);
156 EXPECT_NE(4, frame.renderPasses[3]->id.layer_id); 156 EXPECT_NE(4, frame.render_passes[3]->id.layer_id);
157 EXPECT_EQ(0, frame.renderPasses[3]->id.index); 157 EXPECT_EQ(0, frame.render_passes[3]->id.index);
158 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id); 158 EXPECT_NE(4, frame.render_passes[4]->id.layer_id);
159 EXPECT_EQ(0, frame.renderPasses[4]->id.index); 159 EXPECT_EQ(0, frame.render_passes[4]->id.index);
160 160
161 // The DelegatedRendererLayer should have added its RenderPasses to the frame 161 // The DelegatedRendererLayer should have added its RenderPasses to the frame
162 // in order. 162 // in order.
163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
164 frame.renderPasses[1]->output_rect.ToString()); 164 frame.render_passes[1]->output_rect.ToString());
165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
166 frame.renderPasses[2]->output_rect.ToString()); 166 frame.render_passes[2]->output_rect.ToString());
167 167
168 host_impl_->drawLayers(frame); 168 host_impl_->DrawLayers(&frame);
169 host_impl_->didDrawAllLayers(frame); 169 host_impl_->DidDrawAllLayers(frame);
170 } 170 }
171 171
172 TEST_F(DelegatedRendererLayerImplTestSimple, 172 TEST_F(DelegatedRendererLayerImplTestSimple,
173 AddsQuadsToContributingRenderPasses) { 173 AddsQuadsToContributingRenderPasses) {
174 LayerTreeHostImpl::FrameData frame; 174 LayerTreeHostImpl::FrameData frame;
175 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 175 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
176 176
177 // Each non-DelegatedRendererLayer added one RenderPass. The 177 // Each non-DelegatedRendererLayer added one RenderPass. The
178 // DelegatedRendererLayer added two contributing passes. 178 // DelegatedRendererLayer added two contributing passes.
179 ASSERT_EQ(5u, frame.renderPasses.size()); 179 ASSERT_EQ(5u, frame.render_passes.size());
180 180
181 // The DelegatedRendererLayer should have added its contributing RenderPasses 181 // The DelegatedRendererLayer should have added its contributing RenderPasses
182 // to the frame. 182 // to the frame.
183 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); 183 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
184 EXPECT_EQ(1, frame.renderPasses[1]->id.index); 184 EXPECT_EQ(1, frame.render_passes[1]->id.index);
185 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); 185 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
186 EXPECT_EQ(2, frame.renderPasses[2]->id.index); 186 EXPECT_EQ(2, frame.render_passes[2]->id.index);
187 187
188 // The DelegatedRendererLayer should have added copies of its quads to 188 // The DelegatedRendererLayer should have added copies of its quads to
189 // contributing RenderPasses. 189 // contributing RenderPasses.
190 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 190 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
192 frame.renderPasses[1]->quad_list[0]->rect.ToString()); 192 frame.render_passes[1]->quad_list[0]->rect.ToString());
193 193
194 // Verify it added the right quads. 194 // Verify it added the right quads.
195 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); 195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
197 frame.renderPasses[2]->quad_list[0]->rect.ToString()); 197 frame.render_passes[2]->quad_list[0]->rect.ToString());
198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
199 frame.renderPasses[2]->quad_list[1]->rect.ToString()); 199 frame.render_passes[2]->quad_list[1]->rect.ToString());
200 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
202 frame.renderPasses[1]->quad_list[0]->rect.ToString()); 202 frame.render_passes[1]->quad_list[0]->rect.ToString());
203 203
204 host_impl_->drawLayers(frame); 204 host_impl_->DrawLayers(&frame);
205 host_impl_->didDrawAllLayers(frame); 205 host_impl_->DidDrawAllLayers(frame);
206 } 206 }
207 207
208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
209 LayerTreeHostImpl::FrameData frame; 209 LayerTreeHostImpl::FrameData frame;
210 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 210 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
211 211
212 // Each non-DelegatedRendererLayer added one RenderPass. The 212 // Each non-DelegatedRendererLayer added one RenderPass. The
213 // DelegatedRendererLayer added two contributing passes. 213 // DelegatedRendererLayer added two contributing passes.
214 ASSERT_EQ(5u, frame.renderPasses.size()); 214 ASSERT_EQ(5u, frame.render_passes.size());
215 215
216 // The layer's target is the RenderPass from m_layer_after. 216 // The layer's target is the RenderPass from m_layer_after.
217 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id); 217 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
218 218
219 // The DelegatedRendererLayer should have added copies of quads in its root 219 // The DelegatedRendererLayer should have added copies of quads in its root
220 // RenderPass to its target RenderPass. The m_layer_after also adds one quad. 220 // RenderPass to its target RenderPass. The m_layer_after also adds one quad.
221 ASSERT_EQ(2u, frame.renderPasses[3]->quad_list.size()); 221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
222 222
223 // Verify it added the right quads. 223 // Verify it added the right quads.
224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
225 frame.renderPasses[3]->quad_list[0]->rect.ToString()); 225 frame.render_passes[3]->quad_list[0]->rect.ToString());
226 226
227 // Its target layer should have a quad as well. 227 // Its target layer should have a quad as well.
228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
229 frame.renderPasses[3]->quad_list[1]->rect.ToString()); 229 frame.render_passes[3]->quad_list[1]->rect.ToString());
230 230
231 host_impl_->drawLayers(frame); 231 host_impl_->DrawLayers(&frame);
232 host_impl_->didDrawAllLayers(frame); 232 host_impl_->DidDrawAllLayers(frame);
233 } 233 }
234 234
235 TEST_F(DelegatedRendererLayerImplTestSimple, 235 TEST_F(DelegatedRendererLayerImplTestSimple,
236 QuadsFromRootRenderPassAreModifiedForTheTarget) { 236 QuadsFromRootRenderPassAreModifiedForTheTarget) {
237 LayerTreeHostImpl::FrameData frame; 237 LayerTreeHostImpl::FrameData frame;
238 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 238 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
239 239
240 // Each non-DelegatedRendererLayer added one RenderPass. The 240 // Each non-DelegatedRendererLayer added one RenderPass. The
241 // DelegatedRendererLayer added two contributing passes. 241 // DelegatedRendererLayer added two contributing passes.
242 ASSERT_EQ(5u, frame.renderPasses.size()); 242 ASSERT_EQ(5u, frame.render_passes.size());
243 243
244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and 244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
245 // has a translation transform of 1,1. So its root RenderPass' quads should 245 // has a translation transform of 1,1. So its root RenderPass' quads should
246 // all be transformed by that combined amount. 246 // all be transformed by that combined amount.
247 // The DelegatedRendererLayer has a size of 10x10, but the root delegated 247 // The DelegatedRendererLayer has a size of 10x10, but the root delegated
248 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. 248 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8.
249 gfx::Transform transform; 249 gfx::Transform transform;
250 transform.Translate(4.0, 4.0); 250 transform.Translate(4.0, 4.0);
251 transform.Scale(10.0 / 8.0, 10.0 / 8.0); 251 transform.Scale(10.0 / 8.0, 10.0 / 8.0);
252 EXPECT_TRANSFORMATION_MATRIX_EQ( 252 EXPECT_TRANSFORMATION_MATRIX_EQ(
253 transform, frame.renderPasses[3]->quad_list[0]->quadTransform()); 253 transform, frame.render_passes[3]->quad_list[0]->quadTransform());
254 254
255 // Quads from non-root RenderPasses should not be shifted though. 255 // Quads from non-root RenderPasses should not be shifted though.
256 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); 256 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
257 EXPECT_TRANSFORMATION_MATRIX_EQ( 257 EXPECT_TRANSFORMATION_MATRIX_EQ(
258 gfx::Transform(), frame.renderPasses[2]->quad_list[0]->quadTransform()); 258 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
259 EXPECT_TRANSFORMATION_MATRIX_EQ( 259 EXPECT_TRANSFORMATION_MATRIX_EQ(
260 gfx::Transform(), frame.renderPasses[2]->quad_list[1]->quadTransform()); 260 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
261 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 261 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
262 EXPECT_TRANSFORMATION_MATRIX_EQ( 262 EXPECT_TRANSFORMATION_MATRIX_EQ(
263 gfx::Transform(), frame.renderPasses[1]->quad_list[0]->quadTransform()); 263 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
264 264
265 host_impl_->drawLayers(frame); 265 host_impl_->DrawLayers(&frame);
266 host_impl_->didDrawAllLayers(frame); 266 host_impl_->DidDrawAllLayers(frame);
267 } 267 }
268 268
269 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 269 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
270 LayerTreeHostImpl::FrameData frame; 270 LayerTreeHostImpl::FrameData frame;
271 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 271 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
272 272
273 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 273 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it
274 // has no need to be a renderSurface for the quads it carries. 274 // has no need to be a renderSurface for the quads it carries.
275 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 275 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
276 276
277 host_impl_->drawLayers(frame); 277 host_impl_->DrawLayers(&frame);
278 host_impl_->didDrawAllLayers(frame); 278 host_impl_->DidDrawAllLayers(frame);
279 } 279 }
280 280
281 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 281 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
282 delegated_renderer_layer_->SetOpacity(0.5f); 282 delegated_renderer_layer_->SetOpacity(0.5f);
283 283
284 LayerTreeHostImpl::FrameData frame; 284 LayerTreeHostImpl::FrameData frame;
285 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 285 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
286 286
287 // This test case has quads from multiple layers in the delegated renderer, so 287 // This test case has quads from multiple layers in the delegated renderer, so
288 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 288 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
289 // render surface. 289 // render surface.
290 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 290 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
291 291
292 host_impl_->drawLayers(frame); 292 host_impl_->DrawLayers(&frame);
293 host_impl_->didDrawAllLayers(frame); 293 host_impl_->DidDrawAllLayers(frame);
294 } 294 }
295 295
296 TEST_F(DelegatedRendererLayerImplTestSimple, 296 TEST_F(DelegatedRendererLayerImplTestSimple,
297 DoesOwnARenderSurfaceForTransform) { 297 DoesOwnARenderSurfaceForTransform) {
298 gfx::Transform rotation; 298 gfx::Transform rotation;
299 rotation.RotateAboutZAxis(30.0); 299 rotation.RotateAboutZAxis(30.0);
300 delegated_renderer_layer_->SetTransform(rotation); 300 delegated_renderer_layer_->SetTransform(rotation);
301 301
302 LayerTreeHostImpl::FrameData frame; 302 LayerTreeHostImpl::FrameData frame;
303 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 303 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
304 304
305 // This test case has quads from multiple layers in the delegated renderer, so 305 // This test case has quads from multiple layers in the delegated renderer, so
306 // if the DelegatedRendererLayer has opacity < 1, it should end up with a 306 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
307 // render surface. 307 // render surface.
308 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 308 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
309 309
310 host_impl_->drawLayers(frame); 310 host_impl_->DrawLayers(&frame);
311 host_impl_->didDrawAllLayers(frame); 311 host_impl_->DidDrawAllLayers(frame);
312 } 312 }
313 313
314 class DelegatedRendererLayerImplTestOwnSurface 314 class DelegatedRendererLayerImplTestOwnSurface
315 : public DelegatedRendererLayerImplTestSimple { 315 : public DelegatedRendererLayerImplTestSimple {
316 public: 316 public:
317 DelegatedRendererLayerImplTestOwnSurface() 317 DelegatedRendererLayerImplTestOwnSurface()
318 : DelegatedRendererLayerImplTestSimple() { 318 : DelegatedRendererLayerImplTestSimple() {
319 delegated_renderer_layer_->SetForceRenderSurface(true); 319 delegated_renderer_layer_->SetForceRenderSurface(true);
320 } 320 }
321 }; 321 };
322 322
323 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { 323 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) {
324 LayerTreeHostImpl::FrameData frame; 324 LayerTreeHostImpl::FrameData frame;
325 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 325 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
326 326
327 // Each non-DelegatedRendererLayer added one RenderPass. The 327 // Each non-DelegatedRendererLayer added one RenderPass. The
328 // DelegatedRendererLayer added two contributing passes and its owned surface 328 // DelegatedRendererLayer added two contributing passes and its owned surface
329 // added one pass. 329 // added one pass.
330 ASSERT_EQ(6u, frame.renderPasses.size()); 330 ASSERT_EQ(6u, frame.render_passes.size());
331 331
332 // The DelegatedRendererLayer should have added its contributing RenderPasses 332 // The DelegatedRendererLayer should have added its contributing RenderPasses
333 // to the frame. 333 // to the frame.
334 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); 334 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
335 EXPECT_EQ(1, frame.renderPasses[1]->id.index); 335 EXPECT_EQ(1, frame.render_passes[1]->id.index);
336 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); 336 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
337 EXPECT_EQ(2, frame.renderPasses[2]->id.index); 337 EXPECT_EQ(2, frame.render_passes[2]->id.index);
338 // The DelegatedRendererLayer should have added a RenderPass for its surface 338 // The DelegatedRendererLayer should have added a RenderPass for its surface
339 // to the frame. 339 // to the frame.
340 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); 340 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
341 EXPECT_EQ(0, frame.renderPasses[3]->id.index); 341 EXPECT_EQ(0, frame.render_passes[3]->id.index);
342 // And all other RenderPasses should be non-delegated. 342 // And all other RenderPasses should be non-delegated.
343 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id); 343 EXPECT_NE(4, frame.render_passes[0]->id.layer_id);
344 EXPECT_EQ(0, frame.renderPasses[0]->id.index); 344 EXPECT_EQ(0, frame.render_passes[0]->id.index);
345 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id); 345 EXPECT_NE(4, frame.render_passes[4]->id.layer_id);
346 EXPECT_EQ(0, frame.renderPasses[4]->id.index); 346 EXPECT_EQ(0, frame.render_passes[4]->id.index);
347 EXPECT_NE(4, frame.renderPasses[5]->id.layer_id); 347 EXPECT_NE(4, frame.render_passes[5]->id.layer_id);
348 EXPECT_EQ(0, frame.renderPasses[5]->id.index); 348 EXPECT_EQ(0, frame.render_passes[5]->id.index);
349 349
350 // The DelegatedRendererLayer should have added its RenderPasses to the frame 350 // The DelegatedRendererLayer should have added its RenderPasses to the frame
351 // in order. 351 // in order.
352 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 352 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
353 frame.renderPasses[1]->output_rect.ToString()); 353 frame.render_passes[1]->output_rect.ToString());
354 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 354 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
355 frame.renderPasses[2]->output_rect.ToString()); 355 frame.render_passes[2]->output_rect.ToString());
356 356
357 host_impl_->drawLayers(frame); 357 host_impl_->DrawLayers(&frame);
358 host_impl_->didDrawAllLayers(frame); 358 host_impl_->DidDrawAllLayers(frame);
359 } 359 }
360 360
361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 361 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
362 AddsQuadsToContributingRenderPasses) { 362 AddsQuadsToContributingRenderPasses) {
363 LayerTreeHostImpl::FrameData frame; 363 LayerTreeHostImpl::FrameData frame;
364 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 364 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
365 365
366 // Each non-DelegatedRendererLayer added one RenderPass. The 366 // Each non-DelegatedRendererLayer added one RenderPass. The
367 // DelegatedRendererLayer added two contributing passes and its owned surface 367 // DelegatedRendererLayer added two contributing passes and its owned surface
368 // added one pass. 368 // added one pass.
369 ASSERT_EQ(6u, frame.renderPasses.size()); 369 ASSERT_EQ(6u, frame.render_passes.size());
370 370
371 // The DelegatedRendererLayer should have added its contributing RenderPasses 371 // The DelegatedRendererLayer should have added its contributing RenderPasses
372 // to the frame. 372 // to the frame.
373 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); 373 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id);
374 EXPECT_EQ(1, frame.renderPasses[1]->id.index); 374 EXPECT_EQ(1, frame.render_passes[1]->id.index);
375 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); 375 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id);
376 EXPECT_EQ(2, frame.renderPasses[2]->id.index); 376 EXPECT_EQ(2, frame.render_passes[2]->id.index);
377 377
378 // The DelegatedRendererLayer should have added copies of its quads to 378 // The DelegatedRendererLayer should have added copies of its quads to
379 // contributing RenderPasses. 379 // contributing RenderPasses.
380 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 380 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
381 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 381 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
382 frame.renderPasses[1]->quad_list[0]->rect.ToString()); 382 frame.render_passes[1]->quad_list[0]->rect.ToString());
383 383
384 // Verify it added the right quads. 384 // Verify it added the right quads.
385 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); 385 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
386 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 386 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
387 frame.renderPasses[2]->quad_list[0]->rect.ToString()); 387 frame.render_passes[2]->quad_list[0]->rect.ToString());
388 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 388 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
389 frame.renderPasses[2]->quad_list[1]->rect.ToString()); 389 frame.render_passes[2]->quad_list[1]->rect.ToString());
390 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 390 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
391 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 391 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
392 frame.renderPasses[1]->quad_list[0]->rect.ToString()); 392 frame.render_passes[1]->quad_list[0]->rect.ToString());
393 393
394 host_impl_->drawLayers(frame); 394 host_impl_->DrawLayers(&frame);
395 host_impl_->didDrawAllLayers(frame); 395 host_impl_->DidDrawAllLayers(frame);
396 } 396 }
397 397
398 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 398 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
399 LayerTreeHostImpl::FrameData frame; 399 LayerTreeHostImpl::FrameData frame;
400 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 400 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
401 401
402 // Each non-DelegatedRendererLayer added one RenderPass. The 402 // Each non-DelegatedRendererLayer added one RenderPass. The
403 // DelegatedRendererLayer added two contributing passes and its owned surface 403 // DelegatedRendererLayer added two contributing passes and its owned surface
404 // added one pass. 404 // added one pass.
405 ASSERT_EQ(6u, frame.renderPasses.size()); 405 ASSERT_EQ(6u, frame.render_passes.size());
406 406
407 // The layer's target is the RenderPass owned by itself. 407 // The layer's target is the RenderPass owned by itself.
408 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id); 408 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
409 409
410 // The DelegatedRendererLayer should have added copies of quads in its root 410 // The DelegatedRendererLayer should have added copies of quads in its root
411 // RenderPass to its target RenderPass. 411 // RenderPass to its target RenderPass.
412 // The m_layer_after also adds one quad. 412 // The m_layer_after also adds one quad.
413 ASSERT_EQ(1u, frame.renderPasses[3]->quad_list.size()); 413 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
414 414
415 // Verify it added the right quads. 415 // Verify it added the right quads.
416 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 416 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
417 frame.renderPasses[3]->quad_list[0]->rect.ToString()); 417 frame.render_passes[3]->quad_list[0]->rect.ToString());
418 418
419 host_impl_->drawLayers(frame); 419 host_impl_->DrawLayers(&frame);
420 host_impl_->didDrawAllLayers(frame); 420 host_impl_->DidDrawAllLayers(frame);
421 } 421 }
422 422
423 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 423 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
424 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 424 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
425 LayerTreeHostImpl::FrameData frame; 425 LayerTreeHostImpl::FrameData frame;
426 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 426 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
427 427
428 // Each non-DelegatedRendererLayer added one RenderPass. The 428 // Each non-DelegatedRendererLayer added one RenderPass. The
429 // DelegatedRendererLayer added two contributing passes and its owned surface 429 // DelegatedRendererLayer added two contributing passes and its owned surface
430 // added one pass. 430 // added one pass.
431 ASSERT_EQ(6u, frame.renderPasses.size()); 431 ASSERT_EQ(6u, frame.render_passes.size());
432 432
433 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root 433 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root
434 // RenderPass' quads do not need to be translated at all. However, they are 434 // RenderPass' quads do not need to be translated at all. However, they are
435 // scaled from the frame's size (8x8) to the layer's bounds (10x10). 435 // scaled from the frame's size (8x8) to the layer's bounds (10x10).
436 gfx::Transform transform; 436 gfx::Transform transform;
437 transform.Scale(10.0 / 8.0, 10.0 / 8.0); 437 transform.Scale(10.0 / 8.0, 10.0 / 8.0);
438 EXPECT_TRANSFORMATION_MATRIX_EQ( 438 EXPECT_TRANSFORMATION_MATRIX_EQ(
439 transform, frame.renderPasses[3]->quad_list[0]->quadTransform()); 439 transform, frame.render_passes[3]->quad_list[0]->quadTransform());
440 440
441 // Quads from non-root RenderPasses should not be shifted either. 441 // Quads from non-root RenderPasses should not be shifted either.
442 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); 442 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
443 EXPECT_TRANSFORMATION_MATRIX_EQ( 443 EXPECT_TRANSFORMATION_MATRIX_EQ(
444 gfx::Transform(), frame.renderPasses[2]->quad_list[0]->quadTransform()); 444 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
445 EXPECT_TRANSFORMATION_MATRIX_EQ( 445 EXPECT_TRANSFORMATION_MATRIX_EQ(
446 gfx::Transform(), frame.renderPasses[2]->quad_list[1]->quadTransform()); 446 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
447 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); 447 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
448 EXPECT_TRANSFORMATION_MATRIX_EQ( 448 EXPECT_TRANSFORMATION_MATRIX_EQ(
449 gfx::Transform(), frame.renderPasses[1]->quad_list[0]->quadTransform()); 449 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
450 450
451 host_impl_->drawLayers(frame); 451 host_impl_->DrawLayers(&frame);
452 host_impl_->didDrawAllLayers(frame); 452 host_impl_->DidDrawAllLayers(frame);
453 } 453 }
454 454
455 class DelegatedRendererLayerImplTestTransform 455 class DelegatedRendererLayerImplTestTransform
456 : public DelegatedRendererLayerImplTest { 456 : public DelegatedRendererLayerImplTest {
457 public: 457 public:
458 void SetUpTest() { 458 void SetUpTest() {
459 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( 459 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create(
460 host_impl_->activeTree(), 1); 460 host_impl_->active_tree(), 1);
461 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 461 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
462 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 2); 462 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2);
463 463
464 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); 464 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
465 root_layer->SetBounds(gfx::Size(100, 100)); 465 root_layer->SetBounds(gfx::Size(100, 100));
466 466
467 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); 467 delegated_renderer_layer->SetPosition(gfx::Point(20, 20));
468 delegated_renderer_layer->SetBounds(gfx::Size(30, 30)); 468 delegated_renderer_layer->SetBounds(gfx::Size(30, 30));
469 delegated_renderer_layer->SetContentBounds(gfx::Size(30, 30)); 469 delegated_renderer_layer->SetContentBounds(gfx::Size(30, 30));
470 delegated_renderer_layer->SetDrawsContent(true); 470 delegated_renderer_layer->SetDrawsContent(true);
471 gfx::Transform transform; 471 gfx::Transform transform;
472 transform.Scale(2.0, 2.0); 472 transform.Scale(2.0, 2.0);
473 transform.Translate(8.0, 8.0); 473 transform.Translate(8.0, 8.0);
474 delegated_renderer_layer->SetTransform(transform); 474 delegated_renderer_layer->SetTransform(transform);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 gfx::Rect root_pass_clip_rect(10, 10, 35, 35); 519 gfx::Rect root_pass_clip_rect(10, 10, 35, 35);
520 bool root_pass_clipped = root_delegated_render_pass_is_clipped_; 520 bool root_pass_clipped = root_delegated_render_pass_is_clipped_;
521 521
522 TestRenderPass* pass = addRenderPass( 522 TestRenderPass* pass = addRenderPass(
523 delegated_render_passes, 523 delegated_render_passes,
524 RenderPass::Id(9, 6), 524 RenderPass::Id(9, 6),
525 root_pass_rect, 525 root_pass_rect,
526 gfx::Transform()); 526 gfx::Transform());
527 MockQuadCuller quad_sink(pass->quad_list, pass->shared_quad_state_list); 527 MockQuadCuller quad_sink(pass->quad_list, pass->shared_quad_state_list);
528 AppendQuadsData data(pass->id); 528 AppendQuadsData data(pass->id);
529 SharedQuadState* shared_quad_state = quad_sink.useSharedQuadState(SharedQuad State::Create()); 529 SharedQuadState* shared_quad_state =
530 quad_sink.useSharedQuadState(SharedQuadState::Create());
530 shared_quad_state->SetAll( 531 shared_quad_state->SetAll(
531 root_pass_transform, 532 root_pass_transform,
532 root_pass_content_bounds, 533 root_pass_content_bounds,
533 root_pass_rect, 534 root_pass_rect,
534 root_pass_clip_rect, 535 root_pass_clip_rect,
535 root_pass_clipped, 536 root_pass_clipped,
536 1.f); 537 1.f);
537 538
538 scoped_ptr<RenderPassDrawQuad> render_pass_quad = 539 scoped_ptr<RenderPassDrawQuad> render_pass_quad =
539 RenderPassDrawQuad::Create(); 540 RenderPassDrawQuad::Create();
(...skipping 30 matching lines...) Expand all
570 delegated_renderer_layer->SetFrameDataForRenderPasses( 571 delegated_renderer_layer->SetFrameDataForRenderPasses(
571 &delegated_render_passes); 572 &delegated_render_passes);
572 573
573 // The RenderPasses should be taken by the layer. 574 // The RenderPasses should be taken by the layer.
574 EXPECT_EQ(0u, delegated_render_passes.size()); 575 EXPECT_EQ(0u, delegated_render_passes.size());
575 576
576 root_layer_ = root_layer.get(); 577 root_layer_ = root_layer.get();
577 delegated_renderer_layer_ = delegated_renderer_layer.get(); 578 delegated_renderer_layer_ = delegated_renderer_layer.get();
578 579
579 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 580 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
580 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); 581 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
581 } 582 }
582 583
583 void VerifyRenderPasses( 584 void VerifyRenderPasses(
584 const LayerTreeHostImpl::FrameData& frame, 585 const LayerTreeHostImpl::FrameData& frame,
585 size_t num_render_passes, 586 size_t num_render_passes,
586 const SharedQuadState** root_delegated_shared_quad_state, 587 const SharedQuadState** root_delegated_shared_quad_state,
587 const SharedQuadState** contrib_delegated_shared_quad_state) { 588 const SharedQuadState** contrib_delegated_shared_quad_state) {
588 ASSERT_EQ(num_render_passes, frame.renderPasses.size()); 589 ASSERT_EQ(num_render_passes, frame.render_passes.size());
589 // The contributing render pass in the DelegatedRendererLayer. 590 // The contributing render pass in the DelegatedRendererLayer.
590 EXPECT_EQ(2, frame.renderPasses[0]->id.layer_id); 591 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id);
591 EXPECT_EQ(1, frame.renderPasses[0]->id.index); 592 EXPECT_EQ(1, frame.render_passes[0]->id.index);
592 // The root render pass. 593 // The root render pass.
593 EXPECT_EQ(1, frame.renderPasses.back()->id.layer_id); 594 EXPECT_EQ(1, frame.render_passes.back()->id.layer_id);
594 EXPECT_EQ(0, frame.renderPasses.back()->id.index); 595 EXPECT_EQ(0, frame.render_passes.back()->id.index);
595 596
596 const QuadList& contrib_delegated_quad_list = 597 const QuadList& contrib_delegated_quad_list =
597 frame.renderPasses[0]->quad_list; 598 frame.render_passes[0]->quad_list;
598 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 599 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
599 600
600 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 601 const QuadList& root_delegated_quad_list =
602 frame.render_passes[1]->quad_list;
601 ASSERT_EQ(5u, root_delegated_quad_list.size()); 603 ASSERT_EQ(5u, root_delegated_quad_list.size());
602 604
603 // All quads in a render pass should share the same state. 605 // All quads in a render pass should share the same state.
604 *contrib_delegated_shared_quad_state = 606 *contrib_delegated_shared_quad_state =
605 contrib_delegated_quad_list[0]->shared_quad_state; 607 contrib_delegated_quad_list[0]->shared_quad_state;
606 EXPECT_EQ(*contrib_delegated_shared_quad_state, 608 EXPECT_EQ(*contrib_delegated_shared_quad_state,
607 contrib_delegated_quad_list[1]->shared_quad_state); 609 contrib_delegated_quad_list[1]->shared_quad_state);
608 610
609 *root_delegated_shared_quad_state = 611 *root_delegated_shared_quad_state =
610 root_delegated_quad_list[0]->shared_quad_state; 612 root_delegated_quad_list[0]->shared_quad_state;
(...skipping 14 matching lines...) Expand all
625 LayerImpl* root_layer_; 627 LayerImpl* root_layer_;
626 DelegatedRendererLayerImpl* delegated_renderer_layer_; 628 DelegatedRendererLayerImpl* delegated_renderer_layer_;
627 bool root_delegated_render_pass_is_clipped_; 629 bool root_delegated_render_pass_is_clipped_;
628 }; 630 };
629 631
630 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { 632 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) {
631 root_delegated_render_pass_is_clipped_ = false; 633 root_delegated_render_pass_is_clipped_ = false;
632 SetUpTest(); 634 SetUpTest();
633 635
634 LayerTreeHostImpl::FrameData frame; 636 LayerTreeHostImpl::FrameData frame;
635 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 637 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
636 638
637 const SharedQuadState* root_delegated_shared_quad_state = NULL; 639 const SharedQuadState* root_delegated_shared_quad_state = NULL;
638 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 640 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
639 VerifyRenderPasses( 641 VerifyRenderPasses(
640 frame, 642 frame,
641 2, 643 2,
642 &root_delegated_shared_quad_state, 644 &root_delegated_shared_quad_state,
643 &contrib_delegated_shared_quad_state); 645 &contrib_delegated_shared_quad_state);
644 646
645 // When the quads don't have a clip of their own, the clip rect is set to 647 // When the quads don't have a clip of their own, the clip rect is set to
(...skipping 24 matching lines...) Expand all
670 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 672 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
671 contrib_delegated_shared_quad_state->clip_rect.ToString()); 673 contrib_delegated_shared_quad_state->clip_rect.ToString());
672 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 674 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
673 expected.MakeIdentity(); 675 expected.MakeIdentity();
674 expected.Scale(0.8, 0.8); 676 expected.Scale(0.8, 0.8);
675 expected.Translate(9.0, 9.0); 677 expected.Translate(9.0, 9.0);
676 EXPECT_TRANSFORMATION_MATRIX_EQ( 678 EXPECT_TRANSFORMATION_MATRIX_EQ(
677 expected, 679 expected,
678 contrib_delegated_shared_quad_state->content_to_target_transform); 680 contrib_delegated_shared_quad_state->content_to_target_transform);
679 681
680 host_impl_->drawLayers(frame); 682 host_impl_->DrawLayers(&frame);
681 host_impl_->didDrawAllLayers(frame); 683 host_impl_->DidDrawAllLayers(frame);
682 } 684 }
683 685
684 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 686 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
685 root_delegated_render_pass_is_clipped_ = true; 687 root_delegated_render_pass_is_clipped_ = true;
686 SetUpTest(); 688 SetUpTest();
687 689
688 LayerTreeHostImpl::FrameData frame; 690 LayerTreeHostImpl::FrameData frame;
689 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 691 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
690 692
691 const SharedQuadState* root_delegated_shared_quad_state = NULL; 693 const SharedQuadState* root_delegated_shared_quad_state = NULL;
692 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 694 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
693 VerifyRenderPasses( 695 VerifyRenderPasses(
694 frame, 696 frame,
695 2, 697 2,
696 &root_delegated_shared_quad_state, 698 &root_delegated_shared_quad_state,
697 &contrib_delegated_shared_quad_state); 699 &contrib_delegated_shared_quad_state);
698 700
699 // Since the quads have a clip_rect it should be modified by delegated 701 // Since the quads have a clip_rect it should be modified by delegated
(...skipping 29 matching lines...) Expand all
729 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 731 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
730 contrib_delegated_shared_quad_state->clip_rect.ToString()); 732 contrib_delegated_shared_quad_state->clip_rect.ToString());
731 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 733 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
732 expected.MakeIdentity(); 734 expected.MakeIdentity();
733 expected.Scale(0.8, 0.8); 735 expected.Scale(0.8, 0.8);
734 expected.Translate(9.0, 9.0); 736 expected.Translate(9.0, 9.0);
735 EXPECT_TRANSFORMATION_MATRIX_EQ( 737 EXPECT_TRANSFORMATION_MATRIX_EQ(
736 expected, 738 expected,
737 contrib_delegated_shared_quad_state->content_to_target_transform); 739 contrib_delegated_shared_quad_state->content_to_target_transform);
738 740
739 host_impl_->drawLayers(frame); 741 host_impl_->DrawLayers(&frame);
740 host_impl_->didDrawAllLayers(frame); 742 host_impl_->DidDrawAllLayers(frame);
741 } 743 }
742 744
743 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 745 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
744 root_delegated_render_pass_is_clipped_ = false; 746 root_delegated_render_pass_is_clipped_ = false;
745 SetUpTest(); 747 SetUpTest();
746 748
747 delegated_renderer_layer_->SetForceRenderSurface(true); 749 delegated_renderer_layer_->SetForceRenderSurface(true);
748 750
749 LayerTreeHostImpl::FrameData frame; 751 LayerTreeHostImpl::FrameData frame;
750 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 752 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
751 753
752 const SharedQuadState* root_delegated_shared_quad_state = NULL; 754 const SharedQuadState* root_delegated_shared_quad_state = NULL;
753 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 755 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
754 VerifyRenderPasses( 756 VerifyRenderPasses(
755 frame, 757 frame,
756 3, 758 3,
757 &root_delegated_shared_quad_state, 759 &root_delegated_shared_quad_state,
758 &contrib_delegated_shared_quad_state); 760 &contrib_delegated_shared_quad_state);
759 761
760 // When the layer owns a surface, then its position and translation are not 762 // When the layer owns a surface, then its position and translation are not
(...skipping 23 matching lines...) Expand all
784 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 786 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
785 contrib_delegated_shared_quad_state->clip_rect.ToString()); 787 contrib_delegated_shared_quad_state->clip_rect.ToString());
786 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 788 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
787 expected.MakeIdentity(); 789 expected.MakeIdentity();
788 expected.Scale(0.8, 0.8); 790 expected.Scale(0.8, 0.8);
789 expected.Translate(9.0, 9.0); 791 expected.Translate(9.0, 9.0);
790 EXPECT_TRANSFORMATION_MATRIX_EQ( 792 EXPECT_TRANSFORMATION_MATRIX_EQ(
791 expected, 793 expected,
792 contrib_delegated_shared_quad_state->content_to_target_transform); 794 contrib_delegated_shared_quad_state->content_to_target_transform);
793 795
794 host_impl_->drawLayers(frame); 796 host_impl_->DrawLayers(&frame);
795 host_impl_->didDrawAllLayers(frame); 797 host_impl_->DidDrawAllLayers(frame);
796 } 798 }
797 799
798 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 800 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
799 root_delegated_render_pass_is_clipped_ = true; 801 root_delegated_render_pass_is_clipped_ = true;
800 SetUpTest(); 802 SetUpTest();
801 803
802 delegated_renderer_layer_->SetForceRenderSurface(true); 804 delegated_renderer_layer_->SetForceRenderSurface(true);
803 805
804 LayerTreeHostImpl::FrameData frame; 806 LayerTreeHostImpl::FrameData frame;
805 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 807 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
806 808
807 const SharedQuadState* root_delegated_shared_quad_state = NULL; 809 const SharedQuadState* root_delegated_shared_quad_state = NULL;
808 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; 810 const SharedQuadState* contrib_delegated_shared_quad_state = NULL;
809 VerifyRenderPasses( 811 VerifyRenderPasses(
810 frame, 812 frame,
811 3, 813 3,
812 &root_delegated_shared_quad_state, 814 &root_delegated_shared_quad_state,
813 &contrib_delegated_shared_quad_state); 815 &contrib_delegated_shared_quad_state);
814 816
815 // When the layer owns a surface, then its position and translation are not 817 // When the layer owns a surface, then its position and translation are not
(...skipping 22 matching lines...) Expand all
838 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 840 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
839 contrib_delegated_shared_quad_state->clip_rect.ToString()); 841 contrib_delegated_shared_quad_state->clip_rect.ToString());
840 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 842 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
841 expected.MakeIdentity(); 843 expected.MakeIdentity();
842 expected.Scale(0.8, 0.8); 844 expected.Scale(0.8, 0.8);
843 expected.Translate(9.0, 9.0); 845 expected.Translate(9.0, 9.0);
844 EXPECT_TRANSFORMATION_MATRIX_EQ( 846 EXPECT_TRANSFORMATION_MATRIX_EQ(
845 expected, 847 expected,
846 contrib_delegated_shared_quad_state->content_to_target_transform); 848 contrib_delegated_shared_quad_state->content_to_target_transform);
847 849
848 host_impl_->drawLayers(frame); 850 host_impl_->DrawLayers(&frame);
849 host_impl_->didDrawAllLayers(frame); 851 host_impl_->DidDrawAllLayers(frame);
850 } 852 }
851 853
852 class DelegatedRendererLayerImplTestClip 854 class DelegatedRendererLayerImplTestClip
853 : public DelegatedRendererLayerImplTest { 855 : public DelegatedRendererLayerImplTest {
854 public: 856 public:
855 void SetUpTest() { 857 void SetUpTest() {
856 scoped_ptr<LayerImpl> root_layer = 858 scoped_ptr<LayerImpl> root_layer =
857 LayerImpl::Create(host_impl_->activeTree(), 1); 859 LayerImpl::Create(host_impl_->active_tree(), 1);
858 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 860 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
859 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 2); 861 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2);
860 scoped_ptr<LayerImpl> clip_layer = 862 scoped_ptr<LayerImpl> clip_layer =
861 LayerImpl::Create(host_impl_->activeTree(), 3); 863 LayerImpl::Create(host_impl_->active_tree(), 3);
862 scoped_ptr<LayerImpl> origin_layer = 864 scoped_ptr<LayerImpl> origin_layer =
863 LayerImpl::Create(host_impl_->activeTree(), 4); 865 LayerImpl::Create(host_impl_->active_tree(), 4);
864 866
865 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); 867 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100));
866 root_layer->SetBounds(gfx::Size(100, 100)); 868 root_layer->SetBounds(gfx::Size(100, 100));
867 869
868 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); 870 delegated_renderer_layer->SetPosition(gfx::Point(20, 20));
869 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); 871 delegated_renderer_layer->SetBounds(gfx::Size(50, 50));
870 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); 872 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50));
871 delegated_renderer_layer->SetDrawsContent(true); 873 delegated_renderer_layer->SetDrawsContent(true);
872 874
873 ScopedPtrVector<RenderPass> delegated_render_passes; 875 ScopedPtrVector<RenderPass> delegated_render_passes;
874 876
875 gfx::Size child_pass_content_bounds(7, 7); 877 gfx::Size child_pass_content_bounds(7, 7);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 origin_layer->SetPosition( 982 origin_layer->SetPosition(
981 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin())); 983 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin()));
982 984
983 origin_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 985 origin_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
984 clip_layer->AddChild(origin_layer.Pass()); 986 clip_layer->AddChild(origin_layer.Pass());
985 root_layer->AddChild(clip_layer.Pass()); 987 root_layer->AddChild(clip_layer.Pass());
986 } else { 988 } else {
987 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); 989 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>());
988 } 990 }
989 991
990 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); 992 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
991 } 993 }
992 994
993 protected: 995 protected:
994 LayerImpl* root_layer_; 996 LayerImpl* root_layer_;
995 DelegatedRendererLayerImpl* delegated_renderer_layer_; 997 DelegatedRendererLayerImpl* delegated_renderer_layer_;
996 bool root_delegated_render_pass_is_clipped_; 998 bool root_delegated_render_pass_is_clipped_;
997 bool clip_delegated_renderer_layer_; 999 bool clip_delegated_renderer_layer_;
998 }; 1000 };
999 1001
1000 TEST_F(DelegatedRendererLayerImplTestClip, 1002 TEST_F(DelegatedRendererLayerImplTestClip,
1001 QuadsUnclipped_LayerUnclipped_NoSurface) { 1003 QuadsUnclipped_LayerUnclipped_NoSurface) {
1002 root_delegated_render_pass_is_clipped_ = false; 1004 root_delegated_render_pass_is_clipped_ = false;
1003 clip_delegated_renderer_layer_ = false; 1005 clip_delegated_renderer_layer_ = false;
1004 SetUpTest(); 1006 SetUpTest();
1005 1007
1006 LayerTreeHostImpl::FrameData frame; 1008 LayerTreeHostImpl::FrameData frame;
1007 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1009 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1008 1010
1009 ASSERT_EQ(2u, frame.renderPasses.size()); 1011 ASSERT_EQ(2u, frame.render_passes.size());
1010 const QuadList& contrib_delegated_quad_list = 1012 const QuadList& contrib_delegated_quad_list =
1011 frame.renderPasses[0]->quad_list; 1013 frame.render_passes[0]->quad_list;
1012 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1014 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1013 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1015 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1014 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1016 ASSERT_EQ(5u, root_delegated_quad_list.size());
1015 const SharedQuadState* root_delegated_shared_quad_state = 1017 const SharedQuadState* root_delegated_shared_quad_state =
1016 root_delegated_quad_list[0]->shared_quad_state; 1018 root_delegated_quad_list[0]->shared_quad_state;
1017 const SharedQuadState* contrib_delegated_shared_quad_state = 1019 const SharedQuadState* contrib_delegated_shared_quad_state =
1018 contrib_delegated_quad_list[0]->shared_quad_state; 1020 contrib_delegated_quad_list[0]->shared_quad_state;
1019 1021
1020 // When the quads don't have a clip of their own, the clip rect is set to 1022 // When the quads don't have a clip of their own, the clip rect is set to
1021 // the drawableContentRect of the delegated renderer layer. 1023 // the drawableContentRect of the delegated renderer layer.
1022 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1024 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1023 root_delegated_shared_quad_state->clip_rect.ToString()); 1025 root_delegated_shared_quad_state->clip_rect.ToString());
1024 // Quads are clipped to the delegated renderer layer. 1026 // Quads are clipped to the delegated renderer layer.
1025 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1027 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1026 1028
1027 host_impl_->drawLayers(frame); 1029 host_impl_->DrawLayers(&frame);
1028 host_impl_->didDrawAllLayers(frame); 1030 host_impl_->DidDrawAllLayers(frame);
1029 } 1031 }
1030 1032
1031 TEST_F(DelegatedRendererLayerImplTestClip, 1033 TEST_F(DelegatedRendererLayerImplTestClip,
1032 QuadsClipped_LayerUnclipped_NoSurface) { 1034 QuadsClipped_LayerUnclipped_NoSurface) {
1033 root_delegated_render_pass_is_clipped_ = true; 1035 root_delegated_render_pass_is_clipped_ = true;
1034 clip_delegated_renderer_layer_ = false; 1036 clip_delegated_renderer_layer_ = false;
1035 SetUpTest(); 1037 SetUpTest();
1036 1038
1037 LayerTreeHostImpl::FrameData frame; 1039 LayerTreeHostImpl::FrameData frame;
1038 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1040 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1039 1041
1040 ASSERT_EQ(2u, frame.renderPasses.size()); 1042 ASSERT_EQ(2u, frame.render_passes.size());
1041 const QuadList& contrib_delegated_quad_list = 1043 const QuadList& contrib_delegated_quad_list =
1042 frame.renderPasses[0]->quad_list; 1044 frame.render_passes[0]->quad_list;
1043 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1045 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1044 const QuadList& root_delegated_quad_list = 1046 const QuadList& root_delegated_quad_list =
1045 frame.renderPasses[1]->quad_list; 1047 frame.render_passes[1]->quad_list;
1046 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1048 ASSERT_EQ(5u, root_delegated_quad_list.size());
1047 const SharedQuadState* root_delegated_shared_quad_state = 1049 const SharedQuadState* root_delegated_shared_quad_state =
1048 root_delegated_quad_list[0]->shared_quad_state; 1050 root_delegated_quad_list[0]->shared_quad_state;
1049 const SharedQuadState* contrib_delegated_shared_quad_state = 1051 const SharedQuadState* contrib_delegated_shared_quad_state =
1050 contrib_delegated_quad_list[0]->shared_quad_state; 1052 contrib_delegated_quad_list[0]->shared_quad_state;
1051 1053
1052 // When the quads have a clip of their own, it is used. 1054 // When the quads have a clip of their own, it is used.
1053 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1055 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1054 root_delegated_shared_quad_state->clip_rect.ToString()); 1056 root_delegated_shared_quad_state->clip_rect.ToString());
1055 // Quads came with a clip rect. 1057 // Quads came with a clip rect.
1056 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1058 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1057 1059
1058 host_impl_->drawLayers(frame); 1060 host_impl_->DrawLayers(&frame);
1059 host_impl_->didDrawAllLayers(frame); 1061 host_impl_->DidDrawAllLayers(frame);
1060 } 1062 }
1061 1063
1062 TEST_F(DelegatedRendererLayerImplTestClip, 1064 TEST_F(DelegatedRendererLayerImplTestClip,
1063 QuadsUnclipped_LayerClipped_NoSurface) { 1065 QuadsUnclipped_LayerClipped_NoSurface) {
1064 root_delegated_render_pass_is_clipped_ = false; 1066 root_delegated_render_pass_is_clipped_ = false;
1065 clip_delegated_renderer_layer_ = true; 1067 clip_delegated_renderer_layer_ = true;
1066 SetUpTest(); 1068 SetUpTest();
1067 1069
1068 LayerTreeHostImpl::FrameData frame; 1070 LayerTreeHostImpl::FrameData frame;
1069 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1071 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1070 1072
1071 ASSERT_EQ(2u, frame.renderPasses.size()); 1073 ASSERT_EQ(2u, frame.render_passes.size());
1072 const QuadList& contrib_delegated_quad_list = 1074 const QuadList& contrib_delegated_quad_list =
1073 frame.renderPasses[0]->quad_list; 1075 frame.render_passes[0]->quad_list;
1074 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1076 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1075 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1077 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1076 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1078 ASSERT_EQ(5u, root_delegated_quad_list.size());
1077 const SharedQuadState* root_delegated_shared_quad_state = 1079 const SharedQuadState* root_delegated_shared_quad_state =
1078 root_delegated_quad_list[0]->shared_quad_state; 1080 root_delegated_quad_list[0]->shared_quad_state;
1079 const SharedQuadState* contrib_delegated_shared_quad_state = 1081 const SharedQuadState* contrib_delegated_shared_quad_state =
1080 contrib_delegated_quad_list[0]->shared_quad_state; 1082 contrib_delegated_quad_list[0]->shared_quad_state;
1081 1083
1082 // When the quads don't have a clip of their own, the clip rect is set to 1084 // When the quads don't have a clip of their own, the clip rect is set to
1083 // the drawableContentRect of the delegated renderer layer. When the layer 1085 // the drawableContentRect of the delegated renderer layer. When the layer
1084 // is clipped, that should be seen in the quads' clip_rect. 1086 // is clipped, that should be seen in the quads' clip_rect.
1085 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1087 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1086 root_delegated_shared_quad_state->clip_rect.ToString()); 1088 root_delegated_shared_quad_state->clip_rect.ToString());
1087 // Quads are clipped to the delegated renderer layer. 1089 // Quads are clipped to the delegated renderer layer.
1088 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1090 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1089 1091
1090 host_impl_->drawLayers(frame); 1092 host_impl_->DrawLayers(&frame);
1091 host_impl_->didDrawAllLayers(frame); 1093 host_impl_->DidDrawAllLayers(frame);
1092 } 1094 }
1093 1095
1094 TEST_F(DelegatedRendererLayerImplTestClip, 1096 TEST_F(DelegatedRendererLayerImplTestClip,
1095 QuadsClipped_LayerClipped_NoSurface) { 1097 QuadsClipped_LayerClipped_NoSurface) {
1096 root_delegated_render_pass_is_clipped_ = true; 1098 root_delegated_render_pass_is_clipped_ = true;
1097 clip_delegated_renderer_layer_ = true; 1099 clip_delegated_renderer_layer_ = true;
1098 SetUpTest(); 1100 SetUpTest();
1099 1101
1100 LayerTreeHostImpl::FrameData frame; 1102 LayerTreeHostImpl::FrameData frame;
1101 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1103 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1102 1104
1103 ASSERT_EQ(2u, frame.renderPasses.size()); 1105 ASSERT_EQ(2u, frame.render_passes.size());
1104 const QuadList& contrib_delegated_quad_list = 1106 const QuadList& contrib_delegated_quad_list =
1105 frame.renderPasses[0]->quad_list; 1107 frame.render_passes[0]->quad_list;
1106 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1108 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1107 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1109 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1108 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1110 ASSERT_EQ(5u, root_delegated_quad_list.size());
1109 const SharedQuadState* root_delegated_shared_quad_state = 1111 const SharedQuadState* root_delegated_shared_quad_state =
1110 root_delegated_quad_list[0]->shared_quad_state; 1112 root_delegated_quad_list[0]->shared_quad_state;
1111 const SharedQuadState* contrib_delegated_shared_quad_state = 1113 const SharedQuadState* contrib_delegated_shared_quad_state =
1112 contrib_delegated_quad_list[0]->shared_quad_state; 1114 contrib_delegated_quad_list[0]->shared_quad_state;
1113 1115
1114 // When the quads have a clip of their own, it is used, but it is 1116 // When the quads have a clip of their own, it is used, but it is
1115 // combined with the clip rect of the delegated renderer layer. 1117 // combined with the clip rect of the delegated renderer layer.
1116 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), 1118 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(),
1117 root_delegated_shared_quad_state->clip_rect.ToString()); 1119 root_delegated_shared_quad_state->clip_rect.ToString());
1118 // Quads came with a clip rect. 1120 // Quads came with a clip rect.
1119 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1121 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1120 1122
1121 host_impl_->drawLayers(frame); 1123 host_impl_->DrawLayers(&frame);
1122 host_impl_->didDrawAllLayers(frame); 1124 host_impl_->DidDrawAllLayers(frame);
1123 } 1125 }
1124 1126
1125 TEST_F(DelegatedRendererLayerImplTestClip, 1127 TEST_F(DelegatedRendererLayerImplTestClip,
1126 QuadsUnclipped_LayerUnclipped_Surface) { 1128 QuadsUnclipped_LayerUnclipped_Surface) {
1127 root_delegated_render_pass_is_clipped_ = false; 1129 root_delegated_render_pass_is_clipped_ = false;
1128 clip_delegated_renderer_layer_ = false; 1130 clip_delegated_renderer_layer_ = false;
1129 SetUpTest(); 1131 SetUpTest();
1130 1132
1131 delegated_renderer_layer_->SetForceRenderSurface(true); 1133 delegated_renderer_layer_->SetForceRenderSurface(true);
1132 1134
1133 LayerTreeHostImpl::FrameData frame; 1135 LayerTreeHostImpl::FrameData frame;
1134 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1136 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1135 1137
1136 ASSERT_EQ(3u, frame.renderPasses.size()); 1138 ASSERT_EQ(3u, frame.render_passes.size());
1137 const QuadList& contrib_delegated_quad_list = 1139 const QuadList& contrib_delegated_quad_list =
1138 frame.renderPasses[0]->quad_list; 1140 frame.render_passes[0]->quad_list;
1139 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1141 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1140 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1142 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1141 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1143 ASSERT_EQ(5u, root_delegated_quad_list.size());
1142 const SharedQuadState* root_delegated_shared_quad_state = 1144 const SharedQuadState* root_delegated_shared_quad_state =
1143 root_delegated_quad_list[0]->shared_quad_state; 1145 root_delegated_quad_list[0]->shared_quad_state;
1144 const SharedQuadState* contrib_delegated_shared_quad_state = 1146 const SharedQuadState* contrib_delegated_shared_quad_state =
1145 contrib_delegated_quad_list[0]->shared_quad_state; 1147 contrib_delegated_quad_list[0]->shared_quad_state;
1146 1148
1147 // When the layer owns a surface, the quads don't need to be clipped 1149 // When the layer owns a surface, the quads don't need to be clipped
1148 // further than they already specify. If they aren't clipped, then their 1150 // further than they already specify. If they aren't clipped, then their
1149 // clip rect is ignored, and they are not set as clipped. 1151 // clip rect is ignored, and they are not set as clipped.
1150 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1152 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1151 1153
1152 host_impl_->drawLayers(frame); 1154 host_impl_->DrawLayers(&frame);
1153 host_impl_->didDrawAllLayers(frame); 1155 host_impl_->DidDrawAllLayers(frame);
1154 } 1156 }
1155 1157
1156 TEST_F(DelegatedRendererLayerImplTestClip, 1158 TEST_F(DelegatedRendererLayerImplTestClip,
1157 QuadsClipped_LayerUnclipped_Surface) { 1159 QuadsClipped_LayerUnclipped_Surface) {
1158 root_delegated_render_pass_is_clipped_ = true; 1160 root_delegated_render_pass_is_clipped_ = true;
1159 clip_delegated_renderer_layer_ = false; 1161 clip_delegated_renderer_layer_ = false;
1160 SetUpTest(); 1162 SetUpTest();
1161 1163
1162 delegated_renderer_layer_->SetForceRenderSurface(true); 1164 delegated_renderer_layer_->SetForceRenderSurface(true);
1163 1165
1164 LayerTreeHostImpl::FrameData frame; 1166 LayerTreeHostImpl::FrameData frame;
1165 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1167 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1166 1168
1167 ASSERT_EQ(3u, frame.renderPasses.size()); 1169 ASSERT_EQ(3u, frame.render_passes.size());
1168 const QuadList& contrib_delegated_quad_list = frame.renderPasses[0]->quad_list ; 1170 const QuadList& contrib_delegated_quad_list =
1171 frame.render_passes[0]->quad_list;
1169 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1172 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1170 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1173 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1171 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1174 ASSERT_EQ(5u, root_delegated_quad_list.size());
1172 const SharedQuadState* root_delegated_shared_quad_state = root_delegated_quad_ list[0]->shared_quad_state; 1175 const SharedQuadState* root_delegated_shared_quad_state =
1176 root_delegated_quad_list[0]->shared_quad_state;
1173 const SharedQuadState* contrib_delegated_shared_quad_state = 1177 const SharedQuadState* contrib_delegated_shared_quad_state =
1174 contrib_delegated_quad_list[0]->shared_quad_state; 1178 contrib_delegated_quad_list[0]->shared_quad_state;
1175 1179
1176 // When the quads have a clip of their own, it is used. 1180 // When the quads have a clip of their own, it is used.
1177 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1181 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1178 root_delegated_shared_quad_state->clip_rect.ToString()); 1182 root_delegated_shared_quad_state->clip_rect.ToString());
1179 // Quads came with a clip rect. 1183 // Quads came with a clip rect.
1180 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1184 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1181 1185
1182 host_impl_->drawLayers(frame); 1186 host_impl_->DrawLayers(&frame);
1183 host_impl_->didDrawAllLayers(frame); 1187 host_impl_->DidDrawAllLayers(frame);
1184 } 1188 }
1185 1189
1186 TEST_F(DelegatedRendererLayerImplTestClip, 1190 TEST_F(DelegatedRendererLayerImplTestClip,
1187 QuadsUnclipped_LayerClipped_Surface) { 1191 QuadsUnclipped_LayerClipped_Surface) {
1188 root_delegated_render_pass_is_clipped_ = false; 1192 root_delegated_render_pass_is_clipped_ = false;
1189 clip_delegated_renderer_layer_ = true; 1193 clip_delegated_renderer_layer_ = true;
1190 SetUpTest(); 1194 SetUpTest();
1191 1195
1192 delegated_renderer_layer_->SetForceRenderSurface(true); 1196 delegated_renderer_layer_->SetForceRenderSurface(true);
1193 1197
1194 LayerTreeHostImpl::FrameData frame; 1198 LayerTreeHostImpl::FrameData frame;
1195 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1199 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1196 1200
1197 ASSERT_EQ(3u, frame.renderPasses.size()); 1201 ASSERT_EQ(3u, frame.render_passes.size());
1198 const QuadList& contrib_delegated_quad_list = 1202 const QuadList& contrib_delegated_quad_list =
1199 frame.renderPasses[0]->quad_list; 1203 frame.render_passes[0]->quad_list;
1200 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1204 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1201 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1205 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1202 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1206 ASSERT_EQ(5u, root_delegated_quad_list.size());
1203 const SharedQuadState* root_delegated_shared_quad_state = 1207 const SharedQuadState* root_delegated_shared_quad_state =
1204 root_delegated_quad_list[0]->shared_quad_state; 1208 root_delegated_quad_list[0]->shared_quad_state;
1205 const SharedQuadState* contrib_delegated_shared_quad_state = 1209 const SharedQuadState* contrib_delegated_shared_quad_state =
1206 contrib_delegated_quad_list[0]->shared_quad_state; 1210 contrib_delegated_quad_list[0]->shared_quad_state;
1207 1211
1208 // When the layer owns a surface, the quads don't need to be clipped 1212 // When the layer owns a surface, the quads don't need to be clipped
1209 // further than they already specify. If they aren't clipped, then their 1213 // further than they already specify. If they aren't clipped, then their
1210 // clip rect is ignored, and they are not set as clipped. 1214 // clip rect is ignored, and they are not set as clipped.
1211 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1215 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1212 1216
1213 host_impl_->drawLayers(frame); 1217 host_impl_->DrawLayers(&frame);
1214 host_impl_->didDrawAllLayers(frame); 1218 host_impl_->DidDrawAllLayers(frame);
1215 } 1219 }
1216 1220
1217 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1221 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1218 root_delegated_render_pass_is_clipped_ = true; 1222 root_delegated_render_pass_is_clipped_ = true;
1219 clip_delegated_renderer_layer_ = true; 1223 clip_delegated_renderer_layer_ = true;
1220 SetUpTest(); 1224 SetUpTest();
1221 1225
1222 delegated_renderer_layer_->SetForceRenderSurface(true); 1226 delegated_renderer_layer_->SetForceRenderSurface(true);
1223 1227
1224 LayerTreeHostImpl::FrameData frame; 1228 LayerTreeHostImpl::FrameData frame;
1225 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); 1229 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame));
1226 1230
1227 ASSERT_EQ(3u, frame.renderPasses.size()); 1231 ASSERT_EQ(3u, frame.render_passes.size());
1228 const QuadList& contrib_delegated_quad_list = 1232 const QuadList& contrib_delegated_quad_list =
1229 frame.renderPasses[0]->quad_list; 1233 frame.render_passes[0]->quad_list;
1230 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1234 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1231 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; 1235 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1232 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1236 ASSERT_EQ(5u, root_delegated_quad_list.size());
1233 const SharedQuadState* root_delegated_shared_quad_state = 1237 const SharedQuadState* root_delegated_shared_quad_state =
1234 root_delegated_quad_list[0]->shared_quad_state; 1238 root_delegated_quad_list[0]->shared_quad_state;
1235 const SharedQuadState* contrib_delegated_shared_quad_state = 1239 const SharedQuadState* contrib_delegated_shared_quad_state =
1236 contrib_delegated_quad_list[0]->shared_quad_state; 1240 contrib_delegated_quad_list[0]->shared_quad_state;
1237 1241
1238 // When the quads have a clip of their own, it is used, but it is 1242 // When the quads have a clip of their own, it is used, but it is
1239 // combined with the clip rect of the delegated renderer layer. If the 1243 // combined with the clip rect of the delegated renderer layer. If the
1240 // layer owns a surface, then it does not have a clip rect of its own. 1244 // layer owns a surface, then it does not have a clip rect of its own.
1241 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1245 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1242 root_delegated_shared_quad_state->clip_rect.ToString()); 1246 root_delegated_shared_quad_state->clip_rect.ToString());
1243 // Quads came with a clip rect. 1247 // Quads came with a clip rect.
1244 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1248 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1245 1249
1246 host_impl_->drawLayers(frame); 1250 host_impl_->DrawLayers(&frame);
1247 host_impl_->didDrawAllLayers(frame); 1251 host_impl_->DidDrawAllLayers(frame);
1248 } 1252 }
1249 1253
1250 } // namespace 1254 } // namespace
1251 } // namespace cc 1255 } // namespace cc
OLDNEW
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/delegating_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698