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

Side by Side Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 367833003: cc: Start using raster/eviction iterators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
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/resources/picture_layer_tiling.h" 5 #include "cc/resources/picture_layer_tiling.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "cc/base/math_util.h" 10 #include "cc/base/math_util.h"
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 // The reason is that each tile has a one pixel border, so tile at (1, 2) 478 // The reason is that each tile has a one pixel border, so tile at (1, 2)
479 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at 479 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at
480 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the 480 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the
481 // tiling. 481 // tiling.
482 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client); 482 tiling = TestablePictureLayerTiling::Create(0.25f, layer_bounds, &client);
483 gfx::Rect viewport_in_content_space = 483 gfx::Rect viewport_in_content_space =
484 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); 484 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f));
485 485
486 tiling->UpdateTilePriorities( 486 tiling->UpdateTilePriorities(
487 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform()); 487 ACTIVE_TREE, viewport, 1.f, 1.0, NULL, NULL, gfx::Transform());
488 tiling->UpdateAllTilePrioritiesForTesting();
488 489
489 gfx::Rect soon_rect = viewport; 490 gfx::Rect soon_rect = viewport;
490 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 491 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
491 gfx::Rect soon_rect_in_content_space = 492 gfx::Rect soon_rect_in_content_space =
492 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f)); 493 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f));
493 494
494 // Sanity checks. 495 // Sanity checks.
495 for (int i = 0; i < 47; ++i) { 496 for (int i = 0; i < 47; ++i) {
496 for (int j = 0; j < 47; ++j) { 497 for (int j = 0; j < 47; ++j) {
497 EXPECT_TRUE(tiling->TileAt(i, j)) << "i: " << i << " j: " << j; 498 EXPECT_TRUE(tiling->TileAt(i, j)) << "i: " << i << " j: " << j;
(...skipping 28 matching lines...) Expand all
526 have_eventually = true; 527 have_eventually = true;
527 } 528 }
528 } 529 }
529 } 530 }
530 531
531 EXPECT_TRUE(have_now); 532 EXPECT_TRUE(have_now);
532 EXPECT_TRUE(have_soon); 533 EXPECT_TRUE(have_soon);
533 EXPECT_TRUE(have_eventually); 534 EXPECT_TRUE(have_eventually);
534 535
535 // Spot check some distances. 536 // Spot check some distances.
536 // Tile at 5, 1 should begin at 41x9 in content space (without borders), 537 // Tile at 5, 1 should begin at 40x8 in content space (with borders),
537 // so the distance to a viewport that ends at 25x25 in content space 538 // so the distance to a viewport that ends at 25x25 in content space
538 // should be 17 (41 - 25 + 1). In layer space, then that should be 539 // should be 16 (40 - 25 + 1). In layer space, then that should be
539 // 17 / 0.25 = 68 pixels. 540 // 16 / 0.25 = 64 pixels.
540 541
541 // We can verify that the content rect (with borders) is one pixel off 542 // We can verify that the content rect (with borders) is one pixel off
542 // 41,9 8x8 on all sides. 543 // 41,9 8x8 on all sides.
543 EXPECT_EQ(tiling->TileAt(5, 1)->content_rect().ToString(), "40,8 10x10"); 544 EXPECT_EQ(tiling->TileAt(5, 1)->content_rect().ToString(), "40,8 10x10");
544 545
545 TilePriority priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE); 546 TilePriority priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
546 EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible); 547 EXPECT_FLOAT_EQ(64.f, priority.distance_to_visible);
547 548
548 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE); 549 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
549 EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible); 550 EXPECT_FLOAT_EQ(64.f, priority.distance_to_visible);
550 551
551 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE); 552 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
552 EXPECT_FLOAT_EQ(40.f, priority.distance_to_visible); 553 EXPECT_FLOAT_EQ(32.f, priority.distance_to_visible);
553 554
554 // Move the viewport down 40 pixels. 555 // Move the viewport down 40 pixels.
555 viewport = gfx::Rect(0, 40, 100, 100); 556 viewport = gfx::Rect(0, 40, 100, 100);
556 viewport_in_content_space = 557 viewport_in_content_space =
557 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); 558 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f));
558 gfx::Rect skewport = tiling->ComputeSkewport(2.0, viewport_in_content_space); 559 gfx::Rect skewport = tiling->ComputeSkewport(2.0, viewport_in_content_space);
559 560
560 soon_rect = viewport; 561 soon_rect = viewport;
561 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 562 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f);
562 soon_rect_in_content_space = 563 soon_rect_in_content_space =
563 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f)); 564 gfx::ToEnclosedRect(gfx::ScaleRect(soon_rect, 0.25f));
564 565
565 EXPECT_EQ(0, skewport.x()); 566 EXPECT_EQ(0, skewport.x());
566 EXPECT_EQ(10, skewport.y()); 567 EXPECT_EQ(10, skewport.y());
567 EXPECT_EQ(25, skewport.width()); 568 EXPECT_EQ(25, skewport.width());
568 EXPECT_EQ(35, skewport.height()); 569 EXPECT_EQ(35, skewport.height());
569 570
570 tiling->UpdateTilePriorities( 571 tiling->UpdateTilePriorities(
571 ACTIVE_TREE, viewport, 1.f, 2.0, NULL, NULL, gfx::Transform()); 572 ACTIVE_TREE, viewport, 1.f, 2.0, NULL, NULL, gfx::Transform());
573 tiling->UpdateAllTilePrioritiesForTesting();
572 574
573 have_now = false; 575 have_now = false;
574 have_eventually = false; 576 have_eventually = false;
575 have_soon = false; 577 have_soon = false;
576 578
577 // Viewport moved, so we expect to find some NOW tiles, some SOON tiles and 579 // Viewport moved, so we expect to find some NOW tiles, some SOON tiles and
578 // some EVENTUALLY tiles. 580 // some EVENTUALLY tiles.
579 for (int i = 0; i < 47; ++i) { 581 for (int i = 0; i < 47; ++i) {
580 for (int j = 0; j < 47; ++j) { 582 for (int j = 0; j < 47; ++j) {
581 Tile* tile = tiling->TileAt(i, j); 583 Tile* tile = tiling->TileAt(i, j);
(...skipping 20 matching lines...) Expand all
602 have_eventually = true; 604 have_eventually = true;
603 } 605 }
604 } 606 }
605 } 607 }
606 608
607 EXPECT_TRUE(have_now); 609 EXPECT_TRUE(have_now);
608 EXPECT_TRUE(have_soon); 610 EXPECT_TRUE(have_soon);
609 EXPECT_TRUE(have_eventually); 611 EXPECT_TRUE(have_eventually);
610 612
611 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE); 613 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
612 EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible); 614 EXPECT_FLOAT_EQ(64.f, priority.distance_to_visible);
613 615
614 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE); 616 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
615 EXPECT_FLOAT_EQ(28.f, priority.distance_to_visible); 617 EXPECT_FLOAT_EQ(24.f, priority.distance_to_visible);
616 618
617 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE); 619 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
618 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 620 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
619 621
620 // Change the underlying layer scale. 622 // Change the underlying layer scale.
621 tiling->UpdateTilePriorities( 623 tiling->UpdateTilePriorities(
622 ACTIVE_TREE, viewport, 2.0f, 3.0, NULL, NULL, gfx::Transform()); 624 ACTIVE_TREE, viewport, 2.0f, 3.0, NULL, NULL, gfx::Transform());
625 tiling->UpdateAllTilePrioritiesForTesting();
623 626
624 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE); 627 priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
625 EXPECT_FLOAT_EQ(34.f, priority.distance_to_visible); 628 EXPECT_FLOAT_EQ(32.f, priority.distance_to_visible);
626 629
627 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE); 630 priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
628 EXPECT_FLOAT_EQ(14.f, priority.distance_to_visible); 631 EXPECT_FLOAT_EQ(12.f, priority.distance_to_visible);
629 632
630 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE); 633 priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
631 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 634 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
632 } 635 }
633 636
634 TEST(PictureLayerTilingTest, ExpandRectEqual) { 637 TEST(PictureLayerTilingTest, ExpandRectEqual) {
635 gfx::Rect in(40, 50, 100, 200); 638 gfx::Rect in(40, 50, 100, 200);
636 gfx::Rect bounds(-1000, -1000, 10000, 10000); 639 gfx::Rect bounds(-1000, -1000, 10000, 10000);
637 int64 target_area = 100 * 200; 640 int64 target_area = 100 * 200;
638 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy( 641 gfx::Rect out = PictureLayerTiling::ExpandRectEquallyToAreaBoundedBy(
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 current_layer_bounds, 1343 current_layer_bounds,
1341 &client); 1344 &client);
1342 1345
1343 tiling->UpdateTilePriorities(ACTIVE_TREE, 1346 tiling->UpdateTilePriorities(ACTIVE_TREE,
1344 viewport_in_layer_space, 1347 viewport_in_layer_space,
1345 current_layer_contents_scale, 1348 current_layer_contents_scale,
1346 current_frame_time_in_seconds, 1349 current_frame_time_in_seconds,
1347 NULL, // occlusion tracker 1350 NULL, // occlusion tracker
1348 NULL, // render target 1351 NULL, // render target
1349 gfx::Transform()); // draw transform 1352 gfx::Transform()); // draw transform
1353 tiling->UpdateAllTilePrioritiesForTesting();
1350 1354
1351 ASSERT_TRUE(tiling->TileAt(0, 0)); 1355 ASSERT_TRUE(tiling->TileAt(0, 0));
1352 ASSERT_TRUE(tiling->TileAt(0, 1)); 1356 ASSERT_TRUE(tiling->TileAt(0, 1));
1353 ASSERT_TRUE(tiling->TileAt(1, 0)); 1357 ASSERT_TRUE(tiling->TileAt(1, 0));
1354 ASSERT_TRUE(tiling->TileAt(1, 1)); 1358 ASSERT_TRUE(tiling->TileAt(1, 1));
1355 1359
1356 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1360 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1357 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1361 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1358 EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin); 1362 EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
1359 1363
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 current_layer_bounds, 1401 current_layer_bounds,
1398 &client); 1402 &client);
1399 1403
1400 tiling->UpdateTilePriorities(ACTIVE_TREE, 1404 tiling->UpdateTilePriorities(ACTIVE_TREE,
1401 viewport_in_layer_space, 1405 viewport_in_layer_space,
1402 current_layer_contents_scale, 1406 current_layer_contents_scale,
1403 current_frame_time_in_seconds, 1407 current_frame_time_in_seconds,
1404 NULL, // occlusion tracker 1408 NULL, // occlusion tracker
1405 NULL, // render target 1409 NULL, // render target
1406 gfx::Transform()); // draw transform 1410 gfx::Transform()); // draw transform
1411 tiling->UpdateAllTilePrioritiesForTesting();
1407 1412
1408 ASSERT_TRUE(tiling->TileAt(0, 0)); 1413 ASSERT_TRUE(tiling->TileAt(0, 0));
1409 ASSERT_TRUE(tiling->TileAt(0, 1)); 1414 ASSERT_TRUE(tiling->TileAt(0, 1));
1410 ASSERT_TRUE(tiling->TileAt(1, 0)); 1415 ASSERT_TRUE(tiling->TileAt(1, 0));
1411 ASSERT_TRUE(tiling->TileAt(1, 1)); 1416 ASSERT_TRUE(tiling->TileAt(1, 1));
1412 1417
1413 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1418 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1414 EXPECT_GT(priority.distance_to_visible, 0.f); 1419 EXPECT_GT(priority.distance_to_visible, 0.f);
1415 EXPECT_NE(TilePriority::NOW, priority.priority_bin); 1420 EXPECT_NE(TilePriority::NOW, priority.priority_bin);
1416 1421
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1464 current_layer_bounds, 1469 current_layer_bounds,
1465 &client); 1470 &client);
1466 1471
1467 tiling->UpdateTilePriorities(ACTIVE_TREE, 1472 tiling->UpdateTilePriorities(ACTIVE_TREE,
1468 viewport_in_layer_space, 1473 viewport_in_layer_space,
1469 current_layer_contents_scale, 1474 current_layer_contents_scale,
1470 current_frame_time_in_seconds, 1475 current_frame_time_in_seconds,
1471 NULL, // occlusion tracker 1476 NULL, // occlusion tracker
1472 NULL, // render target 1477 NULL, // render target
1473 gfx::Transform()); // draw transform 1478 gfx::Transform()); // draw transform
1479 tiling->UpdateAllTilePrioritiesForTesting();
1474 1480
1475 ASSERT_TRUE(tiling->TileAt(0, 0)); 1481 ASSERT_TRUE(tiling->TileAt(0, 0));
1476 ASSERT_TRUE(tiling->TileAt(0, 1)); 1482 ASSERT_TRUE(tiling->TileAt(0, 1));
1477 ASSERT_TRUE(tiling->TileAt(1, 0)); 1483 ASSERT_TRUE(tiling->TileAt(1, 0));
1478 ASSERT_TRUE(tiling->TileAt(1, 1)); 1484 ASSERT_TRUE(tiling->TileAt(1, 1));
1479 1485
1480 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1486 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1481 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1487 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1482 EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin); 1488 EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
1483 1489
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1525 current_layer_bounds, 1531 current_layer_bounds,
1526 &client); 1532 &client);
1527 1533
1528 tiling->UpdateTilePriorities(ACTIVE_TREE, 1534 tiling->UpdateTilePriorities(ACTIVE_TREE,
1529 viewport_in_layer_space, 1535 viewport_in_layer_space,
1530 current_layer_contents_scale, 1536 current_layer_contents_scale,
1531 current_frame_time_in_seconds, 1537 current_frame_time_in_seconds,
1532 NULL, // occlusion tracker 1538 NULL, // occlusion tracker
1533 NULL, // render target 1539 NULL, // render target
1534 gfx::Transform()); // draw transform 1540 gfx::Transform()); // draw transform
1541 tiling->UpdateAllTilePrioritiesForTesting();
1535 1542
1536 ASSERT_TRUE(tiling->TileAt(0, 0)); 1543 ASSERT_TRUE(tiling->TileAt(0, 0));
1537 ASSERT_TRUE(tiling->TileAt(0, 1)); 1544 ASSERT_TRUE(tiling->TileAt(0, 1));
1538 ASSERT_TRUE(tiling->TileAt(1, 0)); 1545 ASSERT_TRUE(tiling->TileAt(1, 0));
1539 ASSERT_TRUE(tiling->TileAt(1, 1)); 1546 ASSERT_TRUE(tiling->TileAt(1, 1));
1540 1547
1541 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1548 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1542 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1549 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1543 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1550 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1544 1551
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 current_layer_bounds, 1617 current_layer_bounds,
1611 &client); 1618 &client);
1612 1619
1613 tiling->UpdateTilePriorities(ACTIVE_TREE, 1620 tiling->UpdateTilePriorities(ACTIVE_TREE,
1614 viewport_in_layer_space, 1621 viewport_in_layer_space,
1615 current_layer_contents_scale, 1622 current_layer_contents_scale,
1616 current_frame_time_in_seconds, 1623 current_frame_time_in_seconds,
1617 NULL, // occlusion tracker 1624 NULL, // occlusion tracker
1618 NULL, // render target 1625 NULL, // render target
1619 gfx::Transform()); // draw transform 1626 gfx::Transform()); // draw transform
1627 tiling->UpdateAllTilePrioritiesForTesting();
1620 1628
1621 ASSERT_TRUE(tiling->TileAt(0, 0)); 1629 ASSERT_TRUE(tiling->TileAt(0, 0));
1622 ASSERT_TRUE(tiling->TileAt(0, 1)); 1630 ASSERT_TRUE(tiling->TileAt(0, 1));
1623 ASSERT_TRUE(tiling->TileAt(1, 0)); 1631 ASSERT_TRUE(tiling->TileAt(1, 0));
1624 ASSERT_TRUE(tiling->TileAt(1, 1)); 1632 ASSERT_TRUE(tiling->TileAt(1, 1));
1625 1633
1626 // All tiles will have a positive distance_to_visible 1634 // All tiles will have a positive distance_to_visible
1627 // and an infinite time_to_visible. 1635 // and an infinite time_to_visible.
1628 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1636 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1629 EXPECT_FLOAT_EQ(priority.distance_to_visible, 0.f); 1637 EXPECT_FLOAT_EQ(priority.distance_to_visible, 0.f);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1705 current_layer_bounds, 1713 current_layer_bounds,
1706 &client); 1714 &client);
1707 1715
1708 tiling->UpdateTilePriorities(ACTIVE_TREE, 1716 tiling->UpdateTilePriorities(ACTIVE_TREE,
1709 viewport_in_layer_space, 1717 viewport_in_layer_space,
1710 current_layer_contents_scale, 1718 current_layer_contents_scale,
1711 current_frame_time_in_seconds, 1719 current_frame_time_in_seconds,
1712 NULL, // occlusion tracker 1720 NULL, // occlusion tracker
1713 NULL, // render target 1721 NULL, // render target
1714 gfx::Transform()); // draw transform 1722 gfx::Transform()); // draw transform
1723 tiling->UpdateAllTilePrioritiesForTesting();
1715 1724
1716 ASSERT_TRUE(tiling->TileAt(0, 0)); 1725 ASSERT_TRUE(tiling->TileAt(0, 0));
1717 ASSERT_TRUE(tiling->TileAt(0, 1)); 1726 ASSERT_TRUE(tiling->TileAt(0, 1));
1718 ASSERT_TRUE(tiling->TileAt(1, 0)); 1727 ASSERT_TRUE(tiling->TileAt(1, 0));
1719 ASSERT_TRUE(tiling->TileAt(1, 1)); 1728 ASSERT_TRUE(tiling->TileAt(1, 1));
1720 1729
1721 // Left-side tiles will be clipped by the transform, so we have to assume 1730 // Left-side tiles will be clipped by the transform, so we have to assume
1722 // they are visible just in case. 1731 // they are visible just in case.
1723 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1732 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1724 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1733 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1780 gfx::Transform()); // draw transform 1789 gfx::Transform()); // draw transform
1781 1790
1782 // current frame 1791 // current frame
1783 tiling->UpdateTilePriorities(ACTIVE_TREE, 1792 tiling->UpdateTilePriorities(ACTIVE_TREE,
1784 viewport_in_layer_space, 1793 viewport_in_layer_space,
1785 current_layer_contents_scale, 1794 current_layer_contents_scale,
1786 current_frame_time_in_seconds, 1795 current_frame_time_in_seconds,
1787 NULL, // occlusion tracker 1796 NULL, // occlusion tracker
1788 NULL, // render target 1797 NULL, // render target
1789 gfx::Transform()); // draw transform 1798 gfx::Transform()); // draw transform
1799 tiling->UpdateAllTilePrioritiesForTesting();
1790 1800
1791 ASSERT_TRUE(tiling->TileAt(0, 0)); 1801 ASSERT_TRUE(tiling->TileAt(0, 0));
1792 ASSERT_TRUE(tiling->TileAt(0, 1)); 1802 ASSERT_TRUE(tiling->TileAt(0, 1));
1793 ASSERT_TRUE(tiling->TileAt(1, 0)); 1803 ASSERT_TRUE(tiling->TileAt(1, 0));
1794 ASSERT_TRUE(tiling->TileAt(1, 1)); 1804 ASSERT_TRUE(tiling->TileAt(1, 1));
1795 1805
1796 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1806 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1797 EXPECT_GT(priority.distance_to_visible, 0.f); 1807 EXPECT_GT(priority.distance_to_visible, 0.f);
1798 EXPECT_NE(TilePriority::NOW, priority.priority_bin); 1808 EXPECT_NE(TilePriority::NOW, priority.priority_bin);
1799 1809
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 gfx::Transform()); // draw transform 1872 gfx::Transform()); // draw transform
1863 1873
1864 // current frame 1874 // current frame
1865 tiling->UpdateTilePriorities(ACTIVE_TREE, 1875 tiling->UpdateTilePriorities(ACTIVE_TREE,
1866 viewport_in_layer_space, 1876 viewport_in_layer_space,
1867 current_layer_contents_scale, 1877 current_layer_contents_scale,
1868 current_frame_time_in_seconds, 1878 current_frame_time_in_seconds,
1869 NULL, // occlusion tracker 1879 NULL, // occlusion tracker
1870 NULL, // render target 1880 NULL, // render target
1871 gfx::Transform()); // draw transform 1881 gfx::Transform()); // draw transform
1882 tiling->UpdateAllTilePrioritiesForTesting();
1872 1883
1873 ASSERT_TRUE(tiling->TileAt(0, 0)); 1884 ASSERT_TRUE(tiling->TileAt(0, 0));
1874 ASSERT_TRUE(tiling->TileAt(0, 1)); 1885 ASSERT_TRUE(tiling->TileAt(0, 1));
1875 ASSERT_TRUE(tiling->TileAt(1, 0)); 1886 ASSERT_TRUE(tiling->TileAt(1, 0));
1876 ASSERT_TRUE(tiling->TileAt(1, 1)); 1887 ASSERT_TRUE(tiling->TileAt(1, 1));
1877 1888
1878 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE); 1889 TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
1879 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1890 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1880 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1891 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1881 1892
1882 priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE); 1893 priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
1883 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1894 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1884 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1895 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1885 1896
1886 priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE); 1897 priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
1887 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible); 1898 EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
1888 EXPECT_EQ(TilePriority::NOW, priority.priority_bin); 1899 EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
1889 } 1900 }
1890 1901
1891 TEST(PictureLayerTilingTest, ResetClearsPriorities) {
1892 FakePictureLayerTilingClient client;
1893 scoped_ptr<TestablePictureLayerTiling> tiling;
1894
1895 client.SetTileSize(gfx::Size(100, 100));
1896 client.set_tree(ACTIVE_TREE);
1897 tiling = TestablePictureLayerTiling::Create(1.0f, // contents_scale
1898 gfx::Size(100, 100),
1899 &client);
1900 tiling->UpdateTilePriorities(ACTIVE_TREE,
1901 gfx::Rect(0, 0, 100, 100),
1902 1.0f,
1903 1.0f,
1904 NULL, // occlusion tracker
1905 NULL, // render target
1906 gfx::Transform()); // draw transform
1907
1908 std::vector<scoped_refptr<Tile> > tiles = tiling->AllRefTilesForTesting();
1909 ASSERT_GT(tiles.size(), 0u);
1910 for (std::vector<scoped_refptr<Tile> >::const_iterator it = tiles.begin();
1911 it != tiles.end();
1912 ++it) {
1913 EXPECT_NE(TilePriority(), (*it)->priority(ACTIVE_TREE));
1914 }
1915
1916 tiling->Reset();
1917 for (std::vector<scoped_refptr<Tile> >::const_iterator it = tiles.begin();
1918 it != tiles.end();
1919 ++it) {
1920 EXPECT_EQ(TilePriority(), (*it)->priority(ACTIVE_TREE));
1921 }
1922 tiles.clear();
1923 }
1924
1925 } // namespace 1902 } // namespace
1926 } // namespace cc 1903 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698