OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |