Chromium Code Reviews| 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/tile.h" | 5 #include "cc/resources/tile.h" |
| 6 #include "cc/resources/tile_priority.h" | 6 #include "cc/resources/tile_priority.h" |
| 7 #include "cc/test/fake_impl_proxy.h" | 7 #include "cc/test/fake_impl_proxy.h" |
| 8 #include "cc/test/fake_layer_tree_host_impl.h" | 8 #include "cc/test/fake_layer_tree_host_impl.h" |
| 9 #include "cc/test/fake_output_surface.h" | 9 #include "cc/test/fake_output_surface.h" |
| 10 #include "cc/test/fake_output_surface_client.h" | 10 #include "cc/test/fake_output_surface_client.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 76 } | 76 } |
| 77 | 77 |
| 78 virtual void TearDown() OVERRIDE { | 78 virtual void TearDown() OVERRIDE { |
| 79 tile_manager_.reset(NULL); | 79 tile_manager_.reset(NULL); |
| 80 picture_pile_ = NULL; | 80 picture_pile_ = NULL; |
| 81 | 81 |
| 82 testing::Test::TearDown(); | 82 testing::Test::TearDown(); |
| 83 } | 83 } |
| 84 | 84 |
| 85 // TileManagerClient implementation. | 85 // TileManagerClient implementation. |
| 86 virtual const std::vector<PictureLayerImpl*>& GetPictureLayers() OVERRIDE { | |
| 87 return picture_layers_; | |
| 88 } | |
| 86 virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; } | 89 virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; } |
| 87 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {} | 90 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {} |
| 88 | 91 |
| 89 TileVector CreateTilesWithSize(int count, | 92 TileVector CreateTilesWithSize(int count, |
| 90 TilePriority active_priority, | 93 TilePriority active_priority, |
| 91 TilePriority pending_priority, | 94 TilePriority pending_priority, |
| 92 const gfx::Size& tile_size) { | 95 const gfx::Size& tile_size) { |
| 93 TileVector tiles; | 96 TileVector tiles; |
| 94 for (int i = 0; i < count; ++i) { | 97 for (int i = 0; i < count; ++i) { |
| 95 scoped_refptr<Tile> tile = tile_manager_->CreateTile(picture_pile_.get(), | 98 scoped_refptr<Tile> tile = tile_manager_->CreateTile(picture_pile_.get(), |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 151 scoped_ptr<FakeTileManager> tile_manager_; | 154 scoped_ptr<FakeTileManager> tile_manager_; |
| 152 scoped_refptr<FakePicturePileImpl> picture_pile_; | 155 scoped_refptr<FakePicturePileImpl> picture_pile_; |
| 153 FakeOutputSurfaceClient output_surface_client_; | 156 FakeOutputSurfaceClient output_surface_client_; |
| 154 scoped_ptr<FakeOutputSurface> output_surface_; | 157 scoped_ptr<FakeOutputSurface> output_surface_; |
| 155 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; | 158 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; |
| 156 scoped_ptr<ResourceProvider> resource_provider_; | 159 scoped_ptr<ResourceProvider> resource_provider_; |
| 157 scoped_ptr<ResourcePool> resource_pool_; | 160 scoped_ptr<ResourcePool> resource_pool_; |
| 158 TileMemoryLimitPolicy memory_limit_policy_; | 161 TileMemoryLimitPolicy memory_limit_policy_; |
| 159 int max_tiles_; | 162 int max_tiles_; |
| 160 bool ready_to_activate_; | 163 bool ready_to_activate_; |
| 164 std::vector<PictureLayerImpl*> picture_layers_; | |
| 161 }; | 165 }; |
| 162 | 166 |
| 163 TEST_P(TileManagerTest, EnoughMemoryAllowAnything) { | 167 TEST_P(TileManagerTest, EnoughMemoryAllowAnything) { |
| 164 // A few tiles of each type of priority, with enough memory for all tiles. | 168 // A few tiles of each type of priority, with enough memory for all tiles. |
| 165 | 169 |
| 166 Initialize(10, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); | 170 Initialize(10, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); |
| 167 TileVector active_now = | 171 TileVector active_now = |
| 168 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); | 172 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); |
| 169 TileVector pending_now = | 173 TileVector pending_now = |
| 170 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); | 174 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); |
| (...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 711 | 715 |
| 712 void CreateHighLowResAndSetAllTilesVisible() { | 716 void CreateHighLowResAndSetAllTilesVisible() { |
| 713 // Active layer must get updated first so pending layer can share from it. | 717 // Active layer must get updated first so pending layer can share from it. |
| 714 active_layer_->CreateDefaultTilingsAndTiles(); | 718 active_layer_->CreateDefaultTilingsAndTiles(); |
| 715 active_layer_->SetAllTilesVisible(); | 719 active_layer_->SetAllTilesVisible(); |
| 716 pending_layer_->CreateDefaultTilingsAndTiles(); | 720 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 717 pending_layer_->SetAllTilesVisible(); | 721 pending_layer_->SetAllTilesVisible(); |
| 718 } | 722 } |
| 719 | 723 |
| 720 // TileManagerClient implementation. | 724 // TileManagerClient implementation. |
| 725 virtual const std::vector<PictureLayerImpl*>& GetPictureLayers() OVERRIDE { | |
| 726 return picture_layers_; | |
| 727 } | |
| 721 virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; } | 728 virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; } |
| 722 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {} | 729 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {} |
| 723 | 730 |
| 724 TileManager* tile_manager() { return host_impl_.tile_manager(); } | 731 TileManager* tile_manager() { return host_impl_.tile_manager(); } |
| 725 | 732 |
| 726 protected: | 733 protected: |
| 727 GlobalStateThatImpactsTilePriority global_state_; | 734 GlobalStateThatImpactsTilePriority global_state_; |
| 728 | 735 |
| 729 TestSharedBitmapManager shared_bitmap_manager_; | 736 TestSharedBitmapManager shared_bitmap_manager_; |
| 730 TileMemoryLimitPolicy memory_limit_policy_; | 737 TileMemoryLimitPolicy memory_limit_policy_; |
| 731 int max_tiles_; | 738 int max_tiles_; |
| 732 bool ready_to_activate_; | 739 bool ready_to_activate_; |
| 733 int id_; | 740 int id_; |
| 734 FakeImplProxy proxy_; | 741 FakeImplProxy proxy_; |
| 735 FakeLayerTreeHostImpl host_impl_; | 742 FakeLayerTreeHostImpl host_impl_; |
| 736 FakePictureLayerImpl* pending_layer_; | 743 FakePictureLayerImpl* pending_layer_; |
| 737 FakePictureLayerImpl* active_layer_; | 744 FakePictureLayerImpl* active_layer_; |
| 745 std::vector<PictureLayerImpl*> picture_layers_; | |
| 738 }; | 746 }; |
| 739 | 747 |
| 740 TEST_F(TileManagerTileIteratorTest, PairedPictureLayers) { | 748 TEST_F(TileManagerTileIteratorTest, PairedPictureLayers) { |
| 741 FakeImplProxy proxy; | 749 FakeImplProxy proxy; |
| 742 TestSharedBitmapManager shared_bitmap_manager; | 750 TestSharedBitmapManager shared_bitmap_manager; |
| 743 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); | 751 FakeLayerTreeHostImpl host_impl(&proxy, &shared_bitmap_manager); |
| 744 host_impl.CreatePendingTree(); | 752 host_impl.CreatePendingTree(); |
| 745 host_impl.ActivatePendingTree(); | 753 host_impl.ActivatePendingTree(); |
| 746 host_impl.CreatePendingTree(); | 754 host_impl.CreatePendingTree(); |
| 747 | 755 |
| 748 LayerTreeImpl* active_tree = host_impl.active_tree(); | 756 LayerTreeImpl* active_tree = host_impl.active_tree(); |
| 749 LayerTreeImpl* pending_tree = host_impl.pending_tree(); | 757 LayerTreeImpl* pending_tree = host_impl.pending_tree(); |
| 750 EXPECT_NE(active_tree, pending_tree); | 758 EXPECT_NE(active_tree, pending_tree); |
| 751 | 759 |
| 752 scoped_ptr<FakePictureLayerImpl> active_layer = | 760 scoped_ptr<FakePictureLayerImpl> active_layer = |
| 753 FakePictureLayerImpl::Create(active_tree, 10); | 761 FakePictureLayerImpl::Create(active_tree, 10); |
| 754 scoped_ptr<FakePictureLayerImpl> pending_layer = | 762 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| 755 FakePictureLayerImpl::Create(pending_tree, 10); | 763 FakePictureLayerImpl::Create(pending_tree, 10); |
| 756 | 764 |
| 757 TileManager* tile_manager = TileManagerTileIteratorTest::tile_manager(); | 765 TileManager* tile_manager = TileManagerTileIteratorTest::tile_manager(); |
| 758 EXPECT_TRUE(tile_manager); | 766 EXPECT_TRUE(tile_manager); |
| 759 | 767 |
| 760 tile_manager->RegisterPictureLayerImpl(active_layer.get()); | 768 picture_layers_.push_back(active_layer.get()); |
| 761 tile_manager->RegisterPictureLayerImpl(pending_layer.get()); | 769 picture_layers_.push_back(pending_layer.get()); |
| 762 | 770 |
| 763 std::vector<TileManager::PairedPictureLayer> paired_layers; | 771 std::vector<TileManager::PairedPictureLayer> paired_layers; |
| 764 tile_manager->GetPairedPictureLayers(&paired_layers); | 772 tile_manager->GetPairedPictureLayers(&paired_layers); |
| 765 | 773 |
| 766 EXPECT_EQ(2u, paired_layers.size()); | 774 EXPECT_EQ(2u, paired_layers.size()); |
| 767 if (paired_layers[0].active_layer) { | 775 if (paired_layers[0].active_layer) { |
| 768 EXPECT_EQ(active_layer.get(), paired_layers[0].active_layer); | 776 EXPECT_EQ(active_layer.get(), paired_layers[0].active_layer); |
| 769 EXPECT_EQ(NULL, paired_layers[0].pending_layer); | 777 EXPECT_EQ(NULL, paired_layers[0].pending_layer); |
| 770 } else { | 778 } else { |
| 771 EXPECT_EQ(pending_layer.get(), paired_layers[0].pending_layer); | 779 EXPECT_EQ(pending_layer.get(), paired_layers[0].pending_layer); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 782 | 790 |
| 783 active_layer->set_twin_layer(pending_layer.get()); | 791 active_layer->set_twin_layer(pending_layer.get()); |
| 784 pending_layer->set_twin_layer(active_layer.get()); | 792 pending_layer->set_twin_layer(active_layer.get()); |
| 785 | 793 |
| 786 tile_manager->GetPairedPictureLayers(&paired_layers); | 794 tile_manager->GetPairedPictureLayers(&paired_layers); |
| 787 EXPECT_EQ(1u, paired_layers.size()); | 795 EXPECT_EQ(1u, paired_layers.size()); |
| 788 | 796 |
| 789 EXPECT_EQ(active_layer.get(), paired_layers[0].active_layer); | 797 EXPECT_EQ(active_layer.get(), paired_layers[0].active_layer); |
| 790 EXPECT_EQ(pending_layer.get(), paired_layers[0].pending_layer); | 798 EXPECT_EQ(pending_layer.get(), paired_layers[0].pending_layer); |
| 791 | 799 |
| 792 tile_manager->UnregisterPictureLayerImpl(active_layer.get()); | 800 picture_layers_.clear(); |
|
vmpstr
2014/06/05 22:38:02
Do you need this?
reveman
2014/06/06 17:27:24
Nope. Done.
| |
| 793 tile_manager->UnregisterPictureLayerImpl(pending_layer.get()); | |
| 794 } | 801 } |
| 795 | 802 |
| 796 TEST_F(TileManagerTileIteratorTest, RasterTileIterator) { | 803 TEST_F(TileManagerTileIteratorTest, RasterTileIterator) { |
| 797 SetupDefaultTrees(gfx::Size(1000, 1000)); | 804 SetupDefaultTrees(gfx::Size(1000, 1000)); |
| 798 TileManager* tile_manager = TileManagerTileIteratorTest::tile_manager(); | 805 TileManager* tile_manager = TileManagerTileIteratorTest::tile_manager(); |
| 799 EXPECT_TRUE(tile_manager); | 806 EXPECT_TRUE(tile_manager); |
| 800 | 807 |
| 801 active_layer_->CreateDefaultTilingsAndTiles(); | 808 active_layer_->CreateDefaultTilingsAndTiles(); |
| 802 pending_layer_->CreateDefaultTilingsAndTiles(); | 809 pending_layer_->CreateDefaultTilingsAndTiles(); |
| 803 | 810 |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1111 | 1118 |
| 1112 last_tile = tile; | 1119 last_tile = tile; |
| 1113 new_content_tiles.insert(tile); | 1120 new_content_tiles.insert(tile); |
| 1114 } | 1121 } |
| 1115 | 1122 |
| 1116 EXPECT_EQ(tile_count, new_content_tiles.size()); | 1123 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 1117 EXPECT_EQ(all_tiles, new_content_tiles); | 1124 EXPECT_EQ(all_tiles, new_content_tiles); |
| 1118 } | 1125 } |
| 1119 } // namespace | 1126 } // namespace |
| 1120 } // namespace cc | 1127 } // namespace cc |
| OLD | NEW |