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

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

Issue 429743003: Rename Animate as Begin(Main)Frame (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Build fix. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/tile_manager_perftest.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
11 11
12 #include "cc/base/math_util.h" 12 #include "cc/base/math_util.h"
13 #include "cc/layers/append_quads_data.h" 13 #include "cc/layers/append_quads_data.h"
14 #include "cc/layers/picture_layer.h" 14 #include "cc/layers/picture_layer.h"
15 #include "cc/quads/draw_quad.h" 15 #include "cc/quads/draw_quad.h"
16 #include "cc/test/begin_frame_args_test.h"
16 #include "cc/test/fake_content_layer_client.h" 17 #include "cc/test/fake_content_layer_client.h"
17 #include "cc/test/fake_impl_proxy.h" 18 #include "cc/test/fake_impl_proxy.h"
18 #include "cc/test/fake_layer_tree_host_impl.h" 19 #include "cc/test/fake_layer_tree_host_impl.h"
19 #include "cc/test/fake_output_surface.h" 20 #include "cc/test/fake_output_surface.h"
20 #include "cc/test/fake_picture_layer_impl.h" 21 #include "cc/test/fake_picture_layer_impl.h"
21 #include "cc/test/fake_picture_pile_impl.h" 22 #include "cc/test/fake_picture_pile_impl.h"
22 #include "cc/test/geometry_test_utils.h" 23 #include "cc/test/geometry_test_utils.h"
23 #include "cc/test/impl_side_painting_settings.h" 24 #include "cc/test/impl_side_painting_settings.h"
24 #include "cc/test/layer_test_common.h" 25 #include "cc/test/layer_test_common.h"
25 #include "cc/test/test_shared_bitmap_manager.h" 26 #include "cc/test/test_shared_bitmap_manager.h"
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 300
300 const PictureLayerTilingSet* tilings = pending_layer_->tilings(); 301 const PictureLayerTilingSet* tilings = pending_layer_->tilings();
301 EXPECT_GT(tilings->num_tilings(), 0u); 302 EXPECT_GT(tilings->num_tilings(), 0u);
302 for (size_t i = 0; i < tilings->num_tilings(); ++i) 303 for (size_t i = 0; i < tilings->num_tilings(); ++i)
303 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get()); 304 VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), active_pile.get());
304 } 305 }
305 306
306 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) { 307 TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) {
307 base::TimeTicks time_ticks; 308 base::TimeTicks time_ticks;
308 time_ticks += base::TimeDelta::FromMilliseconds(1); 309 time_ticks += base::TimeDelta::FromMilliseconds(1);
309 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 310 host_impl_.SetCurrentBeginFrameArgs(
311 CreateBeginFrameArgsForTesting(time_ticks));
310 gfx::Size tile_size(100, 100); 312 gfx::Size tile_size(100, 100);
311 gfx::Size layer_bounds(400, 400); 313 gfx::Size layer_bounds(400, 400);
312 314
313 scoped_refptr<FakePicturePileImpl> pending_pile = 315 scoped_refptr<FakePicturePileImpl> pending_pile =
314 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 316 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
315 scoped_refptr<FakePicturePileImpl> active_pile = 317 scoped_refptr<FakePicturePileImpl> active_pile =
316 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 318 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
317 319
318 SetupTrees(pending_pile, active_pile); 320 SetupTrees(pending_pile, active_pile);
319 321
320 Region invalidation; 322 Region invalidation;
321 AddDefaultTilingsWithInvalidation(invalidation); 323 AddDefaultTilingsWithInvalidation(invalidation);
322 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false); 324 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, false);
323 325
324 time_ticks += base::TimeDelta::FromMilliseconds(200); 326 time_ticks += base::TimeDelta::FromMilliseconds(200);
325 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 327 host_impl_.SetCurrentBeginFrameArgs(
328 CreateBeginFrameArgsForTesting(time_ticks));
326 329
327 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the 330 // Update tiles with viewport for tile priority as (0, 0, 100, 100) and the
328 // identify transform for tile priority. 331 // identify transform for tile priority.
329 bool resourceless_software_draw = false; 332 bool resourceless_software_draw = false;
330 gfx::Rect viewport = gfx::Rect(layer_bounds), 333 gfx::Rect viewport = gfx::Rect(layer_bounds),
331 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100); 334 viewport_rect_for_tile_priority = gfx::Rect(0, 0, 100, 100);
332 gfx::Transform transform, transform_for_tile_priority; 335 gfx::Transform transform, transform_for_tile_priority;
333 336
334 host_impl_.SetExternalDrawConstraints(transform, 337 host_impl_.SetExternalDrawConstraints(transform,
335 viewport, 338 viewport,
(...skipping 20 matching lines...) Expand all
356 tiling->GetCurrentVisibleRectForTesting(), 359 tiling->GetCurrentVisibleRectForTesting(),
357 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, 360 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space,
358 tiling->contents_scale())); 361 tiling->contents_scale()));
359 } 362 }
360 363
361 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in 364 // Update tiles with viewport for tile priority as (200, 200, 100, 100) in
362 // screen space and the transform for tile priority is translated and 365 // screen space and the transform for tile priority is translated and
363 // rotated. The actual viewport for tile priority used by PictureLayerImpl 366 // rotated. The actual viewport for tile priority used by PictureLayerImpl
364 // should be (200, 200, 100, 100) applied with the said transform. 367 // should be (200, 200, 100, 100) applied with the said transform.
365 time_ticks += base::TimeDelta::FromMilliseconds(200); 368 time_ticks += base::TimeDelta::FromMilliseconds(200);
366 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 369 host_impl_.SetCurrentBeginFrameArgs(
370 CreateBeginFrameArgsForTesting(time_ticks));
367 371
368 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100); 372 viewport_rect_for_tile_priority = gfx::Rect(200, 200, 100, 100);
369 transform_for_tile_priority.Translate(100, 100); 373 transform_for_tile_priority.Translate(100, 100);
370 transform_for_tile_priority.Rotate(45); 374 transform_for_tile_priority.Rotate(45);
371 host_impl_.SetExternalDrawConstraints(transform, 375 host_impl_.SetExternalDrawConstraints(transform,
372 viewport, 376 viewport,
373 viewport, 377 viewport,
374 viewport_rect_for_tile_priority, 378 viewport_rect_for_tile_priority,
375 transform_for_tile_priority, 379 transform_for_tile_priority,
376 resourceless_software_draw); 380 resourceless_software_draw);
(...skipping 23 matching lines...) Expand all
400 EXPECT_EQ( 404 EXPECT_EQ(
401 tiling->GetCurrentVisibleRectForTesting(), 405 tiling->GetCurrentVisibleRectForTesting(),
402 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space, 406 gfx::ScaleToEnclosingRect(viewport_rect_for_tile_priority_in_view_space,
403 tiling->contents_scale())); 407 tiling->contents_scale()));
404 } 408 }
405 } 409 }
406 410
407 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 411 TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
408 base::TimeTicks time_ticks; 412 base::TimeTicks time_ticks;
409 time_ticks += base::TimeDelta::FromMilliseconds(1); 413 time_ticks += base::TimeDelta::FromMilliseconds(1);
410 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 414 host_impl_.SetCurrentBeginFrameArgs(
415 CreateBeginFrameArgsForTesting(time_ticks));
411 416
412 gfx::Size tile_size(100, 100); 417 gfx::Size tile_size(100, 100);
413 gfx::Size layer_bounds(400, 400); 418 gfx::Size layer_bounds(400, 400);
414 419
415 scoped_refptr<FakePicturePileImpl> pending_pile = 420 scoped_refptr<FakePicturePileImpl> pending_pile =
416 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 421 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
417 scoped_refptr<FakePicturePileImpl> active_pile = 422 scoped_refptr<FakePicturePileImpl> active_pile =
418 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 423 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
419 424
420 SetupTrees(pending_pile, active_pile); 425 SetupTrees(pending_pile, active_pile);
(...skipping 23 matching lines...) Expand all
444 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 449 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
445 gfx::Rect viewport_rect_for_tile_priority = 450 gfx::Rect viewport_rect_for_tile_priority =
446 active_layer_->viewport_rect_for_tile_priority(); 451 active_layer_->viewport_rect_for_tile_priority();
447 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); 452 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty());
448 gfx::Transform screen_space_transform_for_tile_priority = 453 gfx::Transform screen_space_transform_for_tile_priority =
449 active_layer_->screen_space_transform_for_tile_priority(); 454 active_layer_->screen_space_transform_for_tile_priority();
450 455
451 // Expand viewport and set it as invalid for prioritizing tiles. 456 // Expand viewport and set it as invalid for prioritizing tiles.
452 // Should not update tile viewport. 457 // Should not update tile viewport.
453 time_ticks += base::TimeDelta::FromMilliseconds(200); 458 time_ticks += base::TimeDelta::FromMilliseconds(200);
454 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 459 host_impl_.SetCurrentBeginFrameArgs(
460 CreateBeginFrameArgsForTesting(time_ticks));
455 resourceless_software_draw = true; 461 resourceless_software_draw = true;
456 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 462 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
457 transform.Translate(1.f, 1.f); 463 transform.Translate(1.f, 1.f);
458 active_layer_->draw_properties().visible_content_rect = viewport; 464 active_layer_->draw_properties().visible_content_rect = viewport;
459 active_layer_->draw_properties().screen_space_transform = transform; 465 active_layer_->draw_properties().screen_space_transform = transform;
460 host_impl_.SetExternalDrawConstraints(transform, 466 host_impl_.SetExternalDrawConstraints(transform,
461 viewport, 467 viewport,
462 viewport, 468 viewport,
463 viewport, 469 viewport,
464 transform, 470 transform,
465 resourceless_software_draw); 471 resourceless_software_draw);
466 active_layer_->UpdateTiles(NULL); 472 active_layer_->UpdateTiles(NULL);
467 473
468 EXPECT_RECT_EQ(visible_rect_for_tile_priority, 474 EXPECT_RECT_EQ(visible_rect_for_tile_priority,
469 active_layer_->visible_rect_for_tile_priority()); 475 active_layer_->visible_rect_for_tile_priority());
470 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, 476 EXPECT_RECT_EQ(viewport_rect_for_tile_priority,
471 active_layer_->viewport_rect_for_tile_priority()); 477 active_layer_->viewport_rect_for_tile_priority());
472 EXPECT_TRANSFORMATION_MATRIX_EQ( 478 EXPECT_TRANSFORMATION_MATRIX_EQ(
473 screen_space_transform_for_tile_priority, 479 screen_space_transform_for_tile_priority,
474 active_layer_->screen_space_transform_for_tile_priority()); 480 active_layer_->screen_space_transform_for_tile_priority());
475 481
476 // Keep expanded viewport but mark it valid. Should update tile viewport. 482 // Keep expanded viewport but mark it valid. Should update tile viewport.
477 time_ticks += base::TimeDelta::FromMilliseconds(200); 483 time_ticks += base::TimeDelta::FromMilliseconds(200);
478 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 484 host_impl_.SetCurrentBeginFrameArgs(
485 CreateBeginFrameArgsForTesting(time_ticks));
479 resourceless_software_draw = false; 486 resourceless_software_draw = false;
480 host_impl_.SetExternalDrawConstraints(transform, 487 host_impl_.SetExternalDrawConstraints(transform,
481 viewport, 488 viewport,
482 viewport, 489 viewport,
483 viewport, 490 viewport,
484 transform, 491 transform,
485 resourceless_software_draw); 492 resourceless_software_draw);
486 active_layer_->UpdateTiles(NULL); 493 active_layer_->UpdateTiles(NULL);
487 494
488 EXPECT_FALSE(visible_rect_for_tile_priority == 495 EXPECT_FALSE(visible_rect_for_tile_priority ==
(...skipping 2177 matching lines...) Expand 10 before | Expand all | Expand 10 after
2666 // need content in order to activate. 2673 // need content in order to activate.
2667 pending_layer_->MarkVisibleResourcesAsRequired(); 2674 pending_layer_->MarkVisibleResourcesAsRequired();
2668 AssertNoTilesRequired(pending_layer_->HighResTiling()); 2675 AssertNoTilesRequired(pending_layer_->HighResTiling());
2669 if (host_impl_.settings().create_low_res_tiling) 2676 if (host_impl_.settings().create_low_res_tiling)
2670 AssertNoTilesRequired(pending_layer_->LowResTiling()); 2677 AssertNoTilesRequired(pending_layer_->LowResTiling());
2671 } 2678 }
2672 2679
2673 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) { 2680 TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
2674 base::TimeTicks time_ticks; 2681 base::TimeTicks time_ticks;
2675 time_ticks += base::TimeDelta::FromMilliseconds(1); 2682 time_ticks += base::TimeDelta::FromMilliseconds(1);
2676 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 2683 host_impl_.SetCurrentBeginFrameArgs(
2684 CreateBeginFrameArgsForTesting(time_ticks));
2677 2685
2678 gfx::Size tile_size(100, 100); 2686 gfx::Size tile_size(100, 100);
2679 gfx::Size layer_bounds(400, 400); 2687 gfx::Size layer_bounds(400, 400);
2680 2688
2681 scoped_refptr<FakePicturePileImpl> pending_pile = 2689 scoped_refptr<FakePicturePileImpl> pending_pile =
2682 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 2690 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
2683 scoped_refptr<FakePicturePileImpl> active_pile = 2691 scoped_refptr<FakePicturePileImpl> active_pile =
2684 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 2692 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
2685 2693
2686 SetupTrees(pending_pile, active_pile); 2694 SetupTrees(pending_pile, active_pile);
(...skipping 23 matching lines...) Expand all
2710 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty()); 2718 EXPECT_FALSE(visible_rect_for_tile_priority.IsEmpty());
2711 gfx::Rect viewport_rect_for_tile_priority = 2719 gfx::Rect viewport_rect_for_tile_priority =
2712 active_layer_->viewport_rect_for_tile_priority(); 2720 active_layer_->viewport_rect_for_tile_priority();
2713 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty()); 2721 EXPECT_FALSE(viewport_rect_for_tile_priority.IsEmpty());
2714 gfx::Transform screen_space_transform_for_tile_priority = 2722 gfx::Transform screen_space_transform_for_tile_priority =
2715 active_layer_->screen_space_transform_for_tile_priority(); 2723 active_layer_->screen_space_transform_for_tile_priority();
2716 2724
2717 // Expand viewport and set it as invalid for prioritizing tiles. 2725 // Expand viewport and set it as invalid for prioritizing tiles.
2718 // Should not update tile viewport. 2726 // Should not update tile viewport.
2719 time_ticks += base::TimeDelta::FromMilliseconds(200); 2727 time_ticks += base::TimeDelta::FromMilliseconds(200);
2720 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 2728 host_impl_.SetCurrentBeginFrameArgs(
2729 CreateBeginFrameArgsForTesting(time_ticks));
2721 resourceless_software_draw = true; 2730 resourceless_software_draw = true;
2722 viewport = gfx::ScaleToEnclosingRect(viewport, 2); 2731 viewport = gfx::ScaleToEnclosingRect(viewport, 2);
2723 transform.Translate(1.f, 1.f); 2732 transform.Translate(1.f, 1.f);
2724 active_layer_->draw_properties().visible_content_rect = viewport; 2733 active_layer_->draw_properties().visible_content_rect = viewport;
2725 active_layer_->draw_properties().screen_space_transform = transform; 2734 active_layer_->draw_properties().screen_space_transform = transform;
2726 host_impl_.SetExternalDrawConstraints(transform, 2735 host_impl_.SetExternalDrawConstraints(transform,
2727 viewport, 2736 viewport,
2728 viewport, 2737 viewport,
2729 viewport, 2738 viewport,
2730 transform, 2739 transform,
2731 resourceless_software_draw); 2740 resourceless_software_draw);
2732 active_layer_->UpdateTiles(NULL); 2741 active_layer_->UpdateTiles(NULL);
2733 2742
2734 EXPECT_RECT_EQ(visible_rect_for_tile_priority, 2743 EXPECT_RECT_EQ(visible_rect_for_tile_priority,
2735 active_layer_->visible_rect_for_tile_priority()); 2744 active_layer_->visible_rect_for_tile_priority());
2736 EXPECT_RECT_EQ(viewport_rect_for_tile_priority, 2745 EXPECT_RECT_EQ(viewport_rect_for_tile_priority,
2737 active_layer_->viewport_rect_for_tile_priority()); 2746 active_layer_->viewport_rect_for_tile_priority());
2738 EXPECT_TRANSFORMATION_MATRIX_EQ( 2747 EXPECT_TRANSFORMATION_MATRIX_EQ(
2739 screen_space_transform_for_tile_priority, 2748 screen_space_transform_for_tile_priority,
2740 active_layer_->screen_space_transform_for_tile_priority()); 2749 active_layer_->screen_space_transform_for_tile_priority());
2741 2750
2742 // Keep expanded viewport but mark it valid. Should update tile viewport. 2751 // Keep expanded viewport but mark it valid. Should update tile viewport.
2743 time_ticks += base::TimeDelta::FromMilliseconds(200); 2752 time_ticks += base::TimeDelta::FromMilliseconds(200);
2744 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 2753 host_impl_.SetCurrentBeginFrameArgs(
2754 CreateBeginFrameArgsForTesting(time_ticks));
2745 resourceless_software_draw = false; 2755 resourceless_software_draw = false;
2746 host_impl_.SetExternalDrawConstraints(transform, 2756 host_impl_.SetExternalDrawConstraints(transform,
2747 viewport, 2757 viewport,
2748 viewport, 2758 viewport,
2749 viewport, 2759 viewport,
2750 transform, 2760 transform,
2751 resourceless_software_draw); 2761 resourceless_software_draw);
2752 active_layer_->UpdateTiles(NULL); 2762 active_layer_->UpdateTiles(NULL);
2753 2763
2754 EXPECT_FALSE(visible_rect_for_tile_priority == 2764 EXPECT_FALSE(visible_rect_for_tile_priority ==
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
3157 EXPECT_EQ(expected_occluded_tile_count[priority_count], 3167 EXPECT_EQ(expected_occluded_tile_count[priority_count],
3158 occluded_tile_count); 3168 occluded_tile_count);
3159 } 3169 }
3160 } 3170 }
3161 }; 3171 };
3162 3172
3163 TEST_F(OcclusionTrackingPictureLayerImplTest, 3173 TEST_F(OcclusionTrackingPictureLayerImplTest,
3164 OccludedTilesSkippedDuringRasterization) { 3174 OccludedTilesSkippedDuringRasterization) {
3165 base::TimeTicks time_ticks; 3175 base::TimeTicks time_ticks;
3166 time_ticks += base::TimeDelta::FromMilliseconds(1); 3176 time_ticks += base::TimeDelta::FromMilliseconds(1);
3167 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3177 host_impl_.SetCurrentBeginFrameArgs(
3178 CreateBeginFrameArgsForTesting(time_ticks));
3168 3179
3169 gfx::Size tile_size(102, 102); 3180 gfx::Size tile_size(102, 102);
3170 gfx::Size layer_bounds(1000, 1000); 3181 gfx::Size layer_bounds(1000, 1000);
3171 gfx::Size viewport_size(500, 500); 3182 gfx::Size viewport_size(500, 500);
3172 gfx::Point occluding_layer_position(310, 0); 3183 gfx::Point occluding_layer_position(310, 0);
3173 3184
3174 scoped_refptr<FakePicturePileImpl> pending_pile = 3185 scoped_refptr<FakePicturePileImpl> pending_pile =
3175 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3186 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3176 SetupPendingTree(pending_pile); 3187 SetupPendingTree(pending_pile);
3177 pending_layer_->set_fixed_tile_size(tile_size); 3188 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 24 matching lines...) Expand all
3202 // Partial occlusion. 3213 // Partial occlusion.
3203 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 3214 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
3204 LayerImpl* layer1 = pending_layer_->children()[0]; 3215 LayerImpl* layer1 = pending_layer_->children()[0];
3205 layer1->SetBounds(layer_bounds); 3216 layer1->SetBounds(layer_bounds);
3206 layer1->SetContentBounds(layer_bounds); 3217 layer1->SetContentBounds(layer_bounds);
3207 layer1->SetDrawsContent(true); 3218 layer1->SetDrawsContent(true);
3208 layer1->SetContentsOpaque(true); 3219 layer1->SetContentsOpaque(true);
3209 layer1->SetPosition(occluding_layer_position); 3220 layer1->SetPosition(occluding_layer_position);
3210 3221
3211 time_ticks += base::TimeDelta::FromMilliseconds(200); 3222 time_ticks += base::TimeDelta::FromMilliseconds(200);
3212 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3223 host_impl_.SetCurrentBeginFrameArgs(
3224 CreateBeginFrameArgsForTesting(time_ticks));
3213 host_impl_.pending_tree()->UpdateDrawProperties(); 3225 host_impl_.pending_tree()->UpdateDrawProperties();
3214 3226
3215 unoccluded_tile_count = 0; 3227 unoccluded_tile_count = 0;
3216 for (PictureLayerImpl::LayerRasterTileIterator it = 3228 for (PictureLayerImpl::LayerRasterTileIterator it =
3217 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3229 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3218 it; 3230 it;
3219 ++it) { 3231 ++it) {
3220 Tile* tile = *it; 3232 Tile* tile = *it;
3221 3233
3222 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3234 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3223 3235
3224 bool tile_is_visible = 3236 bool tile_is_visible =
3225 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3237 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3226 if (tile_is_visible) 3238 if (tile_is_visible)
3227 unoccluded_tile_count++; 3239 unoccluded_tile_count++;
3228 } 3240 }
3229 EXPECT_EQ(unoccluded_tile_count, 20 + 2); 3241 EXPECT_EQ(unoccluded_tile_count, 20 + 2);
3230 3242
3231 // Full occlusion. 3243 // Full occlusion.
3232 layer1->SetPosition(gfx::Point(0, 0)); 3244 layer1->SetPosition(gfx::Point(0, 0));
3233 3245
3234 time_ticks += base::TimeDelta::FromMilliseconds(200); 3246 time_ticks += base::TimeDelta::FromMilliseconds(200);
3235 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3247 host_impl_.SetCurrentBeginFrameArgs(
3248 CreateBeginFrameArgsForTesting(time_ticks));
3236 host_impl_.pending_tree()->UpdateDrawProperties(); 3249 host_impl_.pending_tree()->UpdateDrawProperties();
3237 3250
3238 unoccluded_tile_count = 0; 3251 unoccluded_tile_count = 0;
3239 for (PictureLayerImpl::LayerRasterTileIterator it = 3252 for (PictureLayerImpl::LayerRasterTileIterator it =
3240 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false); 3253 PictureLayerImpl::LayerRasterTileIterator(pending_layer_, false);
3241 it; 3254 it;
3242 ++it) { 3255 ++it) {
3243 Tile* tile = *it; 3256 Tile* tile = *it;
3244 3257
3245 EXPECT_FALSE(tile->is_occluded(PENDING_TREE)); 3258 EXPECT_FALSE(tile->is_occluded(PENDING_TREE));
3246 3259
3247 bool tile_is_visible = 3260 bool tile_is_visible =
3248 tile->content_rect().Intersects(pending_layer_->visible_content_rect()); 3261 tile->content_rect().Intersects(pending_layer_->visible_content_rect());
3249 if (tile_is_visible) 3262 if (tile_is_visible)
3250 unoccluded_tile_count++; 3263 unoccluded_tile_count++;
3251 } 3264 }
3252 EXPECT_EQ(unoccluded_tile_count, 0); 3265 EXPECT_EQ(unoccluded_tile_count, 0);
3253 } 3266 }
3254 3267
3255 TEST_F(OcclusionTrackingPictureLayerImplTest, 3268 TEST_F(OcclusionTrackingPictureLayerImplTest,
3256 OccludedTilesNotMarkedAsRequired) { 3269 OccludedTilesNotMarkedAsRequired) {
3257 base::TimeTicks time_ticks; 3270 base::TimeTicks time_ticks;
3258 time_ticks += base::TimeDelta::FromMilliseconds(1); 3271 time_ticks += base::TimeDelta::FromMilliseconds(1);
3259 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3272 host_impl_.SetCurrentBeginFrameArgs(
3273 CreateBeginFrameArgsForTesting(time_ticks));
3260 3274
3261 gfx::Size tile_size(102, 102); 3275 gfx::Size tile_size(102, 102);
3262 gfx::Size layer_bounds(1000, 1000); 3276 gfx::Size layer_bounds(1000, 1000);
3263 gfx::Size viewport_size(500, 500); 3277 gfx::Size viewport_size(500, 500);
3264 gfx::Point occluding_layer_position(310, 0); 3278 gfx::Point occluding_layer_position(310, 0);
3265 3279
3266 scoped_refptr<FakePicturePileImpl> pending_pile = 3280 scoped_refptr<FakePicturePileImpl> pending_pile =
3267 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 3281 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
3268 SetupPendingTree(pending_pile); 3282 SetupPendingTree(pending_pile);
3269 pending_layer_->set_fixed_tile_size(tile_size); 3283 pending_layer_->set_fixed_tile_size(tile_size);
(...skipping 29 matching lines...) Expand all
3299 // Partial occlusion. 3313 // Partial occlusion.
3300 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1)); 3314 pending_layer_->AddChild(LayerImpl::Create(host_impl_.pending_tree(), 1));
3301 LayerImpl* layer1 = pending_layer_->children()[0]; 3315 LayerImpl* layer1 = pending_layer_->children()[0];
3302 layer1->SetBounds(layer_bounds); 3316 layer1->SetBounds(layer_bounds);
3303 layer1->SetContentBounds(layer_bounds); 3317 layer1->SetContentBounds(layer_bounds);
3304 layer1->SetDrawsContent(true); 3318 layer1->SetDrawsContent(true);
3305 layer1->SetContentsOpaque(true); 3319 layer1->SetContentsOpaque(true);
3306 layer1->SetPosition(occluding_layer_position); 3320 layer1->SetPosition(occluding_layer_position);
3307 3321
3308 time_ticks += base::TimeDelta::FromMilliseconds(200); 3322 time_ticks += base::TimeDelta::FromMilliseconds(200);
3309 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3323 host_impl_.SetCurrentBeginFrameArgs(
3324 CreateBeginFrameArgsForTesting(time_ticks));
3310 host_impl_.pending_tree()->UpdateDrawProperties(); 3325 host_impl_.pending_tree()->UpdateDrawProperties();
3311 3326
3312 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 3327 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
3313 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 3328 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
3314 3329
3315 occluded_tile_count = 0; 3330 occluded_tile_count = 0;
3316 for (PictureLayerTiling::CoverageIterator iter( 3331 for (PictureLayerTiling::CoverageIterator iter(
3317 tiling, 3332 tiling,
3318 pending_layer_->contents_scale_x(), 3333 pending_layer_->contents_scale_x(),
3319 gfx::Rect(layer_bounds)); 3334 gfx::Rect(layer_bounds));
(...skipping 17 matching lines...) Expand all
3337 break; 3352 break;
3338 default: 3353 default:
3339 NOTREACHED(); 3354 NOTREACHED();
3340 } 3355 }
3341 } 3356 }
3342 3357
3343 // Full occlusion. 3358 // Full occlusion.
3344 layer1->SetPosition(gfx::PointF(0, 0)); 3359 layer1->SetPosition(gfx::PointF(0, 0));
3345 3360
3346 time_ticks += base::TimeDelta::FromMilliseconds(200); 3361 time_ticks += base::TimeDelta::FromMilliseconds(200);
3347 host_impl_.SetCurrentFrameTimeTicks(time_ticks); 3362 host_impl_.SetCurrentBeginFrameArgs(
3363 CreateBeginFrameArgsForTesting(time_ticks));
3348 host_impl_.pending_tree()->UpdateDrawProperties(); 3364 host_impl_.pending_tree()->UpdateDrawProperties();
3349 3365
3350 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) { 3366 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
3351 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i); 3367 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
3352 3368
3353 occluded_tile_count = 0; 3369 occluded_tile_count = 0;
3354 for (PictureLayerTiling::CoverageIterator iter( 3370 for (PictureLayerTiling::CoverageIterator iter(
3355 tiling, 3371 tiling,
3356 pending_layer_->contents_scale_x(), 3372 pending_layer_->contents_scale_x(),
3357 gfx::Rect(layer_bounds)); 3373 gfx::Rect(layer_bounds));
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
3704 3720
3705 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles); 3721 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles);
3706 3722
3707 VerifyEvictionConsidersOcclusion(pending_layer_, 3723 VerifyEvictionConsidersOcclusion(pending_layer_,
3708 total_expected_occluded_tile_count); 3724 total_expected_occluded_tile_count);
3709 VerifyEvictionConsidersOcclusion(active_layer_, 3725 VerifyEvictionConsidersOcclusion(active_layer_,
3710 total_expected_occluded_tile_count); 3726 total_expected_occluded_tile_count);
3711 } 3727 }
3712 } // namespace 3728 } // namespace
3713 } // namespace cc 3729 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/tile_manager_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698