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