| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/eviction_tile_priority_queue.h" | 5 #include "cc/resources/eviction_tile_priority_queue.h" |
| 6 #include "cc/resources/raster_tile_priority_queue.h" | 6 #include "cc/resources/raster_tile_priority_queue.h" |
| 7 #include "cc/resources/tile.h" | 7 #include "cc/resources/tile.h" |
| 8 #include "cc/resources/tile_priority.h" | 8 #include "cc/resources/tile_priority.h" |
| 9 #include "cc/test/fake_impl_proxy.h" | 9 #include "cc/test/fake_impl_proxy.h" |
| 10 #include "cc/test/fake_layer_tree_host_impl.h" | 10 #include "cc/test/fake_layer_tree_host_impl.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 int max_tiles_; | 142 int max_tiles_; |
| 143 bool ready_to_activate_; | 143 bool ready_to_activate_; |
| 144 int id_; | 144 int id_; |
| 145 FakeImplProxy proxy_; | 145 FakeImplProxy proxy_; |
| 146 FakeLayerTreeHostImpl host_impl_; | 146 FakeLayerTreeHostImpl host_impl_; |
| 147 FakePictureLayerImpl* pending_layer_; | 147 FakePictureLayerImpl* pending_layer_; |
| 148 FakePictureLayerImpl* active_layer_; | 148 FakePictureLayerImpl* active_layer_; |
| 149 }; | 149 }; |
| 150 | 150 |
| 151 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { | 151 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
| 152 SetupDefaultTrees(gfx::Size(1000, 1000)); | 152 const gfx::Size layer_bounds(1000, 1000); |
| 153 host_impl_.SetViewportSize(layer_bounds); |
| 154 SetupDefaultTrees(layer_bounds); |
| 153 | 155 |
| 154 active_layer_->CreateDefaultTilingsAndTiles(); | 156 active_layer_->CreateDefaultTilingsAndTiles(); |
| 155 pending_layer_->CreateDefaultTilingsAndTiles(); | 157 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 156 | 158 |
| 157 RasterTilePriorityQueue queue; | 159 RasterTilePriorityQueue queue; |
| 158 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 160 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); |
| 159 EXPECT_FALSE(queue.IsEmpty()); | 161 EXPECT_FALSE(queue.IsEmpty()); |
| 160 | 162 |
| 161 size_t tile_count = 0; | 163 size_t tile_count = 0; |
| 162 std::set<Tile*> all_tiles; | 164 std::set<Tile*> all_tiles; |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 | 386 |
| 385 tile_manager()->InitializeTilesWithResourcesForTesting( | 387 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 386 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 388 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
| 387 | 389 |
| 388 // Ensure we can activate. | 390 // Ensure we can activate. |
| 389 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); | 391 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); |
| 390 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); | 392 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); |
| 391 } | 393 } |
| 392 | 394 |
| 393 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { | 395 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
| 394 SetupDefaultTrees(gfx::Size(1000, 1000)); | 396 const gfx::Size layer_bounds(1000, 1000); |
| 397 host_impl_.SetViewportSize(layer_bounds); |
| 398 SetupDefaultTrees(layer_bounds); |
| 395 | 399 |
| 396 active_layer_->CreateDefaultTilingsAndTiles(); | 400 active_layer_->CreateDefaultTilingsAndTiles(); |
| 397 pending_layer_->CreateDefaultTilingsAndTiles(); | 401 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 398 | 402 |
| 399 EvictionTilePriorityQueue empty_queue; | 403 EvictionTilePriorityQueue empty_queue; |
| 400 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 404 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); |
| 401 EXPECT_TRUE(empty_queue.IsEmpty()); | 405 EXPECT_TRUE(empty_queue.IsEmpty()); |
| 402 std::set<Tile*> all_tiles; | 406 std::set<Tile*> all_tiles; |
| 403 size_t tile_count = 0; | 407 size_t tile_count = 0; |
| 404 | 408 |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 | 557 |
| 554 EXPECT_EQ(tile_count, new_content_tiles.size()); | 558 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 555 EXPECT_EQ(all_tiles, new_content_tiles); | 559 EXPECT_EQ(all_tiles, new_content_tiles); |
| 556 } | 560 } |
| 557 | 561 |
| 558 TEST_F(TileManagerTilePriorityQueueTest, | 562 TEST_F(TileManagerTilePriorityQueueTest, |
| 559 EvictionTilePriorityQueueWithOcclusion) { | 563 EvictionTilePriorityQueueWithOcclusion) { |
| 560 gfx::Size tile_size(102, 102); | 564 gfx::Size tile_size(102, 102); |
| 561 gfx::Size layer_bounds(1000, 1000); | 565 gfx::Size layer_bounds(1000, 1000); |
| 562 | 566 |
| 567 host_impl_.SetViewportSize(layer_bounds); |
| 568 |
| 563 scoped_refptr<FakePicturePileImpl> pending_pile = | 569 scoped_refptr<FakePicturePileImpl> pending_pile = |
| 564 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 570 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
| 565 SetupPendingTree(pending_pile); | 571 SetupPendingTree(pending_pile); |
| 566 pending_layer_->CreateDefaultTilingsAndTiles(); | 572 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 567 | 573 |
| 568 scoped_ptr<FakePictureLayerImpl> pending_child = | 574 scoped_ptr<FakePictureLayerImpl> pending_child = |
| 569 FakePictureLayerImpl::CreateWithRasterSource(host_impl_.pending_tree(), 2, | 575 FakePictureLayerImpl::CreateWithRasterSource(host_impl_.pending_tree(), 2, |
| 570 pending_pile); | 576 pending_pile); |
| 571 pending_layer_->AddChild(pending_child.Pass()); | 577 pending_layer_->AddChild(pending_child.Pass()); |
| 572 | 578 |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 761 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); | 767 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); |
| 762 new_content_tiles.insert(tile); | 768 new_content_tiles.insert(tile); |
| 763 ++tile_count; | 769 ++tile_count; |
| 764 queue.Pop(); | 770 queue.Pop(); |
| 765 } | 771 } |
| 766 EXPECT_EQ(tile_count, new_content_tiles.size()); | 772 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 767 EXPECT_EQ(all_tiles, new_content_tiles); | 773 EXPECT_EQ(all_tiles, new_content_tiles); |
| 768 } | 774 } |
| 769 | 775 |
| 770 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { | 776 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
| 771 SetupDefaultTrees(gfx::Size(1000, 1000)); | 777 const gfx::Size layer_bounds(1000, 1000); |
| 778 host_impl_.SetViewportSize(layer_bounds); |
| 779 SetupDefaultTrees(layer_bounds); |
| 772 | 780 |
| 773 active_layer_->CreateDefaultTilingsAndTiles(); | 781 active_layer_->CreateDefaultTilingsAndTiles(); |
| 774 pending_layer_->CreateDefaultTilingsAndTiles(); | 782 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 775 | 783 |
| 776 RasterTilePriorityQueue queue; | 784 RasterTilePriorityQueue queue; |
| 777 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 785 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); |
| 778 EXPECT_FALSE(queue.IsEmpty()); | 786 EXPECT_FALSE(queue.IsEmpty()); |
| 779 | 787 |
| 780 size_t tile_count = 0; | 788 size_t tile_count = 0; |
| 781 std::set<Tile*> all_tiles; | 789 std::set<Tile*> all_tiles; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 808 EXPECT_TRUE(queue.Top()); | 816 EXPECT_TRUE(queue.Top()); |
| 809 all_tiles.insert(queue.Top()); | 817 all_tiles.insert(queue.Top()); |
| 810 ++tile_count; | 818 ++tile_count; |
| 811 queue.Pop(); | 819 queue.Pop(); |
| 812 } | 820 } |
| 813 EXPECT_EQ(tile_count, all_tiles.size()); | 821 EXPECT_EQ(tile_count, all_tiles.size()); |
| 814 EXPECT_EQ(16u, tile_count); | 822 EXPECT_EQ(16u, tile_count); |
| 815 } | 823 } |
| 816 | 824 |
| 817 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { | 825 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { |
| 818 SetupDefaultTrees(gfx::Size(1000, 1000)); | 826 const gfx::Size layer_bounds(1000, 1000); |
| 827 host_impl_.SetViewportSize(layer_bounds); |
| 828 SetupDefaultTrees(layer_bounds); |
| 819 | 829 |
| 820 active_layer_->CreateDefaultTilingsAndTiles(); | 830 active_layer_->CreateDefaultTilingsAndTiles(); |
| 821 pending_layer_->CreateDefaultTilingsAndTiles(); | 831 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 822 | 832 |
| 823 RasterTilePriorityQueue raster_queue; | 833 RasterTilePriorityQueue raster_queue; |
| 824 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 834 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES); |
| 825 EXPECT_FALSE(raster_queue.IsEmpty()); | 835 EXPECT_FALSE(raster_queue.IsEmpty()); |
| 826 | 836 |
| 827 size_t tile_count = 0; | 837 size_t tile_count = 0; |
| 828 std::set<Tile*> all_tiles; | 838 std::set<Tile*> all_tiles; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 858 all_tiles.insert(queue.Top()); | 868 all_tiles.insert(queue.Top()); |
| 859 ++tile_count; | 869 ++tile_count; |
| 860 queue.Pop(); | 870 queue.Pop(); |
| 861 } | 871 } |
| 862 EXPECT_EQ(tile_count, all_tiles.size()); | 872 EXPECT_EQ(tile_count, all_tiles.size()); |
| 863 EXPECT_EQ(16u, tile_count); | 873 EXPECT_EQ(16u, tile_count); |
| 864 } | 874 } |
| 865 | 875 |
| 866 } // namespace | 876 } // namespace |
| 867 } // namespace cc | 877 } // namespace cc |
| OLD | NEW |