Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Side by Side Diff: cc/resources/tile_manager_unittest.cc

Issue 322443002: cc: Refactor how picture layers are exposed to the tile manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698