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

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

Issue 27710005: cc: Use HighResNow as timebase if it is fast and reliable (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix DCHECK Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/input/top_controls_manager_unittest.cc ('k') | cc/output/begin_frame_args.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/layers/delegated_renderer_layer_impl.h" 5 #include "cc/layers/delegated_renderer_layer_impl.h"
6 6
7 #include "cc/base/scoped_ptr_vector.h" 7 #include "cc/base/scoped_ptr_vector.h"
8 #include "cc/debug/test_web_graphics_context_3d.h" 8 #include "cc/debug/test_web_graphics_context_3d.h"
9 #include "cc/layers/append_quads_data.h" 9 #include "cc/layers/append_quads_data.h"
10 #include "cc/layers/quad_sink.h" 10 #include "cc/layers/quad_sink.h"
11 #include "cc/layers/solid_color_layer_impl.h" 11 #include "cc/layers/solid_color_layer_impl.h"
12 #include "cc/quads/render_pass_draw_quad.h" 12 #include "cc/quads/render_pass_draw_quad.h"
13 #include "cc/quads/solid_color_draw_quad.h" 13 #include "cc/quads/solid_color_draw_quad.h"
14 #include "cc/test/fake_delegated_renderer_layer_impl.h" 14 #include "cc/test/fake_delegated_renderer_layer_impl.h"
15 #include "cc/test/fake_layer_tree_host_impl.h" 15 #include "cc/test/fake_layer_tree_host_impl.h"
16 #include "cc/test/fake_layer_tree_host_impl_client.h" 16 #include "cc/test/fake_layer_tree_host_impl_client.h"
17 #include "cc/test/fake_output_surface.h" 17 #include "cc/test/fake_output_surface.h"
18 #include "cc/test/fake_proxy.h" 18 #include "cc/test/fake_proxy.h"
19 #include "cc/test/fake_rendering_stats_instrumentation.h" 19 #include "cc/test/fake_rendering_stats_instrumentation.h"
20 #include "cc/test/geometry_test_utils.h" 20 #include "cc/test/geometry_test_utils.h"
21 #include "cc/test/mock_quad_culler.h" 21 #include "cc/test/mock_quad_culler.h"
22 #include "cc/test/render_pass_test_common.h" 22 #include "cc/test/render_pass_test_common.h"
23 #include "cc/test/render_pass_test_utils.h" 23 #include "cc/test/render_pass_test_utils.h"
24 #include "cc/trees/layer_tree_host_impl.h" 24 #include "cc/trees/layer_tree_host_impl.h"
25 #include "cc/trees/layer_tree_impl.h" 25 #include "cc/trees/layer_tree_impl.h"
26 #include "cc/trees/single_thread_proxy.h" 26 #include "cc/trees/single_thread_proxy.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 #include "ui/gfx/frame_time.h"
28 #include "ui/gfx/transform.h" 29 #include "ui/gfx/transform.h"
29 30
30 namespace cc { 31 namespace cc {
31 namespace { 32 namespace {
32 33
33 class DelegatedRendererLayerImplTest : public testing::Test { 34 class DelegatedRendererLayerImplTest : public testing::Test {
34 public: 35 public:
35 DelegatedRendererLayerImplTest() 36 DelegatedRendererLayerImplTest()
36 : proxy_(), 37 : proxy_(),
37 always_impl_thread_and_main_thread_blocked_(&proxy_) { 38 always_impl_thread_and_main_thread_blocked_(&proxy_) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 EXPECT_NE(4, frame.render_passes[4]->id.layer_id); 159 EXPECT_NE(4, frame.render_passes[4]->id.layer_id);
159 EXPECT_EQ(0, frame.render_passes[4]->id.index); 160 EXPECT_EQ(0, frame.render_passes[4]->id.index);
160 161
161 // The DelegatedRendererLayer should have added its RenderPasses to the frame 162 // The DelegatedRendererLayer should have added its RenderPasses to the frame
162 // in order. 163 // in order.
163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 164 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
164 frame.render_passes[1]->output_rect.ToString()); 165 frame.render_passes[1]->output_rect.ToString());
165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 166 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
166 frame.render_passes[2]->output_rect.ToString()); 167 frame.render_passes[2]->output_rect.ToString());
167 168
168 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 169 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
169 host_impl_->DidDrawAllLayers(frame); 170 host_impl_->DidDrawAllLayers(frame);
170 } 171 }
171 172
172 TEST_F(DelegatedRendererLayerImplTestSimple, 173 TEST_F(DelegatedRendererLayerImplTestSimple,
173 AddsQuadsToContributingRenderPasses) { 174 AddsQuadsToContributingRenderPasses) {
174 LayerTreeHostImpl::FrameData frame; 175 LayerTreeHostImpl::FrameData frame;
175 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 176 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
176 177
177 // Each non-DelegatedRendererLayer added one RenderPass. The 178 // Each non-DelegatedRendererLayer added one RenderPass. The
178 // DelegatedRendererLayer added two contributing passes. 179 // DelegatedRendererLayer added two contributing passes.
(...skipping 15 matching lines...) Expand all
194 // Verify it added the right quads. 195 // Verify it added the right quads.
195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 196 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 197 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
197 frame.render_passes[2]->quad_list[0]->rect.ToString()); 198 frame.render_passes[2]->quad_list[0]->rect.ToString());
198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 199 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
199 frame.render_passes[2]->quad_list[1]->rect.ToString()); 200 frame.render_passes[2]->quad_list[1]->rect.ToString());
200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 201 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 202 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
202 frame.render_passes[1]->quad_list[0]->rect.ToString()); 203 frame.render_passes[1]->quad_list[0]->rect.ToString());
203 204
204 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 205 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
205 host_impl_->DidDrawAllLayers(frame); 206 host_impl_->DidDrawAllLayers(frame);
206 } 207 }
207 208
208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { 209 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) {
209 LayerTreeHostImpl::FrameData frame; 210 LayerTreeHostImpl::FrameData frame;
210 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 211 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
211 212
212 // Each non-DelegatedRendererLayer added one RenderPass. The 213 // Each non-DelegatedRendererLayer added one RenderPass. The
213 // DelegatedRendererLayer added two contributing passes. 214 // DelegatedRendererLayer added two contributing passes.
214 ASSERT_EQ(5u, frame.render_passes.size()); 215 ASSERT_EQ(5u, frame.render_passes.size());
215 216
216 // The layer's target is the RenderPass from layer_after_. 217 // The layer's target is the RenderPass from layer_after_.
217 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); 218 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id);
218 219
219 // The DelegatedRendererLayer should have added copies of quads in its root 220 // The DelegatedRendererLayer should have added copies of quads in its root
220 // RenderPass to its target RenderPass. The layer_after_ also adds one quad. 221 // RenderPass to its target RenderPass. The layer_after_ also adds one quad.
221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); 222 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size());
222 223
223 // Verify it added the right quads. 224 // Verify it added the right quads.
224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 225 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
225 frame.render_passes[3]->quad_list[0]->rect.ToString()); 226 frame.render_passes[3]->quad_list[0]->rect.ToString());
226 227
227 // Its target layer should have a quad as well. 228 // Its target layer should have a quad as well.
228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), 229 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(),
229 frame.render_passes[3]->quad_list[1]->rect.ToString()); 230 frame.render_passes[3]->quad_list[1]->rect.ToString());
230 231
231 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 232 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
232 host_impl_->DidDrawAllLayers(frame); 233 host_impl_->DidDrawAllLayers(frame);
233 } 234 }
234 235
235 TEST_F(DelegatedRendererLayerImplTestSimple, 236 TEST_F(DelegatedRendererLayerImplTestSimple,
236 QuadsFromRootRenderPassAreModifiedForTheTarget) { 237 QuadsFromRootRenderPassAreModifiedForTheTarget) {
237 LayerTreeHostImpl::FrameData frame; 238 LayerTreeHostImpl::FrameData frame;
238 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 239 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
239 240
240 // Each non-DelegatedRendererLayer added one RenderPass. The 241 // Each non-DelegatedRendererLayer added one RenderPass. The
241 // DelegatedRendererLayer added two contributing passes. 242 // DelegatedRendererLayer added two contributing passes.
(...skipping 13 matching lines...) Expand all
255 // Quads from non-root RenderPasses should not be shifted though. 256 // Quads from non-root RenderPasses should not be shifted though.
256 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 257 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
257 EXPECT_TRANSFORMATION_MATRIX_EQ( 258 EXPECT_TRANSFORMATION_MATRIX_EQ(
258 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 259 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
259 EXPECT_TRANSFORMATION_MATRIX_EQ( 260 EXPECT_TRANSFORMATION_MATRIX_EQ(
260 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 261 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
261 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 262 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
262 EXPECT_TRANSFORMATION_MATRIX_EQ( 263 EXPECT_TRANSFORMATION_MATRIX_EQ(
263 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 264 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
264 265
265 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 266 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
266 host_impl_->DidDrawAllLayers(frame); 267 host_impl_->DidDrawAllLayers(frame);
267 } 268 }
268 269
269 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { 270 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) {
270 LayerTreeHostImpl::FrameData frame; 271 LayerTreeHostImpl::FrameData frame;
271 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 272 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
272 273
273 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it 274 // 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. 275 // has no need to be a RenderSurface for the quads it carries.
275 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); 276 EXPECT_FALSE(delegated_renderer_layer_->render_surface());
276 277
277 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 278 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
278 host_impl_->DidDrawAllLayers(frame); 279 host_impl_->DidDrawAllLayers(frame);
279 } 280 }
280 281
281 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { 282 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) {
282 delegated_renderer_layer_->SetOpacity(0.5f); 283 delegated_renderer_layer_->SetOpacity(0.5f);
283 284
284 LayerTreeHostImpl::FrameData frame; 285 LayerTreeHostImpl::FrameData frame;
285 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 286 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
286 287
287 // This test case has quads from multiple layers in the delegated renderer, so 288 // 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 289 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
289 // render surface. 290 // render surface.
290 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 291 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
291 292
292 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 293 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
293 host_impl_->DidDrawAllLayers(frame); 294 host_impl_->DidDrawAllLayers(frame);
294 } 295 }
295 296
296 TEST_F(DelegatedRendererLayerImplTestSimple, 297 TEST_F(DelegatedRendererLayerImplTestSimple,
297 DoesOwnARenderSurfaceForTransform) { 298 DoesOwnARenderSurfaceForTransform) {
298 gfx::Transform rotation; 299 gfx::Transform rotation;
299 rotation.RotateAboutZAxis(30.0); 300 rotation.RotateAboutZAxis(30.0);
300 delegated_renderer_layer_->SetTransform(rotation); 301 delegated_renderer_layer_->SetTransform(rotation);
301 302
302 LayerTreeHostImpl::FrameData frame; 303 LayerTreeHostImpl::FrameData frame;
303 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 304 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
304 305
305 // This test case has quads from multiple layers in the delegated renderer, so 306 // 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 307 // if the DelegatedRendererLayer has opacity < 1, it should end up with a
307 // render surface. 308 // render surface.
308 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); 309 EXPECT_TRUE(delegated_renderer_layer_->render_surface());
309 310
310 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 311 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
311 host_impl_->DidDrawAllLayers(frame); 312 host_impl_->DidDrawAllLayers(frame);
312 } 313 }
313 314
314 class DelegatedRendererLayerImplTestOwnSurface 315 class DelegatedRendererLayerImplTestOwnSurface
315 : public DelegatedRendererLayerImplTestSimple { 316 : public DelegatedRendererLayerImplTestSimple {
316 public: 317 public:
317 DelegatedRendererLayerImplTestOwnSurface() 318 DelegatedRendererLayerImplTestOwnSurface()
318 : DelegatedRendererLayerImplTestSimple() { 319 : DelegatedRendererLayerImplTestSimple() {
319 delegated_renderer_layer_->SetForceRenderSurface(true); 320 delegated_renderer_layer_->SetForceRenderSurface(true);
320 } 321 }
(...skipping 26 matching lines...) Expand all
347 EXPECT_NE(4, frame.render_passes[5]->id.layer_id); 348 EXPECT_NE(4, frame.render_passes[5]->id.layer_id);
348 EXPECT_EQ(0, frame.render_passes[5]->id.index); 349 EXPECT_EQ(0, frame.render_passes[5]->id.index);
349 350
350 // The DelegatedRendererLayer should have added its RenderPasses to the frame 351 // The DelegatedRendererLayer should have added its RenderPasses to the frame
351 // in order. 352 // in order.
352 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 353 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
353 frame.render_passes[1]->output_rect.ToString()); 354 frame.render_passes[1]->output_rect.ToString());
354 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 355 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
355 frame.render_passes[2]->output_rect.ToString()); 356 frame.render_passes[2]->output_rect.ToString());
356 357
357 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 358 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
358 host_impl_->DidDrawAllLayers(frame); 359 host_impl_->DidDrawAllLayers(frame);
359 } 360 }
360 361
361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 362 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
362 AddsQuadsToContributingRenderPasses) { 363 AddsQuadsToContributingRenderPasses) {
363 LayerTreeHostImpl::FrameData frame; 364 LayerTreeHostImpl::FrameData frame;
364 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 365 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
365 366
366 // Each non-DelegatedRendererLayer added one RenderPass. The 367 // Each non-DelegatedRendererLayer added one RenderPass. The
367 // DelegatedRendererLayer added two contributing passes and its owned surface 368 // DelegatedRendererLayer added two contributing passes and its owned surface
(...skipping 16 matching lines...) Expand all
384 // Verify it added the right quads. 385 // Verify it added the right quads.
385 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 386 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
386 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), 387 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(),
387 frame.render_passes[2]->quad_list[0]->rect.ToString()); 388 frame.render_passes[2]->quad_list[0]->rect.ToString());
388 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), 389 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(),
389 frame.render_passes[2]->quad_list[1]->rect.ToString()); 390 frame.render_passes[2]->quad_list[1]->rect.ToString());
390 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 391 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
391 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), 392 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(),
392 frame.render_passes[1]->quad_list[0]->rect.ToString()); 393 frame.render_passes[1]->quad_list[0]->rect.ToString());
393 394
394 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 395 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
395 host_impl_->DidDrawAllLayers(frame); 396 host_impl_->DidDrawAllLayers(frame);
396 } 397 }
397 398
398 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { 399 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) {
399 LayerTreeHostImpl::FrameData frame; 400 LayerTreeHostImpl::FrameData frame;
400 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 401 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
401 402
402 // Each non-DelegatedRendererLayer added one RenderPass. The 403 // Each non-DelegatedRendererLayer added one RenderPass. The
403 // DelegatedRendererLayer added two contributing passes and its owned surface 404 // DelegatedRendererLayer added two contributing passes and its owned surface
404 // added one pass. 405 // added one pass.
405 ASSERT_EQ(6u, frame.render_passes.size()); 406 ASSERT_EQ(6u, frame.render_passes.size());
406 407
407 // The layer's target is the RenderPass owned by itself. 408 // The layer's target is the RenderPass owned by itself.
408 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); 409 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id);
409 410
410 // The DelegatedRendererLayer should have added copies of quads in its root 411 // The DelegatedRendererLayer should have added copies of quads in its root
411 // RenderPass to its target RenderPass. 412 // RenderPass to its target RenderPass.
412 // The layer_after also adds one quad. 413 // The layer_after also adds one quad.
413 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); 414 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size());
414 415
415 // Verify it added the right quads. 416 // Verify it added the right quads.
416 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), 417 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(),
417 frame.render_passes[3]->quad_list[0]->rect.ToString()); 418 frame.render_passes[3]->quad_list[0]->rect.ToString());
418 419
419 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 420 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
420 host_impl_->DidDrawAllLayers(frame); 421 host_impl_->DidDrawAllLayers(frame);
421 } 422 }
422 423
423 TEST_F(DelegatedRendererLayerImplTestOwnSurface, 424 TEST_F(DelegatedRendererLayerImplTestOwnSurface,
424 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { 425 QuadsFromRootRenderPassAreNotModifiedForTheTarget) {
425 LayerTreeHostImpl::FrameData frame; 426 LayerTreeHostImpl::FrameData frame;
426 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 427 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
427 428
428 // Each non-DelegatedRendererLayer added one RenderPass. The 429 // Each non-DelegatedRendererLayer added one RenderPass. The
429 // DelegatedRendererLayer added two contributing passes and its owned surface 430 // DelegatedRendererLayer added two contributing passes and its owned surface
(...skipping 11 matching lines...) Expand all
441 // Quads from non-root RenderPasses should not be shifted either. 442 // Quads from non-root RenderPasses should not be shifted either.
442 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); 443 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size());
443 EXPECT_TRANSFORMATION_MATRIX_EQ( 444 EXPECT_TRANSFORMATION_MATRIX_EQ(
444 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); 445 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform());
445 EXPECT_TRANSFORMATION_MATRIX_EQ( 446 EXPECT_TRANSFORMATION_MATRIX_EQ(
446 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); 447 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform());
447 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); 448 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size());
448 EXPECT_TRANSFORMATION_MATRIX_EQ( 449 EXPECT_TRANSFORMATION_MATRIX_EQ(
449 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); 450 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform());
450 451
451 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 452 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
452 host_impl_->DidDrawAllLayers(frame); 453 host_impl_->DidDrawAllLayers(frame);
453 } 454 }
454 455
455 class DelegatedRendererLayerImplTestTransform 456 class DelegatedRendererLayerImplTestTransform
456 : public DelegatedRendererLayerImplTest { 457 : public DelegatedRendererLayerImplTest {
457 public: 458 public:
458 void SetUpTest() { 459 void SetUpTest() {
459 host_impl_->SetDeviceScaleFactor(2.f); 460 host_impl_->SetDeviceScaleFactor(2.f);
460 461
461 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( 462 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create(
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 676 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
676 contrib_delegated_shared_quad_state->clip_rect.ToString()); 677 contrib_delegated_shared_quad_state->clip_rect.ToString());
677 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 678 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
678 expected.MakeIdentity(); 679 expected.MakeIdentity();
679 expected.Scale(0.8f, 0.8f); 680 expected.Scale(0.8f, 0.8f);
680 expected.Translate(9.0, 9.0); 681 expected.Translate(9.0, 9.0);
681 EXPECT_TRANSFORMATION_MATRIX_EQ( 682 EXPECT_TRANSFORMATION_MATRIX_EQ(
682 expected, 683 expected,
683 contrib_delegated_shared_quad_state->content_to_target_transform); 684 contrib_delegated_shared_quad_state->content_to_target_transform);
684 685
685 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 686 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
686 host_impl_->DidDrawAllLayers(frame); 687 host_impl_->DidDrawAllLayers(frame);
687 } 688 }
688 689
689 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { 690 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) {
690 root_delegated_render_pass_is_clipped_ = true; 691 root_delegated_render_pass_is_clipped_ = true;
691 SetUpTest(); 692 SetUpTest();
692 693
693 LayerTreeHostImpl::FrameData frame; 694 LayerTreeHostImpl::FrameData frame;
694 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 695 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
695 696
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 739 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
739 contrib_delegated_shared_quad_state->clip_rect.ToString()); 740 contrib_delegated_shared_quad_state->clip_rect.ToString());
740 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 741 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
741 expected.MakeIdentity(); 742 expected.MakeIdentity();
742 expected.Scale(0.8f, 0.8f); 743 expected.Scale(0.8f, 0.8f);
743 expected.Translate(9.0, 9.0); 744 expected.Translate(9.0, 9.0);
744 EXPECT_TRANSFORMATION_MATRIX_EQ( 745 EXPECT_TRANSFORMATION_MATRIX_EQ(
745 expected, 746 expected,
746 contrib_delegated_shared_quad_state->content_to_target_transform); 747 contrib_delegated_shared_quad_state->content_to_target_transform);
747 748
748 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 749 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
749 host_impl_->DidDrawAllLayers(frame); 750 host_impl_->DidDrawAllLayers(frame);
750 } 751 }
751 752
752 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { 753 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) {
753 root_delegated_render_pass_is_clipped_ = false; 754 root_delegated_render_pass_is_clipped_ = false;
754 SetUpTest(); 755 SetUpTest();
755 756
756 delegated_renderer_layer_->SetForceRenderSurface(true); 757 delegated_renderer_layer_->SetForceRenderSurface(true);
757 758
758 LayerTreeHostImpl::FrameData frame; 759 LayerTreeHostImpl::FrameData frame;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 795 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
795 contrib_delegated_shared_quad_state->clip_rect.ToString()); 796 contrib_delegated_shared_quad_state->clip_rect.ToString());
796 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 797 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
797 expected.MakeIdentity(); 798 expected.MakeIdentity();
798 expected.Scale(0.8f, 0.8f); 799 expected.Scale(0.8f, 0.8f);
799 expected.Translate(9.0, 9.0); 800 expected.Translate(9.0, 9.0);
800 EXPECT_TRANSFORMATION_MATRIX_EQ( 801 EXPECT_TRANSFORMATION_MATRIX_EQ(
801 expected, 802 expected,
802 contrib_delegated_shared_quad_state->content_to_target_transform); 803 contrib_delegated_shared_quad_state->content_to_target_transform);
803 804
804 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 805 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
805 host_impl_->DidDrawAllLayers(frame); 806 host_impl_->DidDrawAllLayers(frame);
806 } 807 }
807 808
808 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { 809 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) {
809 root_delegated_render_pass_is_clipped_ = true; 810 root_delegated_render_pass_is_clipped_ = true;
810 SetUpTest(); 811 SetUpTest();
811 812
812 delegated_renderer_layer_->SetForceRenderSurface(true); 813 delegated_renderer_layer_->SetForceRenderSurface(true);
813 814
814 LayerTreeHostImpl::FrameData frame; 815 LayerTreeHostImpl::FrameData frame;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), 850 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(),
850 contrib_delegated_shared_quad_state->clip_rect.ToString()); 851 contrib_delegated_shared_quad_state->clip_rect.ToString());
851 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); 852 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped);
852 expected.MakeIdentity(); 853 expected.MakeIdentity();
853 expected.Scale(0.8f, 0.8f); 854 expected.Scale(0.8f, 0.8f);
854 expected.Translate(9.0, 9.0); 855 expected.Translate(9.0, 9.0);
855 EXPECT_TRANSFORMATION_MATRIX_EQ( 856 EXPECT_TRANSFORMATION_MATRIX_EQ(
856 expected, 857 expected,
857 contrib_delegated_shared_quad_state->content_to_target_transform); 858 contrib_delegated_shared_quad_state->content_to_target_transform);
858 859
859 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 860 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
860 host_impl_->DidDrawAllLayers(frame); 861 host_impl_->DidDrawAllLayers(frame);
861 } 862 }
862 863
863 class DelegatedRendererLayerImplTestClip 864 class DelegatedRendererLayerImplTestClip
864 : public DelegatedRendererLayerImplTest { 865 : public DelegatedRendererLayerImplTest {
865 public: 866 public:
866 void SetUpTest() { 867 void SetUpTest() {
867 scoped_ptr<LayerImpl> root_layer = 868 scoped_ptr<LayerImpl> root_layer =
868 LayerImpl::Create(host_impl_->active_tree(), 1); 869 LayerImpl::Create(host_impl_->active_tree(), 1);
869 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 870 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 const SharedQuadState* root_delegated_shared_quad_state = 1026 const SharedQuadState* root_delegated_shared_quad_state =
1026 root_delegated_quad_list[0]->shared_quad_state; 1027 root_delegated_quad_list[0]->shared_quad_state;
1027 1028
1028 // When the quads don't have a clip of their own, the clip rect is set to 1029 // When the quads don't have a clip of their own, the clip rect is set to
1029 // the drawable_content_rect of the delegated renderer layer. 1030 // the drawable_content_rect of the delegated renderer layer.
1030 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), 1031 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(),
1031 root_delegated_shared_quad_state->clip_rect.ToString()); 1032 root_delegated_shared_quad_state->clip_rect.ToString());
1032 // Quads are clipped to the delegated renderer layer. 1033 // Quads are clipped to the delegated renderer layer.
1033 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1034 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1034 1035
1035 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1036 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1036 host_impl_->DidDrawAllLayers(frame); 1037 host_impl_->DidDrawAllLayers(frame);
1037 } 1038 }
1038 1039
1039 TEST_F(DelegatedRendererLayerImplTestClip, 1040 TEST_F(DelegatedRendererLayerImplTestClip,
1040 QuadsClipped_LayerUnclipped_NoSurface) { 1041 QuadsClipped_LayerUnclipped_NoSurface) {
1041 root_delegated_render_pass_is_clipped_ = true; 1042 root_delegated_render_pass_is_clipped_ = true;
1042 clip_delegated_renderer_layer_ = false; 1043 clip_delegated_renderer_layer_ = false;
1043 SetUpTest(); 1044 SetUpTest();
1044 1045
1045 LayerTreeHostImpl::FrameData frame; 1046 LayerTreeHostImpl::FrameData frame;
1046 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1047 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1047 1048
1048 ASSERT_EQ(2u, frame.render_passes.size()); 1049 ASSERT_EQ(2u, frame.render_passes.size());
1049 const QuadList& contrib_delegated_quad_list = 1050 const QuadList& contrib_delegated_quad_list =
1050 frame.render_passes[0]->quad_list; 1051 frame.render_passes[0]->quad_list;
1051 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1052 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1052 const QuadList& root_delegated_quad_list = 1053 const QuadList& root_delegated_quad_list =
1053 frame.render_passes[1]->quad_list; 1054 frame.render_passes[1]->quad_list;
1054 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1055 ASSERT_EQ(5u, root_delegated_quad_list.size());
1055 const SharedQuadState* root_delegated_shared_quad_state = 1056 const SharedQuadState* root_delegated_shared_quad_state =
1056 root_delegated_quad_list[0]->shared_quad_state; 1057 root_delegated_quad_list[0]->shared_quad_state;
1057 1058
1058 // When the quads have a clip of their own, it is used. 1059 // When the quads have a clip of their own, it is used.
1059 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), 1060 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(),
1060 root_delegated_shared_quad_state->clip_rect.ToString()); 1061 root_delegated_shared_quad_state->clip_rect.ToString());
1061 // Quads came with a clip rect. 1062 // Quads came with a clip rect.
1062 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1063 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1063 1064
1064 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1065 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1065 host_impl_->DidDrawAllLayers(frame); 1066 host_impl_->DidDrawAllLayers(frame);
1066 } 1067 }
1067 1068
1068 TEST_F(DelegatedRendererLayerImplTestClip, 1069 TEST_F(DelegatedRendererLayerImplTestClip,
1069 QuadsUnclipped_LayerClipped_NoSurface) { 1070 QuadsUnclipped_LayerClipped_NoSurface) {
1070 root_delegated_render_pass_is_clipped_ = false; 1071 root_delegated_render_pass_is_clipped_ = false;
1071 clip_delegated_renderer_layer_ = true; 1072 clip_delegated_renderer_layer_ = true;
1072 SetUpTest(); 1073 SetUpTest();
1073 1074
1074 LayerTreeHostImpl::FrameData frame; 1075 LayerTreeHostImpl::FrameData frame;
1075 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1076 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1076 1077
1077 ASSERT_EQ(2u, frame.render_passes.size()); 1078 ASSERT_EQ(2u, frame.render_passes.size());
1078 const QuadList& contrib_delegated_quad_list = 1079 const QuadList& contrib_delegated_quad_list =
1079 frame.render_passes[0]->quad_list; 1080 frame.render_passes[0]->quad_list;
1080 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1081 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1081 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1082 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1082 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1083 ASSERT_EQ(5u, root_delegated_quad_list.size());
1083 const SharedQuadState* root_delegated_shared_quad_state = 1084 const SharedQuadState* root_delegated_shared_quad_state =
1084 root_delegated_quad_list[0]->shared_quad_state; 1085 root_delegated_quad_list[0]->shared_quad_state;
1085 1086
1086 // When the quads don't have a clip of their own, the clip rect is set to 1087 // When the quads don't have a clip of their own, the clip rect is set to
1087 // the drawable_content_rect of the delegated renderer layer. When the layer 1088 // the drawable_content_rect of the delegated renderer layer. When the layer
1088 // is clipped, that should be seen in the quads' clip_rect. 1089 // is clipped, that should be seen in the quads' clip_rect.
1089 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), 1090 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(),
1090 root_delegated_shared_quad_state->clip_rect.ToString()); 1091 root_delegated_shared_quad_state->clip_rect.ToString());
1091 // Quads are clipped to the delegated renderer layer. 1092 // Quads are clipped to the delegated renderer layer.
1092 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1093 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1093 1094
1094 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1095 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1095 host_impl_->DidDrawAllLayers(frame); 1096 host_impl_->DidDrawAllLayers(frame);
1096 } 1097 }
1097 1098
1098 TEST_F(DelegatedRendererLayerImplTestClip, 1099 TEST_F(DelegatedRendererLayerImplTestClip,
1099 QuadsClipped_LayerClipped_NoSurface) { 1100 QuadsClipped_LayerClipped_NoSurface) {
1100 root_delegated_render_pass_is_clipped_ = true; 1101 root_delegated_render_pass_is_clipped_ = true;
1101 clip_delegated_renderer_layer_ = true; 1102 clip_delegated_renderer_layer_ = true;
1102 SetUpTest(); 1103 SetUpTest();
1103 1104
1104 LayerTreeHostImpl::FrameData frame; 1105 LayerTreeHostImpl::FrameData frame;
1105 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1106 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1106 1107
1107 ASSERT_EQ(2u, frame.render_passes.size()); 1108 ASSERT_EQ(2u, frame.render_passes.size());
1108 const QuadList& contrib_delegated_quad_list = 1109 const QuadList& contrib_delegated_quad_list =
1109 frame.render_passes[0]->quad_list; 1110 frame.render_passes[0]->quad_list;
1110 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1111 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1111 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1112 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1112 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1113 ASSERT_EQ(5u, root_delegated_quad_list.size());
1113 const SharedQuadState* root_delegated_shared_quad_state = 1114 const SharedQuadState* root_delegated_shared_quad_state =
1114 root_delegated_quad_list[0]->shared_quad_state; 1115 root_delegated_quad_list[0]->shared_quad_state;
1115 1116
1116 // When the quads have a clip of their own, it is used, but it is 1117 // When the quads have a clip of their own, it is used, but it is
1117 // combined with the clip rect of the delegated renderer layer. 1118 // combined with the clip rect of the delegated renderer layer.
1118 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), 1119 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(),
1119 root_delegated_shared_quad_state->clip_rect.ToString()); 1120 root_delegated_shared_quad_state->clip_rect.ToString());
1120 // Quads came with a clip rect. 1121 // Quads came with a clip rect.
1121 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1122 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1122 1123
1123 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1124 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1124 host_impl_->DidDrawAllLayers(frame); 1125 host_impl_->DidDrawAllLayers(frame);
1125 } 1126 }
1126 1127
1127 TEST_F(DelegatedRendererLayerImplTestClip, 1128 TEST_F(DelegatedRendererLayerImplTestClip,
1128 QuadsUnclipped_LayerUnclipped_Surface) { 1129 QuadsUnclipped_LayerUnclipped_Surface) {
1129 root_delegated_render_pass_is_clipped_ = false; 1130 root_delegated_render_pass_is_clipped_ = false;
1130 clip_delegated_renderer_layer_ = false; 1131 clip_delegated_renderer_layer_ = false;
1131 SetUpTest(); 1132 SetUpTest();
1132 1133
1133 delegated_renderer_layer_->SetForceRenderSurface(true); 1134 delegated_renderer_layer_->SetForceRenderSurface(true);
1134 1135
1135 LayerTreeHostImpl::FrameData frame; 1136 LayerTreeHostImpl::FrameData frame;
1136 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1137 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1137 1138
1138 ASSERT_EQ(3u, frame.render_passes.size()); 1139 ASSERT_EQ(3u, frame.render_passes.size());
1139 const QuadList& contrib_delegated_quad_list = 1140 const QuadList& contrib_delegated_quad_list =
1140 frame.render_passes[0]->quad_list; 1141 frame.render_passes[0]->quad_list;
1141 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1142 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1142 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1143 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1143 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1144 ASSERT_EQ(5u, root_delegated_quad_list.size());
1144 const SharedQuadState* root_delegated_shared_quad_state = 1145 const SharedQuadState* root_delegated_shared_quad_state =
1145 root_delegated_quad_list[0]->shared_quad_state; 1146 root_delegated_quad_list[0]->shared_quad_state;
1146 1147
1147 // When the layer owns a surface, the quads don't need to be clipped 1148 // 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 1149 // further than they already specify. If they aren't clipped, then their
1149 // clip rect is ignored, and they are not set as clipped. 1150 // clip rect is ignored, and they are not set as clipped.
1150 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1151 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1151 1152
1152 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1153 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1153 host_impl_->DidDrawAllLayers(frame); 1154 host_impl_->DidDrawAllLayers(frame);
1154 } 1155 }
1155 1156
1156 TEST_F(DelegatedRendererLayerImplTestClip, 1157 TEST_F(DelegatedRendererLayerImplTestClip,
1157 QuadsClipped_LayerUnclipped_Surface) { 1158 QuadsClipped_LayerUnclipped_Surface) {
1158 root_delegated_render_pass_is_clipped_ = true; 1159 root_delegated_render_pass_is_clipped_ = true;
1159 clip_delegated_renderer_layer_ = false; 1160 clip_delegated_renderer_layer_ = false;
1160 SetUpTest(); 1161 SetUpTest();
1161 1162
1162 delegated_renderer_layer_->SetForceRenderSurface(true); 1163 delegated_renderer_layer_->SetForceRenderSurface(true);
1163 1164
1164 LayerTreeHostImpl::FrameData frame; 1165 LayerTreeHostImpl::FrameData frame;
1165 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1166 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1166 1167
1167 ASSERT_EQ(3u, frame.render_passes.size()); 1168 ASSERT_EQ(3u, frame.render_passes.size());
1168 const QuadList& contrib_delegated_quad_list = 1169 const QuadList& contrib_delegated_quad_list =
1169 frame.render_passes[0]->quad_list; 1170 frame.render_passes[0]->quad_list;
1170 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1171 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1171 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1172 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1172 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1173 ASSERT_EQ(5u, root_delegated_quad_list.size());
1173 const SharedQuadState* root_delegated_shared_quad_state = 1174 const SharedQuadState* root_delegated_shared_quad_state =
1174 root_delegated_quad_list[0]->shared_quad_state; 1175 root_delegated_quad_list[0]->shared_quad_state;
1175 1176
1176 // When the quads have a clip of their own, it is used. 1177 // When the quads have a clip of their own, it is used.
1177 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1178 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1178 root_delegated_shared_quad_state->clip_rect.ToString()); 1179 root_delegated_shared_quad_state->clip_rect.ToString());
1179 // Quads came with a clip rect. 1180 // Quads came with a clip rect.
1180 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1181 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1181 1182
1182 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1183 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1183 host_impl_->DidDrawAllLayers(frame); 1184 host_impl_->DidDrawAllLayers(frame);
1184 } 1185 }
1185 1186
1186 TEST_F(DelegatedRendererLayerImplTestClip, 1187 TEST_F(DelegatedRendererLayerImplTestClip,
1187 QuadsUnclipped_LayerClipped_Surface) { 1188 QuadsUnclipped_LayerClipped_Surface) {
1188 root_delegated_render_pass_is_clipped_ = false; 1189 root_delegated_render_pass_is_clipped_ = false;
1189 clip_delegated_renderer_layer_ = true; 1190 clip_delegated_renderer_layer_ = true;
1190 SetUpTest(); 1191 SetUpTest();
1191 1192
1192 delegated_renderer_layer_->SetForceRenderSurface(true); 1193 delegated_renderer_layer_->SetForceRenderSurface(true);
1193 1194
1194 LayerTreeHostImpl::FrameData frame; 1195 LayerTreeHostImpl::FrameData frame;
1195 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1196 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1196 1197
1197 ASSERT_EQ(3u, frame.render_passes.size()); 1198 ASSERT_EQ(3u, frame.render_passes.size());
1198 const QuadList& contrib_delegated_quad_list = 1199 const QuadList& contrib_delegated_quad_list =
1199 frame.render_passes[0]->quad_list; 1200 frame.render_passes[0]->quad_list;
1200 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); 1201 ASSERT_EQ(2u, contrib_delegated_quad_list.size());
1201 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; 1202 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list;
1202 ASSERT_EQ(5u, root_delegated_quad_list.size()); 1203 ASSERT_EQ(5u, root_delegated_quad_list.size());
1203 const SharedQuadState* root_delegated_shared_quad_state = 1204 const SharedQuadState* root_delegated_shared_quad_state =
1204 root_delegated_quad_list[0]->shared_quad_state; 1205 root_delegated_quad_list[0]->shared_quad_state;
1205 1206
1206 // When the layer owns a surface, the quads don't need to be clipped 1207 // When the layer owns a surface, the quads don't need to be clipped
1207 // further than they already specify. If they aren't clipped, then their 1208 // further than they already specify. If they aren't clipped, then their
1208 // clip rect is ignored, and they are not set as clipped. 1209 // clip rect is ignored, and they are not set as clipped.
1209 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); 1210 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped);
1210 1211
1211 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1212 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1212 host_impl_->DidDrawAllLayers(frame); 1213 host_impl_->DidDrawAllLayers(frame);
1213 } 1214 }
1214 1215
1215 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { 1216 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) {
1216 root_delegated_render_pass_is_clipped_ = true; 1217 root_delegated_render_pass_is_clipped_ = true;
1217 clip_delegated_renderer_layer_ = true; 1218 clip_delegated_renderer_layer_ = true;
1218 SetUpTest(); 1219 SetUpTest();
1219 1220
1220 delegated_renderer_layer_->SetForceRenderSurface(true); 1221 delegated_renderer_layer_->SetForceRenderSurface(true);
1221 1222
(...skipping 10 matching lines...) Expand all
1232 root_delegated_quad_list[0]->shared_quad_state; 1233 root_delegated_quad_list[0]->shared_quad_state;
1233 1234
1234 // When the quads have a clip of their own, it is used, but it is 1235 // When the quads have a clip of their own, it is used, but it is
1235 // combined with the clip rect of the delegated renderer layer. If the 1236 // combined with the clip rect of the delegated renderer layer. If the
1236 // layer owns a surface, then it does not have a clip rect of its own. 1237 // layer owns a surface, then it does not have a clip rect of its own.
1237 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), 1238 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(),
1238 root_delegated_shared_quad_state->clip_rect.ToString()); 1239 root_delegated_shared_quad_state->clip_rect.ToString());
1239 // Quads came with a clip rect. 1240 // Quads came with a clip rect.
1240 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); 1241 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped);
1241 1242
1242 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1243 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1243 host_impl_->DidDrawAllLayers(frame); 1244 host_impl_->DidDrawAllLayers(frame);
1244 } 1245 }
1245 1246
1246 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) { 1247 TEST_F(DelegatedRendererLayerImplTest, InvalidRenderPassDrawQuad) {
1247 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( 1248 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create(
1248 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); 1249 host_impl_->active_tree(), 1).PassAs<LayerImpl>();
1249 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = 1250 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer =
1250 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); 1251 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4);
1251 1252
1252 host_impl_->SetViewportSize(gfx::Size(100, 100)); 1253 host_impl_->SetViewportSize(gfx::Size(100, 100));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 1286
1286 LayerTreeHostImpl::FrameData frame; 1287 LayerTreeHostImpl::FrameData frame;
1287 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); 1288 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect()));
1288 1289
1289 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad. 1290 // The DelegatedRendererLayerImpl should drop the bad RenderPassDrawQuad.
1290 ASSERT_EQ(1u, frame.render_passes.size()); 1291 ASSERT_EQ(1u, frame.render_passes.size());
1291 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); 1292 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size());
1292 EXPECT_EQ(DrawQuad::SOLID_COLOR, 1293 EXPECT_EQ(DrawQuad::SOLID_COLOR,
1293 frame.render_passes[0]->quad_list[0]->material); 1294 frame.render_passes[0]->quad_list[0]->material);
1294 1295
1295 host_impl_->DrawLayers(&frame, base::TimeTicks::Now()); 1296 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
1296 host_impl_->DidDrawAllLayers(frame); 1297 host_impl_->DidDrawAllLayers(frame);
1297 } 1298 }
1298 1299
1299 } // namespace 1300 } // namespace
1300 } // namespace cc 1301 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/top_controls_manager_unittest.cc ('k') | cc/output/begin_frame_args.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698