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 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 gfx::Rect viewport(0, 0, 100, 100); | 539 gfx::Rect viewport(0, 0, 100, 100); |
540 gfx::Size layer_bounds(200, 200); | 540 gfx::Size layer_bounds(200, 200); |
541 | 541 |
542 client.SetTileSize(gfx::Size(100, 100)); | 542 client.SetTileSize(gfx::Size(100, 100)); |
543 LayerTreeSettings settings; | 543 LayerTreeSettings settings; |
544 settings.max_tiles_for_interest_area = 10000; | 544 settings.max_tiles_for_interest_area = 10000; |
545 settings.skewport_extrapolation_limit_in_content_pixels = 75; | 545 settings.skewport_extrapolation_limit_in_content_pixels = 75; |
546 | 546 |
547 scoped_refptr<FakePicturePileImpl> pile = | 547 scoped_refptr<FakePicturePileImpl> pile = |
548 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 548 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
549 auto tiling = | 549 scoped_ptr<TestablePictureLayerTiling> tiling = |
550 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); | 550 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
551 | 551 |
552 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); | 552 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
553 | 553 |
554 // Move viewport down 50 pixels in 0.5 seconds. | 554 // Move viewport down 50 pixels in 0.5 seconds. |
555 gfx::Rect down_skewport = | 555 gfx::Rect down_skewport = |
556 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); | 556 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); |
557 | 557 |
558 EXPECT_EQ(0, down_skewport.x()); | 558 EXPECT_EQ(0, down_skewport.x()); |
559 EXPECT_EQ(50, down_skewport.y()); | 559 EXPECT_EQ(50, down_skewport.y()); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 FakePictureLayerTilingClient client; | 608 FakePictureLayerTilingClient client; |
609 | 609 |
610 gfx::Rect viewport(0, 0, 100, 100); | 610 gfx::Rect viewport(0, 0, 100, 100); |
611 gfx::Size layer_bounds(200, 200); | 611 gfx::Size layer_bounds(200, 200); |
612 | 612 |
613 client.SetTileSize(gfx::Size(100, 100)); | 613 client.SetTileSize(gfx::Size(100, 100)); |
614 client.set_tree(ACTIVE_TREE); | 614 client.set_tree(ACTIVE_TREE); |
615 | 615 |
616 scoped_refptr<FakePicturePileImpl> pile = | 616 scoped_refptr<FakePicturePileImpl> pile = |
617 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 617 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
618 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 618 scoped_ptr<TestablePictureLayerTiling> tiling = |
619 LayerTreeSettings()); | 619 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 620 LayerTreeSettings()); |
620 | 621 |
621 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); | 622 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
622 | 623 |
623 // Move viewport down 50 pixels in 0.5 seconds. | 624 // Move viewport down 50 pixels in 0.5 seconds. |
624 gfx::Rect down_skewport = | 625 gfx::Rect down_skewport = |
625 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); | 626 tiling->ComputeSkewport(1.5, gfx::Rect(0, 50, 100, 100)); |
626 | 627 |
627 EXPECT_EQ(0, down_skewport.x()); | 628 EXPECT_EQ(0, down_skewport.x()); |
628 EXPECT_EQ(50, down_skewport.y()); | 629 EXPECT_EQ(50, down_skewport.y()); |
629 EXPECT_EQ(100, down_skewport.width()); | 630 EXPECT_EQ(100, down_skewport.width()); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 LayerTreeSettings settings; | 678 LayerTreeSettings settings; |
678 settings.max_tiles_for_interest_area = 10000; | 679 settings.max_tiles_for_interest_area = 10000; |
679 | 680 |
680 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. | 681 // Tiling at 0.25 scale: this should create 47x47 tiles of size 10x10. |
681 // The reason is that each tile has a one pixel border, so tile at (1, 2) | 682 // The reason is that each tile has a one pixel border, so tile at (1, 2) |
682 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at | 683 // for instance begins at (8, 16) pixels. So tile at (46, 46) will begin at |
683 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the | 684 // (368, 368) and extend to the end of 1500 * 0.25 = 375 edge of the |
684 // tiling. | 685 // tiling. |
685 scoped_refptr<FakePicturePileImpl> pile = | 686 scoped_refptr<FakePicturePileImpl> pile = |
686 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 687 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
687 auto tiling = | 688 scoped_ptr<TestablePictureLayerTiling> tiling = |
688 TestablePictureLayerTiling::Create(0.25f, pile, &client, settings); | 689 TestablePictureLayerTiling::Create(0.25f, pile, &client, settings); |
689 gfx::Rect viewport_in_content_space = | 690 gfx::Rect viewport_in_content_space = |
690 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); | 691 gfx::ToEnclosedRect(gfx::ScaleRect(viewport, 0.25f)); |
691 | 692 |
692 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); | 693 tiling->ComputeTilePriorityRects(viewport, 1.f, 1.0, Occlusion()); |
693 tiling->UpdateAllTilePrioritiesForTesting(); | 694 tiling->UpdateAllTilePrioritiesForTesting(); |
694 | 695 |
695 gfx::Rect soon_rect = viewport; | 696 gfx::Rect soon_rect = viewport; |
696 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); | 697 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); |
697 gfx::Rect soon_rect_in_content_space = | 698 gfx::Rect soon_rect_in_content_space = |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1097 gfx::Rect soon_rect = viewport; | 1098 gfx::Rect soon_rect = viewport; |
1098 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); | 1099 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); |
1099 | 1100 |
1100 client.SetTileSize(gfx::Size(30, 30)); | 1101 client.SetTileSize(gfx::Size(30, 30)); |
1101 client.set_tree(ACTIVE_TREE); | 1102 client.set_tree(ACTIVE_TREE); |
1102 LayerTreeSettings settings; | 1103 LayerTreeSettings settings; |
1103 settings.max_tiles_for_interest_area = 10000; | 1104 settings.max_tiles_for_interest_area = 10000; |
1104 | 1105 |
1105 scoped_refptr<FakePicturePileImpl> pile = | 1106 scoped_refptr<FakePicturePileImpl> pile = |
1106 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 1107 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
1107 auto tiling = | 1108 scoped_ptr<TestablePictureLayerTiling> tiling = |
1108 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); | 1109 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
1109 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); | 1110 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); |
1110 tiling->UpdateAllTilePrioritiesForTesting(); | 1111 tiling->UpdateAllTilePrioritiesForTesting(); |
1111 | 1112 |
1112 PictureLayerTiling::TilingRasterTileIterator empty_iterator; | 1113 PictureLayerTiling::TilingRasterTileIterator empty_iterator; |
1113 EXPECT_FALSE(empty_iterator); | 1114 EXPECT_FALSE(empty_iterator); |
1114 | 1115 |
1115 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); | 1116 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); |
1116 | 1117 |
1117 // Sanity check. | 1118 // Sanity check. |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1206 gfx::Rect moved_viewport(50, 0, 100, 500); | 1207 gfx::Rect moved_viewport(50, 0, 100, 500); |
1207 gfx::Size layer_bounds(1000, 1000); | 1208 gfx::Size layer_bounds(1000, 1000); |
1208 | 1209 |
1209 client.SetTileSize(gfx::Size(30, 30)); | 1210 client.SetTileSize(gfx::Size(30, 30)); |
1210 client.set_tree(ACTIVE_TREE); | 1211 client.set_tree(ACTIVE_TREE); |
1211 LayerTreeSettings settings; | 1212 LayerTreeSettings settings; |
1212 settings.max_tiles_for_interest_area = 10000; | 1213 settings.max_tiles_for_interest_area = 10000; |
1213 | 1214 |
1214 scoped_refptr<FakePicturePileImpl> pile = | 1215 scoped_refptr<FakePicturePileImpl> pile = |
1215 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); | 1216 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); |
1216 auto tiling = | 1217 scoped_ptr<TestablePictureLayerTiling> tiling = |
1217 TestablePictureLayerTiling::Create(1.f, pile, &client, settings); | 1218 TestablePictureLayerTiling::Create(1.f, pile, &client, settings); |
1218 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); | 1219 tiling->ComputeTilePriorityRects(viewport, 1.0f, 1.0, Occlusion()); |
1219 tiling->ComputeTilePriorityRects(moved_viewport, 1.0f, 2.0, Occlusion()); | 1220 tiling->ComputeTilePriorityRects(moved_viewport, 1.0f, 2.0, Occlusion()); |
1220 tiling->UpdateAllTilePrioritiesForTesting(); | 1221 tiling->UpdateAllTilePrioritiesForTesting(); |
1221 | 1222 |
1222 gfx::Rect soon_rect = moved_viewport; | 1223 gfx::Rect soon_rect = moved_viewport; |
1223 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); | 1224 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); |
1224 | 1225 |
1225 // There are 3 bins in TilePriority. | 1226 // There are 3 bins in TilePriority. |
1226 bool have_tiles[3] = {}; | 1227 bool have_tiles[3] = {}; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1386 | 1387 |
1387 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1388 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1388 current_screen_transform, device_viewport); | 1389 current_screen_transform, device_viewport); |
1389 | 1390 |
1390 client.SetTileSize(gfx::Size(100, 100)); | 1391 client.SetTileSize(gfx::Size(100, 100)); |
1391 client.set_tree(ACTIVE_TREE); | 1392 client.set_tree(ACTIVE_TREE); |
1392 | 1393 |
1393 scoped_refptr<FakePicturePileImpl> pile = | 1394 scoped_refptr<FakePicturePileImpl> pile = |
1394 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1395 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1395 current_layer_bounds); | 1396 current_layer_bounds); |
1396 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1397 scoped_ptr<TestablePictureLayerTiling> tiling = |
1397 LayerTreeSettings()); | 1398 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1399 LayerTreeSettings()); |
1398 | 1400 |
1399 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1401 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1400 current_layer_contents_scale, | 1402 current_layer_contents_scale, |
1401 current_frame_time_in_seconds, Occlusion()); | 1403 current_frame_time_in_seconds, Occlusion()); |
1402 tiling->UpdateAllTilePrioritiesForTesting(); | 1404 tiling->UpdateAllTilePrioritiesForTesting(); |
1403 | 1405 |
1404 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1406 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1405 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1407 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1406 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1408 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1407 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1409 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1441 | 1443 |
1442 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1444 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1443 current_screen_transform, device_viewport); | 1445 current_screen_transform, device_viewport); |
1444 | 1446 |
1445 client.SetTileSize(gfx::Size(100, 100)); | 1447 client.SetTileSize(gfx::Size(100, 100)); |
1446 client.set_tree(ACTIVE_TREE); | 1448 client.set_tree(ACTIVE_TREE); |
1447 | 1449 |
1448 scoped_refptr<FakePicturePileImpl> pile = | 1450 scoped_refptr<FakePicturePileImpl> pile = |
1449 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1451 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1450 current_layer_bounds); | 1452 current_layer_bounds); |
1451 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1453 scoped_ptr<TestablePictureLayerTiling> tiling = |
1452 LayerTreeSettings()); | 1454 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1455 LayerTreeSettings()); |
1453 | 1456 |
1454 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1457 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1455 current_layer_contents_scale, | 1458 current_layer_contents_scale, |
1456 current_frame_time_in_seconds, Occlusion()); | 1459 current_frame_time_in_seconds, Occlusion()); |
1457 tiling->UpdateAllTilePrioritiesForTesting(); | 1460 tiling->UpdateAllTilePrioritiesForTesting(); |
1458 | 1461 |
1459 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1462 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1460 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1463 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1461 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1464 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1462 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1465 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1506 | 1509 |
1507 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1510 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1508 current_screen_transform, device_viewport); | 1511 current_screen_transform, device_viewport); |
1509 | 1512 |
1510 client.SetTileSize(gfx::Size(100, 100)); | 1513 client.SetTileSize(gfx::Size(100, 100)); |
1511 client.set_tree(ACTIVE_TREE); | 1514 client.set_tree(ACTIVE_TREE); |
1512 | 1515 |
1513 scoped_refptr<FakePicturePileImpl> pile = | 1516 scoped_refptr<FakePicturePileImpl> pile = |
1514 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1517 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1515 current_layer_bounds); | 1518 current_layer_bounds); |
1516 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1519 scoped_ptr<TestablePictureLayerTiling> tiling = |
1517 LayerTreeSettings()); | 1520 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1521 LayerTreeSettings()); |
1518 | 1522 |
1519 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1523 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1520 current_layer_contents_scale, | 1524 current_layer_contents_scale, |
1521 current_frame_time_in_seconds, Occlusion()); | 1525 current_frame_time_in_seconds, Occlusion()); |
1522 tiling->UpdateAllTilePrioritiesForTesting(); | 1526 tiling->UpdateAllTilePrioritiesForTesting(); |
1523 | 1527 |
1524 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1528 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1525 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1529 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1526 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1530 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1527 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1531 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1565 | 1569 |
1566 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1570 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1567 current_screen_transform, device_viewport); | 1571 current_screen_transform, device_viewport); |
1568 | 1572 |
1569 client.SetTileSize(gfx::Size(100, 100)); | 1573 client.SetTileSize(gfx::Size(100, 100)); |
1570 client.set_tree(ACTIVE_TREE); | 1574 client.set_tree(ACTIVE_TREE); |
1571 | 1575 |
1572 scoped_refptr<FakePicturePileImpl> pile = | 1576 scoped_refptr<FakePicturePileImpl> pile = |
1573 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1577 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1574 current_layer_bounds); | 1578 current_layer_bounds); |
1575 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1579 scoped_ptr<TestablePictureLayerTiling> tiling = |
1576 LayerTreeSettings()); | 1580 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1581 LayerTreeSettings()); |
1577 | 1582 |
1578 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1583 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1579 current_layer_contents_scale, | 1584 current_layer_contents_scale, |
1580 current_frame_time_in_seconds, Occlusion()); | 1585 current_frame_time_in_seconds, Occlusion()); |
1581 tiling->UpdateAllTilePrioritiesForTesting(); | 1586 tiling->UpdateAllTilePrioritiesForTesting(); |
1582 | 1587 |
1583 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1588 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1584 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1589 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1585 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1590 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1586 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1591 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1648 | 1653 |
1649 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1654 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1650 current_screen_transform, device_viewport); | 1655 current_screen_transform, device_viewport); |
1651 | 1656 |
1652 client.SetTileSize(gfx::Size(100, 100)); | 1657 client.SetTileSize(gfx::Size(100, 100)); |
1653 client.set_tree(ACTIVE_TREE); | 1658 client.set_tree(ACTIVE_TREE); |
1654 | 1659 |
1655 scoped_refptr<FakePicturePileImpl> pile = | 1660 scoped_refptr<FakePicturePileImpl> pile = |
1656 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1661 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1657 current_layer_bounds); | 1662 current_layer_bounds); |
1658 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1663 scoped_ptr<TestablePictureLayerTiling> tiling = |
1659 LayerTreeSettings()); | 1664 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1665 LayerTreeSettings()); |
1660 | 1666 |
1661 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1667 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1662 current_layer_contents_scale, | 1668 current_layer_contents_scale, |
1663 current_frame_time_in_seconds, Occlusion()); | 1669 current_frame_time_in_seconds, Occlusion()); |
1664 tiling->UpdateAllTilePrioritiesForTesting(); | 1670 tiling->UpdateAllTilePrioritiesForTesting(); |
1665 | 1671 |
1666 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1672 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1667 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1673 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1668 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1674 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1669 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1675 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1741 | 1747 |
1742 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( | 1748 gfx::Rect viewport_in_layer_space = ViewportInLayerSpace( |
1743 current_screen_transform, device_viewport); | 1749 current_screen_transform, device_viewport); |
1744 | 1750 |
1745 client.SetTileSize(gfx::Size(100, 100)); | 1751 client.SetTileSize(gfx::Size(100, 100)); |
1746 client.set_tree(ACTIVE_TREE); | 1752 client.set_tree(ACTIVE_TREE); |
1747 | 1753 |
1748 scoped_refptr<FakePicturePileImpl> pile = | 1754 scoped_refptr<FakePicturePileImpl> pile = |
1749 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1755 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1750 current_layer_bounds); | 1756 current_layer_bounds); |
1751 auto tiling = TestablePictureLayerTiling::Create(1.0f, pile, &client, | 1757 scoped_ptr<TestablePictureLayerTiling> tiling = |
1752 LayerTreeSettings()); | 1758 TestablePictureLayerTiling::Create(1.0f, pile, &client, |
| 1759 LayerTreeSettings()); |
1753 | 1760 |
1754 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1761 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1755 current_layer_contents_scale, | 1762 current_layer_contents_scale, |
1756 current_frame_time_in_seconds, Occlusion()); | 1763 current_frame_time_in_seconds, Occlusion()); |
1757 tiling->UpdateAllTilePrioritiesForTesting(); | 1764 tiling->UpdateAllTilePrioritiesForTesting(); |
1758 | 1765 |
1759 ASSERT_TRUE(tiling->TileAt(0, 0)); | 1766 ASSERT_TRUE(tiling->TileAt(0, 0)); |
1760 ASSERT_TRUE(tiling->TileAt(0, 1)); | 1767 ASSERT_TRUE(tiling->TileAt(0, 1)); |
1761 ASSERT_TRUE(tiling->TileAt(1, 0)); | 1768 ASSERT_TRUE(tiling->TileAt(1, 0)); |
1762 ASSERT_TRUE(tiling->TileAt(1, 1)); | 1769 ASSERT_TRUE(tiling->TileAt(1, 1)); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1806 current_screen_transform, device_viewport); | 1813 current_screen_transform, device_viewport); |
1807 | 1814 |
1808 client.SetTileSize(gfx::Size(100, 100)); | 1815 client.SetTileSize(gfx::Size(100, 100)); |
1809 client.set_tree(ACTIVE_TREE); | 1816 client.set_tree(ACTIVE_TREE); |
1810 LayerTreeSettings settings; | 1817 LayerTreeSettings settings; |
1811 settings.max_tiles_for_interest_area = 10000; | 1818 settings.max_tiles_for_interest_area = 10000; |
1812 | 1819 |
1813 scoped_refptr<FakePicturePileImpl> pile = | 1820 scoped_refptr<FakePicturePileImpl> pile = |
1814 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1821 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1815 current_layer_bounds); | 1822 current_layer_bounds); |
1816 auto tiling = | 1823 scoped_ptr<TestablePictureLayerTiling> tiling = |
1817 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); | 1824 TestablePictureLayerTiling::Create(1.0f, pile, &client, settings); |
1818 | 1825 |
1819 // previous ("last") frame | 1826 // previous ("last") frame |
1820 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1827 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1821 last_layer_contents_scale, | 1828 last_layer_contents_scale, |
1822 last_frame_time_in_seconds, Occlusion()); | 1829 last_frame_time_in_seconds, Occlusion()); |
1823 | 1830 |
1824 // current frame | 1831 // current frame |
1825 tiling->ComputeTilePriorityRects(viewport_in_layer_space, | 1832 tiling->ComputeTilePriorityRects(viewport_in_layer_space, |
1826 current_layer_contents_scale, | 1833 current_layer_contents_scale, |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1937 FakePictureLayerTilingClient active_client; | 1944 FakePictureLayerTilingClient active_client; |
1938 | 1945 |
1939 active_client.SetTileSize(gfx::Size(100, 100)); | 1946 active_client.SetTileSize(gfx::Size(100, 100)); |
1940 active_client.set_tree(ACTIVE_TREE); | 1947 active_client.set_tree(ACTIVE_TREE); |
1941 LayerTreeSettings settings; | 1948 LayerTreeSettings settings; |
1942 settings.max_tiles_for_interest_area = 10; | 1949 settings.max_tiles_for_interest_area = 10; |
1943 | 1950 |
1944 scoped_refptr<FakePicturePileImpl> pile = | 1951 scoped_refptr<FakePicturePileImpl> pile = |
1945 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1952 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1946 gfx::Size(10000, 10000)); | 1953 gfx::Size(10000, 10000)); |
1947 auto active_tiling = | 1954 scoped_ptr<TestablePictureLayerTiling> active_tiling = |
1948 TestablePictureLayerTiling::Create(1.0f, pile, &active_client, settings); | 1955 TestablePictureLayerTiling::Create(1.0f, pile, &active_client, settings); |
1949 // Create all tiles on this tiling. | 1956 // Create all tiles on this tiling. |
1950 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, | 1957 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
1951 Occlusion()); | 1958 Occlusion()); |
1952 | 1959 |
1953 FakePictureLayerTilingClient recycle_client; | 1960 FakePictureLayerTilingClient recycle_client; |
1954 recycle_client.SetTileSize(gfx::Size(100, 100)); | 1961 recycle_client.SetTileSize(gfx::Size(100, 100)); |
1955 recycle_client.set_tree(PENDING_TREE); | 1962 recycle_client.set_tree(PENDING_TREE); |
1956 recycle_client.set_twin_tiling(active_tiling.get()); | 1963 recycle_client.set_twin_tiling(active_tiling.get()); |
1957 | 1964 |
1958 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 1965 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
1959 gfx::Size(10000, 10000)); | 1966 gfx::Size(10000, 10000)); |
1960 auto recycle_tiling = | 1967 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = |
1961 TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); | 1968 TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); |
1962 | 1969 |
1963 // Create all tiles on the second tiling. All tiles should be shared. | 1970 // Create all tiles on the second tiling. All tiles should be shared. |
1964 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, | 1971 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, |
1965 1.0f, Occlusion()); | 1972 1.0f, Occlusion()); |
1966 | 1973 |
1967 // Set the second tiling as recycled. | 1974 // Set the second tiling as recycled. |
1968 active_client.set_twin_tiling(NULL); | 1975 active_client.set_twin_tiling(NULL); |
1969 active_client.set_recycled_twin_tiling(recycle_tiling.get()); | 1976 active_client.set_recycled_twin_tiling(recycle_tiling.get()); |
1970 recycle_client.set_twin_tiling(NULL); | 1977 recycle_client.set_twin_tiling(NULL); |
(...skipping 20 matching lines...) Expand all Loading... |
1991 } | 1998 } |
1992 | 1999 |
1993 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { | 2000 TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) { |
1994 FakePictureLayerTilingClient active_client; | 2001 FakePictureLayerTilingClient active_client; |
1995 active_client.SetTileSize(gfx::Size(100, 100)); | 2002 active_client.SetTileSize(gfx::Size(100, 100)); |
1996 active_client.set_tree(ACTIVE_TREE); | 2003 active_client.set_tree(ACTIVE_TREE); |
1997 | 2004 |
1998 scoped_refptr<FakePicturePileImpl> pile = | 2005 scoped_refptr<FakePicturePileImpl> pile = |
1999 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 2006 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
2000 gfx::Size(100, 100)); | 2007 gfx::Size(100, 100)); |
2001 auto active_tiling = TestablePictureLayerTiling::Create( | 2008 scoped_ptr<TestablePictureLayerTiling> active_tiling = |
2002 1.0f, pile, &active_client, LayerTreeSettings()); | 2009 TestablePictureLayerTiling::Create(1.0f, pile, &active_client, |
| 2010 LayerTreeSettings()); |
2003 // Create all tiles on this tiling. | 2011 // Create all tiles on this tiling. |
2004 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, | 2012 active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 1.0f, |
2005 Occlusion()); | 2013 Occlusion()); |
2006 | 2014 |
2007 FakePictureLayerTilingClient recycle_client; | 2015 FakePictureLayerTilingClient recycle_client; |
2008 recycle_client.SetTileSize(gfx::Size(100, 100)); | 2016 recycle_client.SetTileSize(gfx::Size(100, 100)); |
2009 recycle_client.set_tree(PENDING_TREE); | 2017 recycle_client.set_tree(PENDING_TREE); |
2010 recycle_client.set_twin_tiling(active_tiling.get()); | 2018 recycle_client.set_twin_tiling(active_tiling.get()); |
2011 | 2019 |
2012 LayerTreeSettings settings; | 2020 LayerTreeSettings settings; |
2013 settings.max_tiles_for_interest_area = 10; | 2021 settings.max_tiles_for_interest_area = 10; |
2014 | 2022 |
2015 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( | 2023 pile = FakePicturePileImpl::CreateFilledPileWithDefaultTileSize( |
2016 gfx::Size(100, 100)); | 2024 gfx::Size(100, 100)); |
2017 auto recycle_tiling = | 2025 scoped_ptr<TestablePictureLayerTiling> recycle_tiling = |
2018 TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); | 2026 TestablePictureLayerTiling::Create(1.0f, pile, &recycle_client, settings); |
2019 | 2027 |
2020 // Create all tiles on the recycle tiling. All tiles should be shared. | 2028 // Create all tiles on the recycle tiling. All tiles should be shared. |
2021 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, | 2029 recycle_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, |
2022 1.0f, Occlusion()); | 2030 1.0f, Occlusion()); |
2023 | 2031 |
2024 // Set the second tiling as recycled. | 2032 // Set the second tiling as recycled. |
2025 active_client.set_twin_tiling(NULL); | 2033 active_client.set_twin_tiling(NULL); |
2026 active_client.set_recycled_twin_tiling(recycle_tiling.get()); | 2034 active_client.set_recycled_twin_tiling(recycle_tiling.get()); |
2027 recycle_client.set_twin_tiling(NULL); | 2035 recycle_client.set_twin_tiling(NULL); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2059 tiling_->SetRasterSourceAndResize(pile); | 2067 tiling_->SetRasterSourceAndResize(pile); |
2060 | 2068 |
2061 // Tile size in the tiling should be resized to 250x200. | 2069 // Tile size in the tiling should be resized to 250x200. |
2062 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); | 2070 EXPECT_EQ(250, tiling_->TilingDataForTesting().max_texture_size().width()); |
2063 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); | 2071 EXPECT_EQ(200, tiling_->TilingDataForTesting().max_texture_size().height()); |
2064 EXPECT_EQ(0u, tiling_->AllRefTilesForTesting().size()); | 2072 EXPECT_EQ(0u, tiling_->AllRefTilesForTesting().size()); |
2065 } | 2073 } |
2066 | 2074 |
2067 } // namespace | 2075 } // namespace |
2068 } // namespace cc | 2076 } // namespace cc |
OLD | NEW |