| Index: trunk/src/cc/resources/tile_manager_unittest.cc
|
| ===================================================================
|
| --- trunk/src/cc/resources/tile_manager_unittest.cc (revision 272659)
|
| +++ trunk/src/cc/resources/tile_manager_unittest.cc (working copy)
|
| @@ -32,7 +32,8 @@
|
|
|
| void Initialize(int max_tiles,
|
| TileMemoryLimitPolicy memory_limit_policy,
|
| - TreePriority tree_priority) {
|
| + TreePriority tree_priority,
|
| + bool allow_on_demand_raster = true) {
|
| output_surface_ = FakeOutputSurface::Create3d();
|
| CHECK(output_surface_->BindToClient(&output_surface_client_));
|
|
|
| @@ -42,8 +43,8 @@
|
| false);
|
| resource_pool_ = ResourcePool::Create(
|
| resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
|
| - tile_manager_ =
|
| - make_scoped_ptr(new FakeTileManager(this, resource_pool_.get()));
|
| + tile_manager_ = make_scoped_ptr(new FakeTileManager(
|
| + this, resource_pool_.get(), allow_on_demand_raster));
|
|
|
| memory_limit_policy_ = memory_limit_policy;
|
| max_tiles_ = max_tiles;
|
| @@ -84,7 +85,7 @@
|
|
|
| // TileManagerClient implementation.
|
| virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; }
|
| - virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {}
|
| + virtual void NotifyTileInitialized(const Tile* tile) OVERRIDE {}
|
|
|
| TileVector CreateTilesWithSize(int count,
|
| TilePriority active_priority,
|
| @@ -613,6 +614,40 @@
|
| EXPECT_LE(memory_allocated_bytes, global_state_.hard_memory_limit_in_bytes);
|
| }
|
|
|
| +TEST_P(TileManagerTest, AllowRasterizeOnDemand) {
|
| + // Not enough memory to initialize tiles required for activation.
|
| + Initialize(0, ALLOW_ANYTHING, SAME_PRIORITY_FOR_BOTH_TREES);
|
| + TileVector tiles =
|
| + CreateTiles(2, TilePriority(), TilePriorityRequiredForActivation());
|
| +
|
| + tile_manager()->AssignMemoryToTiles(global_state_);
|
| +
|
| + // This should make required tiles ready to draw by marking them as
|
| + // required tiles for on-demand raster.
|
| + tile_manager()->DidFinishRunningTasksForTesting();
|
| +
|
| + EXPECT_TRUE(ready_to_activate());
|
| + for (TileVector::iterator it = tiles.begin(); it != tiles.end(); ++it)
|
| + EXPECT_TRUE((*it)->IsReadyToDraw());
|
| +}
|
| +
|
| +TEST_P(TileManagerTest, PreventRasterizeOnDemand) {
|
| + // Not enough memory to initialize tiles required for activation.
|
| + Initialize(0, ALLOW_ANYTHING, SAME_PRIORITY_FOR_BOTH_TREES, false);
|
| + TileVector tiles =
|
| + CreateTiles(2, TilePriority(), TilePriorityRequiredForActivation());
|
| +
|
| + tile_manager()->AssignMemoryToTiles(global_state_);
|
| +
|
| + // This should make required tiles ready to draw by marking them as
|
| + // required tiles for on-demand raster.
|
| + tile_manager()->DidFinishRunningTasksForTesting();
|
| +
|
| + EXPECT_TRUE(ready_to_activate());
|
| + for (TileVector::iterator it = tiles.begin(); it != tiles.end(); ++it)
|
| + EXPECT_FALSE((*it)->IsReadyToDraw());
|
| +}
|
| +
|
| // If true, the max tile limit should be applied as bytes; if false,
|
| // as num_resources_limit.
|
| INSTANTIATE_TEST_CASE_P(TileManagerTests,
|
| @@ -719,7 +754,7 @@
|
|
|
| // TileManagerClient implementation.
|
| virtual void NotifyReadyToActivate() OVERRIDE { ready_to_activate_ = true; }
|
| - virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE {}
|
| + virtual void NotifyTileInitialized(const Tile* tile) OVERRIDE {}
|
|
|
| TileManager* tile_manager() { return host_impl_.tile_manager(); }
|
|
|
|
|