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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 2077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2088 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) { | 2088 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) { |
2089 gfx::Size layer_bounds(400, 400); | 2089 gfx::Size layer_bounds(400, 400); |
2090 gfx::Size tile_size(100, 100); | 2090 gfx::Size tile_size(100, 100); |
2091 | 2091 |
2092 // No invalidation. | 2092 // No invalidation. |
2093 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); | 2093 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); |
2094 | 2094 |
2095 // Verify active tree not ready. | 2095 // Verify active tree not ready. |
2096 Tile* some_active_tile = | 2096 Tile* some_active_tile = |
2097 active_layer_->HighResTiling()->AllTilesForTesting()[0]; | 2097 active_layer_->HighResTiling()->AllTilesForTesting()[0]; |
2098 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); | 2098 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw()); |
2099 | 2099 |
2100 // When high res are required, all tiles in active high res tiling should be | 2100 // When high res are required, all tiles in active high res tiling should be |
2101 // required for activation. | 2101 // required for activation. |
2102 host_impl_.SetRequiresHighResToDraw(); | 2102 host_impl_.SetRequiresHighResToDraw(); |
2103 | 2103 |
2104 pending_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); | 2104 pending_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); |
2105 pending_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); | 2105 pending_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); |
2106 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); | 2106 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); |
2107 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); | 2107 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); |
2108 | 2108 |
2109 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); | 2109 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); |
2110 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); | 2110 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); |
2111 AssertAllTilesRequired(active_layer_->HighResTiling()); | 2111 AssertAllTilesRequired(active_layer_->HighResTiling()); |
2112 AssertNoTilesRequired(active_layer_->LowResTiling()); | 2112 AssertNoTilesRequired(active_layer_->LowResTiling()); |
2113 } | 2113 } |
2114 | 2114 |
2115 TEST_F(PictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { | 2115 TEST_F(PictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { |
2116 gfx::Size layer_bounds(400, 400); | 2116 gfx::Size layer_bounds(400, 400); |
2117 gfx::Size tile_size(100, 100); | 2117 gfx::Size tile_size(100, 100); |
2118 | 2118 |
2119 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); | 2119 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); |
2120 | 2120 |
2121 Tile* some_active_tile = | 2121 Tile* some_active_tile = |
2122 active_layer_->HighResTiling()->AllTilesForTesting()[0]; | 2122 active_layer_->HighResTiling()->AllTilesForTesting()[0]; |
2123 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); | 2123 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw()); |
2124 | 2124 |
2125 // Since there are no invalidations, pending tree should have no tiles. | 2125 // Since there are no invalidations, pending tree should have no tiles. |
2126 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); | 2126 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); |
2127 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); | 2127 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); |
2128 | 2128 |
2129 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); | 2129 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); |
2130 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); | 2130 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); |
2131 | 2131 |
2132 AssertAllTilesRequired(active_layer_->HighResTiling()); | 2132 AssertAllTilesRequired(active_layer_->HighResTiling()); |
2133 AssertNoTilesRequired(active_layer_->LowResTiling()); | 2133 AssertNoTilesRequired(active_layer_->LowResTiling()); |
2134 } | 2134 } |
2135 | 2135 |
2136 TEST_F(PictureLayerImplTest, DisallowRequiredForActivation) { | 2136 TEST_F(PictureLayerImplTest, DisallowRequiredForActivation) { |
2137 gfx::Size layer_bounds(400, 400); | 2137 gfx::Size layer_bounds(400, 400); |
2138 gfx::Size tile_size(100, 100); | 2138 gfx::Size tile_size(100, 100); |
2139 | 2139 |
2140 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); | 2140 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); |
2141 | 2141 |
2142 Tile* some_active_tile = | 2142 Tile* some_active_tile = |
2143 active_layer_->HighResTiling()->AllTilesForTesting()[0]; | 2143 active_layer_->HighResTiling()->AllTilesForTesting()[0]; |
2144 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); | 2144 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw()); |
2145 | 2145 |
2146 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); | 2146 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); |
2147 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); | 2147 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); |
2148 active_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); | 2148 active_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); |
2149 active_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); | 2149 active_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); |
2150 pending_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); | 2150 pending_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); |
2151 pending_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); | 2151 pending_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); |
2152 | 2152 |
2153 // If we disallow required for activation, no tiles can be required. | 2153 // If we disallow required for activation, no tiles can be required. |
2154 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); | 2154 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); |
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2972 EXPECT_TRUE(required_queue->IsEmpty()); | 2972 EXPECT_TRUE(required_queue->IsEmpty()); |
2973 | 2973 |
2974 required_queue.reset(new TilingSetRasterQueueRequired( | 2974 required_queue.reset(new TilingSetRasterQueueRequired( |
2975 pending_layer_->picture_layer_tiling_set(), | 2975 pending_layer_->picture_layer_tiling_set(), |
2976 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); | 2976 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); |
2977 EXPECT_FALSE(required_queue->IsEmpty()); | 2977 EXPECT_FALSE(required_queue->IsEmpty()); |
2978 int required_for_activation_count = 0; | 2978 int required_for_activation_count = 0; |
2979 while (!required_queue->IsEmpty()) { | 2979 while (!required_queue->IsEmpty()) { |
2980 PrioritizedTile prioritized_tile = required_queue->Top(); | 2980 PrioritizedTile prioritized_tile = required_queue->Top(); |
2981 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); | 2981 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); |
2982 EXPECT_FALSE(prioritized_tile.tile()->IsReadyToDraw()); | 2982 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw()); |
2983 ++required_for_activation_count; | 2983 ++required_for_activation_count; |
2984 required_queue->Pop(); | 2984 required_queue->Pop(); |
2985 } | 2985 } |
2986 | 2986 |
2987 // All of the high res tiles should be required for activation, since there is | 2987 // All of the high res tiles should be required for activation, since there is |
2988 // no active twin. | 2988 // no active twin. |
2989 EXPECT_EQ(high_res_now_tiles, required_for_activation_count); | 2989 EXPECT_EQ(high_res_now_tiles, required_for_activation_count); |
2990 | 2990 |
2991 // No NOW tiles. | 2991 // No NOW tiles. |
2992 time_ticks += base::TimeDelta::FromMilliseconds(200); | 2992 time_ticks += base::TimeDelta::FromMilliseconds(200); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3080 EXPECT_EQ(2u, active_layer_->num_tilings()); | 3080 EXPECT_EQ(2u, active_layer_->num_tilings()); |
3081 | 3081 |
3082 scoped_ptr<TilingSetRasterQueueRequired> queue( | 3082 scoped_ptr<TilingSetRasterQueueRequired> queue( |
3083 new TilingSetRasterQueueRequired( | 3083 new TilingSetRasterQueueRequired( |
3084 active_layer_->picture_layer_tiling_set(), | 3084 active_layer_->picture_layer_tiling_set(), |
3085 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW)); | 3085 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW)); |
3086 EXPECT_FALSE(queue->IsEmpty()); | 3086 EXPECT_FALSE(queue->IsEmpty()); |
3087 while (!queue->IsEmpty()) { | 3087 while (!queue->IsEmpty()) { |
3088 PrioritizedTile prioritized_tile = queue->Top(); | 3088 PrioritizedTile prioritized_tile = queue->Top(); |
3089 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); | 3089 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); |
3090 EXPECT_FALSE(prioritized_tile.tile()->IsReadyToDraw()); | 3090 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw()); |
3091 queue->Pop(); | 3091 queue->Pop(); |
3092 } | 3092 } |
3093 | 3093 |
3094 queue.reset(new TilingSetRasterQueueRequired( | 3094 queue.reset(new TilingSetRasterQueueRequired( |
3095 active_layer_->picture_layer_tiling_set(), | 3095 active_layer_->picture_layer_tiling_set(), |
3096 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); | 3096 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); |
3097 EXPECT_TRUE(queue->IsEmpty()); | 3097 EXPECT_TRUE(queue->IsEmpty()); |
3098 } | 3098 } |
3099 | 3099 |
3100 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) { | 3100 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) { |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3568 } | 3568 } |
3569 | 3569 |
3570 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { | 3570 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { |
3571 gfx::Size layer_bounds(400, 400); | 3571 gfx::Size layer_bounds(400, 400); |
3572 gfx::Size tile_size(100, 100); | 3572 gfx::Size tile_size(100, 100); |
3573 | 3573 |
3574 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); | 3574 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); |
3575 | 3575 |
3576 Tile* some_active_tile = | 3576 Tile* some_active_tile = |
3577 active_layer_->HighResTiling()->AllTilesForTesting()[0]; | 3577 active_layer_->HighResTiling()->AllTilesForTesting()[0]; |
3578 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); | 3578 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw()); |
3579 | 3579 |
3580 // Since there is no invalidation, pending tree should have no tiles. | 3580 // Since there is no invalidation, pending tree should have no tiles. |
3581 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); | 3581 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); |
3582 if (host_impl_.settings().create_low_res_tiling) | 3582 if (host_impl_.settings().create_low_res_tiling) |
3583 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); | 3583 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); |
3584 | 3584 |
3585 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); | 3585 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); |
3586 if (host_impl_.settings().create_low_res_tiling) | 3586 if (host_impl_.settings().create_low_res_tiling) |
3587 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); | 3587 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); |
3588 | 3588 |
(...skipping 1499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5088 result = layer->CalculateTileSize(gfx::Size(447, 400)); | 5088 result = layer->CalculateTileSize(gfx::Size(447, 400)); |
5089 EXPECT_EQ(result.width(), 448); | 5089 EXPECT_EQ(result.width(), 448); |
5090 EXPECT_EQ(result.height(), 448); | 5090 EXPECT_EQ(result.height(), 448); |
5091 result = layer->CalculateTileSize(gfx::Size(500, 499)); | 5091 result = layer->CalculateTileSize(gfx::Size(500, 499)); |
5092 EXPECT_EQ(result.width(), 512); | 5092 EXPECT_EQ(result.width(), 512); |
5093 EXPECT_EQ(result.height(), 500 + 2); | 5093 EXPECT_EQ(result.height(), 500 + 2); |
5094 } | 5094 } |
5095 | 5095 |
5096 } // namespace | 5096 } // namespace |
5097 } // namespace cc | 5097 } // namespace cc |
OLD | NEW |