| 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 |