| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/picture_layer_tiling_set.h" | 5 #include "cc/resources/picture_layer_tiling_set.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "cc/resources/resource_provider.h" | 10 #include "cc/resources/resource_provider.h" |
| 11 #include "cc/test/fake_output_surface.h" | 11 #include "cc/test/fake_output_surface.h" |
| 12 #include "cc/test/fake_output_surface_client.h" | 12 #include "cc/test/fake_output_surface_client.h" |
| 13 #include "cc/test/fake_picture_layer_tiling_client.h" | 13 #include "cc/test/fake_picture_layer_tiling_client.h" |
| 14 #include "cc/test/test_shared_bitmap_manager.h" | 14 #include "cc/test/test_shared_bitmap_manager.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "ui/gfx/geometry/size_conversions.h" | 16 #include "ui/gfx/geometry/size_conversions.h" |
| 17 | 17 |
| 18 namespace cc { | 18 namespace cc { |
| 19 namespace { | 19 namespace { |
| 20 | 20 |
| 21 TEST(PictureLayerTilingSetTest, NoResources) { | 21 TEST(PictureLayerTilingSetTest, NoResources) { |
| 22 FakePictureLayerTilingClient client; | 22 FakePictureLayerTilingClient client; |
| 23 gfx::Size layer_bounds(1000, 800); | 23 gfx::Size layer_bounds(1000, 800); |
| 24 PictureLayerTilingSet set(&client); | 24 auto set = PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 25 client.SetTileSize(gfx::Size(256, 256)); | 25 client.SetTileSize(gfx::Size(256, 256)); |
| 26 | 26 |
| 27 set.AddTiling(1.0, layer_bounds); | 27 set->AddTiling(1.0, layer_bounds); |
| 28 set.AddTiling(1.5, layer_bounds); | 28 set->AddTiling(1.5, layer_bounds); |
| 29 set.AddTiling(2.0, layer_bounds); | 29 set->AddTiling(2.0, layer_bounds); |
| 30 | 30 |
| 31 float contents_scale = 2.0; | 31 float contents_scale = 2.0; |
| 32 gfx::Size content_bounds( | 32 gfx::Size content_bounds( |
| 33 gfx::ToCeiledSize(gfx::ScaleSize(layer_bounds, contents_scale))); | 33 gfx::ToCeiledSize(gfx::ScaleSize(layer_bounds, contents_scale))); |
| 34 gfx::Rect content_rect(content_bounds); | 34 gfx::Rect content_rect(content_bounds); |
| 35 | 35 |
| 36 Region remaining(content_rect); | 36 Region remaining(content_rect); |
| 37 PictureLayerTilingSet::CoverageIterator iter( | 37 PictureLayerTilingSet::CoverageIterator iter(set.get(), contents_scale, |
| 38 &set, | 38 content_rect, contents_scale); |
| 39 contents_scale, | |
| 40 content_rect, | |
| 41 contents_scale); | |
| 42 for (; iter; ++iter) { | 39 for (; iter; ++iter) { |
| 43 gfx::Rect geometry_rect = iter.geometry_rect(); | 40 gfx::Rect geometry_rect = iter.geometry_rect(); |
| 44 EXPECT_TRUE(content_rect.Contains(geometry_rect)); | 41 EXPECT_TRUE(content_rect.Contains(geometry_rect)); |
| 45 ASSERT_TRUE(remaining.Contains(geometry_rect)); | 42 ASSERT_TRUE(remaining.Contains(geometry_rect)); |
| 46 remaining.Subtract(geometry_rect); | 43 remaining.Subtract(geometry_rect); |
| 47 | 44 |
| 48 // No tiles have resources, so no iter represents a real tile. | 45 // No tiles have resources, so no iter represents a real tile. |
| 49 EXPECT_FALSE(*iter); | 46 EXPECT_FALSE(*iter); |
| 50 } | 47 } |
| 51 EXPECT_TRUE(remaining.IsEmpty()); | 48 EXPECT_TRUE(remaining.IsEmpty()); |
| 52 } | 49 } |
| 53 | 50 |
| 54 TEST(PictureLayerTilingSetTest, TilingRange) { | 51 TEST(PictureLayerTilingSetTest, TilingRange) { |
| 55 FakePictureLayerTilingClient client; | 52 FakePictureLayerTilingClient client; |
| 56 gfx::Size layer_bounds(10, 10); | 53 gfx::Size layer_bounds(10, 10); |
| 57 PictureLayerTilingSet::TilingRange higher_than_high_res_range(0, 0); | 54 PictureLayerTilingSet::TilingRange higher_than_high_res_range(0, 0); |
| 58 PictureLayerTilingSet::TilingRange high_res_range(0, 0); | 55 PictureLayerTilingSet::TilingRange high_res_range(0, 0); |
| 59 PictureLayerTilingSet::TilingRange between_high_and_low_res_range(0, 0); | 56 PictureLayerTilingSet::TilingRange between_high_and_low_res_range(0, 0); |
| 60 PictureLayerTilingSet::TilingRange low_res_range(0, 0); | 57 PictureLayerTilingSet::TilingRange low_res_range(0, 0); |
| 61 PictureLayerTilingSet::TilingRange lower_than_low_res_range(0, 0); | 58 PictureLayerTilingSet::TilingRange lower_than_low_res_range(0, 0); |
| 62 PictureLayerTiling* high_res_tiling; | 59 PictureLayerTiling* high_res_tiling; |
| 63 PictureLayerTiling* low_res_tiling; | 60 PictureLayerTiling* low_res_tiling; |
| 64 | 61 |
| 65 PictureLayerTilingSet set(&client); | 62 auto set = PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 66 set.AddTiling(2.0, layer_bounds); | 63 set->AddTiling(2.0, layer_bounds); |
| 67 high_res_tiling = set.AddTiling(1.0, layer_bounds); | 64 high_res_tiling = set->AddTiling(1.0, layer_bounds); |
| 68 high_res_tiling->set_resolution(HIGH_RESOLUTION); | 65 high_res_tiling->set_resolution(HIGH_RESOLUTION); |
| 69 set.AddTiling(0.5, layer_bounds); | 66 set->AddTiling(0.5, layer_bounds); |
| 70 low_res_tiling = set.AddTiling(0.25, layer_bounds); | 67 low_res_tiling = set->AddTiling(0.25, layer_bounds); |
| 71 low_res_tiling->set_resolution(LOW_RESOLUTION); | 68 low_res_tiling->set_resolution(LOW_RESOLUTION); |
| 72 set.AddTiling(0.125, layer_bounds); | 69 set->AddTiling(0.125, layer_bounds); |
| 73 | 70 |
| 74 higher_than_high_res_range = | 71 higher_than_high_res_range = |
| 75 set.GetTilingRange(PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); | 72 set->GetTilingRange(PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); |
| 76 EXPECT_EQ(0u, higher_than_high_res_range.start); | 73 EXPECT_EQ(0u, higher_than_high_res_range.start); |
| 77 EXPECT_EQ(1u, higher_than_high_res_range.end); | 74 EXPECT_EQ(1u, higher_than_high_res_range.end); |
| 78 | 75 |
| 79 high_res_range = set.GetTilingRange(PictureLayerTilingSet::HIGH_RES); | 76 high_res_range = set->GetTilingRange(PictureLayerTilingSet::HIGH_RES); |
| 80 EXPECT_EQ(1u, high_res_range.start); | 77 EXPECT_EQ(1u, high_res_range.start); |
| 81 EXPECT_EQ(2u, high_res_range.end); | 78 EXPECT_EQ(2u, high_res_range.end); |
| 82 | 79 |
| 83 between_high_and_low_res_range = | 80 between_high_and_low_res_range = |
| 84 set.GetTilingRange(PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); | 81 set->GetTilingRange(PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); |
| 85 EXPECT_EQ(2u, between_high_and_low_res_range.start); | 82 EXPECT_EQ(2u, between_high_and_low_res_range.start); |
| 86 EXPECT_EQ(3u, between_high_and_low_res_range.end); | 83 EXPECT_EQ(3u, between_high_and_low_res_range.end); |
| 87 | 84 |
| 88 low_res_range = set.GetTilingRange(PictureLayerTilingSet::LOW_RES); | 85 low_res_range = set->GetTilingRange(PictureLayerTilingSet::LOW_RES); |
| 89 EXPECT_EQ(3u, low_res_range.start); | 86 EXPECT_EQ(3u, low_res_range.start); |
| 90 EXPECT_EQ(4u, low_res_range.end); | 87 EXPECT_EQ(4u, low_res_range.end); |
| 91 | 88 |
| 92 lower_than_low_res_range = | 89 lower_than_low_res_range = |
| 93 set.GetTilingRange(PictureLayerTilingSet::LOWER_THAN_LOW_RES); | 90 set->GetTilingRange(PictureLayerTilingSet::LOWER_THAN_LOW_RES); |
| 94 EXPECT_EQ(4u, lower_than_low_res_range.start); | 91 EXPECT_EQ(4u, lower_than_low_res_range.start); |
| 95 EXPECT_EQ(5u, lower_than_low_res_range.end); | 92 EXPECT_EQ(5u, lower_than_low_res_range.end); |
| 96 | 93 |
| 97 PictureLayerTilingSet set_without_low_res(&client); | 94 auto set_without_low_res = |
| 98 set_without_low_res.AddTiling(2.0, layer_bounds); | 95 PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 99 high_res_tiling = set_without_low_res.AddTiling(1.0, layer_bounds); | 96 set_without_low_res->AddTiling(2.0, layer_bounds); |
| 97 high_res_tiling = set_without_low_res->AddTiling(1.0, layer_bounds); |
| 100 high_res_tiling->set_resolution(HIGH_RESOLUTION); | 98 high_res_tiling->set_resolution(HIGH_RESOLUTION); |
| 101 set_without_low_res.AddTiling(0.5, layer_bounds); | 99 set_without_low_res->AddTiling(0.5, layer_bounds); |
| 102 set_without_low_res.AddTiling(0.25, layer_bounds); | 100 set_without_low_res->AddTiling(0.25, layer_bounds); |
| 103 | 101 |
| 104 higher_than_high_res_range = set_without_low_res.GetTilingRange( | 102 higher_than_high_res_range = set_without_low_res->GetTilingRange( |
| 105 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); | 103 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); |
| 106 EXPECT_EQ(0u, higher_than_high_res_range.start); | 104 EXPECT_EQ(0u, higher_than_high_res_range.start); |
| 107 EXPECT_EQ(1u, higher_than_high_res_range.end); | 105 EXPECT_EQ(1u, higher_than_high_res_range.end); |
| 108 | 106 |
| 109 high_res_range = | 107 high_res_range = |
| 110 set_without_low_res.GetTilingRange(PictureLayerTilingSet::HIGH_RES); | 108 set_without_low_res->GetTilingRange(PictureLayerTilingSet::HIGH_RES); |
| 111 EXPECT_EQ(1u, high_res_range.start); | 109 EXPECT_EQ(1u, high_res_range.start); |
| 112 EXPECT_EQ(2u, high_res_range.end); | 110 EXPECT_EQ(2u, high_res_range.end); |
| 113 | 111 |
| 114 between_high_and_low_res_range = set_without_low_res.GetTilingRange( | 112 between_high_and_low_res_range = set_without_low_res->GetTilingRange( |
| 115 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); | 113 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); |
| 116 EXPECT_EQ(2u, between_high_and_low_res_range.start); | 114 EXPECT_EQ(2u, between_high_and_low_res_range.start); |
| 117 EXPECT_EQ(4u, between_high_and_low_res_range.end); | 115 EXPECT_EQ(4u, between_high_and_low_res_range.end); |
| 118 | 116 |
| 119 low_res_range = | 117 low_res_range = |
| 120 set_without_low_res.GetTilingRange(PictureLayerTilingSet::LOW_RES); | 118 set_without_low_res->GetTilingRange(PictureLayerTilingSet::LOW_RES); |
| 121 EXPECT_EQ(0u, low_res_range.end - low_res_range.start); | 119 EXPECT_EQ(0u, low_res_range.end - low_res_range.start); |
| 122 | 120 |
| 123 lower_than_low_res_range = set_without_low_res.GetTilingRange( | 121 lower_than_low_res_range = set_without_low_res->GetTilingRange( |
| 124 PictureLayerTilingSet::LOWER_THAN_LOW_RES); | 122 PictureLayerTilingSet::LOWER_THAN_LOW_RES); |
| 125 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); | 123 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); |
| 126 | 124 |
| 127 PictureLayerTilingSet set_with_only_high_and_low_res(&client); | 125 auto set_with_only_high_and_low_res = |
| 128 high_res_tiling = set_with_only_high_and_low_res.AddTiling(1.0, layer_bounds); | 126 PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 127 high_res_tiling = |
| 128 set_with_only_high_and_low_res->AddTiling(1.0, layer_bounds); |
| 129 high_res_tiling->set_resolution(HIGH_RESOLUTION); | 129 high_res_tiling->set_resolution(HIGH_RESOLUTION); |
| 130 low_res_tiling = set_with_only_high_and_low_res.AddTiling(0.5, layer_bounds); | 130 low_res_tiling = set_with_only_high_and_low_res->AddTiling(0.5, layer_bounds); |
| 131 low_res_tiling->set_resolution(LOW_RESOLUTION); | 131 low_res_tiling->set_resolution(LOW_RESOLUTION); |
| 132 | 132 |
| 133 higher_than_high_res_range = set_with_only_high_and_low_res.GetTilingRange( | 133 higher_than_high_res_range = set_with_only_high_and_low_res->GetTilingRange( |
| 134 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); | 134 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); |
| 135 EXPECT_EQ(0u, | 135 EXPECT_EQ(0u, |
| 136 higher_than_high_res_range.end - higher_than_high_res_range.start); | 136 higher_than_high_res_range.end - higher_than_high_res_range.start); |
| 137 | 137 |
| 138 high_res_range = set_with_only_high_and_low_res.GetTilingRange( | 138 high_res_range = set_with_only_high_and_low_res->GetTilingRange( |
| 139 PictureLayerTilingSet::HIGH_RES); | 139 PictureLayerTilingSet::HIGH_RES); |
| 140 EXPECT_EQ(0u, high_res_range.start); | 140 EXPECT_EQ(0u, high_res_range.start); |
| 141 EXPECT_EQ(1u, high_res_range.end); | 141 EXPECT_EQ(1u, high_res_range.end); |
| 142 | 142 |
| 143 between_high_and_low_res_range = | 143 between_high_and_low_res_range = |
| 144 set_with_only_high_and_low_res.GetTilingRange( | 144 set_with_only_high_and_low_res->GetTilingRange( |
| 145 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); | 145 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); |
| 146 EXPECT_EQ(0u, | 146 EXPECT_EQ(0u, between_high_and_low_res_range.end - |
| 147 between_high_and_low_res_range.end - | 147 between_high_and_low_res_range.start); |
| 148 between_high_and_low_res_range.start); | |
| 149 | 148 |
| 150 low_res_range = set_with_only_high_and_low_res.GetTilingRange( | 149 low_res_range = set_with_only_high_and_low_res->GetTilingRange( |
| 151 PictureLayerTilingSet::LOW_RES); | 150 PictureLayerTilingSet::LOW_RES); |
| 152 EXPECT_EQ(1u, low_res_range.start); | 151 EXPECT_EQ(1u, low_res_range.start); |
| 153 EXPECT_EQ(2u, low_res_range.end); | 152 EXPECT_EQ(2u, low_res_range.end); |
| 154 | 153 |
| 155 lower_than_low_res_range = set_with_only_high_and_low_res.GetTilingRange( | 154 lower_than_low_res_range = set_with_only_high_and_low_res->GetTilingRange( |
| 156 PictureLayerTilingSet::LOWER_THAN_LOW_RES); | 155 PictureLayerTilingSet::LOWER_THAN_LOW_RES); |
| 157 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); | 156 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); |
| 158 | 157 |
| 159 PictureLayerTilingSet set_with_only_high_res(&client); | 158 auto set_with_only_high_res = |
| 160 high_res_tiling = set_with_only_high_res.AddTiling(1.0, layer_bounds); | 159 PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 160 high_res_tiling = set_with_only_high_res->AddTiling(1.0, layer_bounds); |
| 161 high_res_tiling->set_resolution(HIGH_RESOLUTION); | 161 high_res_tiling->set_resolution(HIGH_RESOLUTION); |
| 162 | 162 |
| 163 higher_than_high_res_range = set_with_only_high_res.GetTilingRange( | 163 higher_than_high_res_range = set_with_only_high_res->GetTilingRange( |
| 164 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); | 164 PictureLayerTilingSet::HIGHER_THAN_HIGH_RES); |
| 165 EXPECT_EQ(0u, | 165 EXPECT_EQ(0u, |
| 166 higher_than_high_res_range.end - higher_than_high_res_range.start); | 166 higher_than_high_res_range.end - higher_than_high_res_range.start); |
| 167 | 167 |
| 168 high_res_range = | 168 high_res_range = |
| 169 set_with_only_high_res.GetTilingRange(PictureLayerTilingSet::HIGH_RES); | 169 set_with_only_high_res->GetTilingRange(PictureLayerTilingSet::HIGH_RES); |
| 170 EXPECT_EQ(0u, high_res_range.start); | 170 EXPECT_EQ(0u, high_res_range.start); |
| 171 EXPECT_EQ(1u, high_res_range.end); | 171 EXPECT_EQ(1u, high_res_range.end); |
| 172 | 172 |
| 173 between_high_and_low_res_range = set_with_only_high_res.GetTilingRange( | 173 between_high_and_low_res_range = set_with_only_high_res->GetTilingRange( |
| 174 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); | 174 PictureLayerTilingSet::BETWEEN_HIGH_AND_LOW_RES); |
| 175 EXPECT_EQ(0u, | 175 EXPECT_EQ(0u, between_high_and_low_res_range.end - |
| 176 between_high_and_low_res_range.end - | 176 between_high_and_low_res_range.start); |
| 177 between_high_and_low_res_range.start); | |
| 178 | 177 |
| 179 low_res_range = | 178 low_res_range = |
| 180 set_with_only_high_res.GetTilingRange(PictureLayerTilingSet::LOW_RES); | 179 set_with_only_high_res->GetTilingRange(PictureLayerTilingSet::LOW_RES); |
| 181 EXPECT_EQ(0u, low_res_range.end - low_res_range.start); | 180 EXPECT_EQ(0u, low_res_range.end - low_res_range.start); |
| 182 | 181 |
| 183 lower_than_low_res_range = set_with_only_high_res.GetTilingRange( | 182 lower_than_low_res_range = set_with_only_high_res->GetTilingRange( |
| 184 PictureLayerTilingSet::LOWER_THAN_LOW_RES); | 183 PictureLayerTilingSet::LOWER_THAN_LOW_RES); |
| 185 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); | 184 EXPECT_EQ(0u, lower_than_low_res_range.end - lower_than_low_res_range.start); |
| 186 } | 185 } |
| 187 | 186 |
| 188 class PictureLayerTilingSetTestWithResources : public testing::Test { | 187 class PictureLayerTilingSetTestWithResources : public testing::Test { |
| 189 public: | 188 public: |
| 190 void runTest( | 189 void runTest( |
| 191 int num_tilings, | 190 int num_tilings, |
| 192 float min_scale, | 191 float min_scale, |
| 193 float scale_increment, | 192 float scale_increment, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 206 NULL, | 205 NULL, |
| 207 NULL, | 206 NULL, |
| 208 0, | 207 0, |
| 209 false, | 208 false, |
| 210 1); | 209 1); |
| 211 | 210 |
| 212 FakePictureLayerTilingClient client(resource_provider.get()); | 211 FakePictureLayerTilingClient client(resource_provider.get()); |
| 213 client.SetTileSize(gfx::Size(256, 256)); | 212 client.SetTileSize(gfx::Size(256, 256)); |
| 214 client.set_tree(PENDING_TREE); | 213 client.set_tree(PENDING_TREE); |
| 215 gfx::Size layer_bounds(1000, 800); | 214 gfx::Size layer_bounds(1000, 800); |
| 216 PictureLayerTilingSet set(&client); | 215 auto set = PictureLayerTilingSet::Create(&client, client.raster_source()); |
| 217 | 216 |
| 218 float scale = min_scale; | 217 float scale = min_scale; |
| 219 for (int i = 0; i < num_tilings; ++i, scale += scale_increment) { | 218 for (int i = 0; i < num_tilings; ++i, scale += scale_increment) { |
| 220 PictureLayerTiling* tiling = set.AddTiling(scale, layer_bounds); | 219 PictureLayerTiling* tiling = set->AddTiling(scale, layer_bounds); |
| 221 tiling->CreateAllTilesForTesting(); | 220 tiling->CreateAllTilesForTesting(); |
| 222 std::vector<Tile*> tiles = tiling->AllTilesForTesting(); | 221 std::vector<Tile*> tiles = tiling->AllTilesForTesting(); |
| 223 client.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); | 222 client.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); |
| 224 } | 223 } |
| 225 | 224 |
| 226 float max_contents_scale = scale; | 225 float max_contents_scale = scale; |
| 227 gfx::Size content_bounds( | 226 gfx::Size content_bounds( |
| 228 gfx::ToCeiledSize(gfx::ScaleSize(layer_bounds, max_contents_scale))); | 227 gfx::ToCeiledSize(gfx::ScaleSize(layer_bounds, max_contents_scale))); |
| 229 gfx::Rect content_rect(content_bounds); | 228 gfx::Rect content_rect(content_bounds); |
| 230 | 229 |
| 231 Region remaining(content_rect); | 230 Region remaining(content_rect); |
| 232 PictureLayerTilingSet::CoverageIterator iter( | 231 PictureLayerTilingSet::CoverageIterator iter( |
| 233 &set, | 232 set.get(), max_contents_scale, content_rect, ideal_contents_scale); |
| 234 max_contents_scale, | |
| 235 content_rect, | |
| 236 ideal_contents_scale); | |
| 237 for (; iter; ++iter) { | 233 for (; iter; ++iter) { |
| 238 gfx::Rect geometry_rect = iter.geometry_rect(); | 234 gfx::Rect geometry_rect = iter.geometry_rect(); |
| 239 EXPECT_TRUE(content_rect.Contains(geometry_rect)); | 235 EXPECT_TRUE(content_rect.Contains(geometry_rect)); |
| 240 ASSERT_TRUE(remaining.Contains(geometry_rect)); | 236 ASSERT_TRUE(remaining.Contains(geometry_rect)); |
| 241 remaining.Subtract(geometry_rect); | 237 remaining.Subtract(geometry_rect); |
| 242 | 238 |
| 243 float scale = iter.CurrentTiling()->contents_scale(); | 239 float scale = iter.CurrentTiling()->contents_scale(); |
| 244 EXPECT_EQ(expected_scale, scale); | 240 EXPECT_EQ(expected_scale, scale); |
| 245 | 241 |
| 246 if (num_tilings) | 242 if (num_tilings) |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 class PictureLayerTilingSetSyncTest : public testing::Test { | 284 class PictureLayerTilingSetSyncTest : public testing::Test { |
| 289 public: | 285 public: |
| 290 PictureLayerTilingSetSyncTest() | 286 PictureLayerTilingSetSyncTest() |
| 291 : tile_size_(gfx::Size(10, 10)), | 287 : tile_size_(gfx::Size(10, 10)), |
| 292 source_bounds_(gfx::Size(30, 20)), | 288 source_bounds_(gfx::Size(30, 20)), |
| 293 target_bounds_(gfx::Size(30, 30)) { | 289 target_bounds_(gfx::Size(30, 30)) { |
| 294 source_client_.SetTileSize(tile_size_); | 290 source_client_.SetTileSize(tile_size_); |
| 295 source_client_.set_tree(PENDING_TREE); | 291 source_client_.set_tree(PENDING_TREE); |
| 296 target_client_.SetTileSize(tile_size_); | 292 target_client_.SetTileSize(tile_size_); |
| 297 target_client_.set_tree(PENDING_TREE); | 293 target_client_.set_tree(PENDING_TREE); |
| 298 source_.reset(new PictureLayerTilingSet(&source_client_)); | 294 source_ = PictureLayerTilingSet::Create(&source_client_, |
| 299 target_.reset(new PictureLayerTilingSet(&target_client_)); | 295 source_client_.raster_source()); |
| 296 target_ = PictureLayerTilingSet::Create(&target_client_, |
| 297 target_client_.raster_source()); |
| 300 } | 298 } |
| 301 | 299 |
| 302 // Sync from source to target. | 300 // Sync from source to target. |
| 303 void SyncTilings(const gfx::Size& new_bounds, | 301 void SyncTilings(const gfx::Size& new_bounds, |
| 304 const Region& invalidation, | 302 const Region& invalidation, |
| 305 float minimum_scale) { | 303 float minimum_scale) { |
| 306 for (size_t i = 0; i < source_->num_tilings(); ++i) | 304 for (size_t i = 0; i < source_->num_tilings(); ++i) |
| 307 source_->tiling_at(i)->CreateAllTilesForTesting(); | 305 source_->tiling_at(i)->CreateAllTilesForTesting(); |
| 308 for (size_t i = 0; i < target_->num_tilings(); ++i) | 306 for (size_t i = 0; i < target_->num_tilings(); ++i) |
| 309 target_->tiling_at(i)->CreateAllTilesForTesting(); | 307 target_->tiling_at(i)->CreateAllTilesForTesting(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 if (target_->num_tilings() > 0) { | 345 if (target_->num_tilings() > 0) { |
| 348 float last_scale = target_->tiling_at(0)->contents_scale(); | 346 float last_scale = target_->tiling_at(0)->contents_scale(); |
| 349 for (size_t i = 1; i < target_->num_tilings(); ++i) { | 347 for (size_t i = 1; i < target_->num_tilings(); ++i) { |
| 350 const PictureLayerTiling* target_tiling = target_->tiling_at(i); | 348 const PictureLayerTiling* target_tiling = target_->tiling_at(i); |
| 351 EXPECT_LT(target_tiling->contents_scale(), last_scale); | 349 EXPECT_LT(target_tiling->contents_scale(), last_scale); |
| 352 last_scale = target_tiling->contents_scale(); | 350 last_scale = target_tiling->contents_scale(); |
| 353 } | 351 } |
| 354 } | 352 } |
| 355 | 353 |
| 356 for (size_t i = 0; i < target_->num_tilings(); ++i) | 354 for (size_t i = 0; i < target_->num_tilings(); ++i) |
| 357 ValidateTiling(target_->tiling_at(i), target_client_.GetRasterSource()); | 355 ValidateTiling(target_->tiling_at(i), target_client_.raster_source()); |
| 358 } | 356 } |
| 359 | 357 |
| 360 void ValidateTiling(const PictureLayerTiling* tiling, | 358 void ValidateTiling(const PictureLayerTiling* tiling, |
| 361 const RasterSource* raster_source) { | 359 const RasterSource* raster_source) { |
| 362 if (tiling->tiling_size().IsEmpty()) { | 360 if (tiling->tiling_size().IsEmpty()) { |
| 363 EXPECT_TRUE(tiling->live_tiles_rect().IsEmpty()); | 361 EXPECT_TRUE(tiling->live_tiles_rect().IsEmpty()); |
| 364 } else if (!tiling->live_tiles_rect().IsEmpty()) { | 362 } else if (!tiling->live_tiles_rect().IsEmpty()) { |
| 365 gfx::Rect tiling_rect(tiling->tiling_size()); | 363 gfx::Rect tiling_rect(tiling->tiling_size()); |
| 366 EXPECT_TRUE(tiling_rect.Contains(tiling->live_tiles_rect())); | 364 EXPECT_TRUE(tiling_rect.Contains(tiling->live_tiles_rect())); |
| 367 } | 365 } |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 std::vector<Tile*> new_tiles = target_->tiling_at(0)->AllTilesForTesting(); | 551 std::vector<Tile*> new_tiles = target_->tiling_at(0)->AllTilesForTesting(); |
| 554 for (size_t i = 0; i < original_tiles.size(); ++i) { | 552 for (size_t i = 0; i < original_tiles.size(); ++i) { |
| 555 std::vector<Tile*>::iterator find = | 553 std::vector<Tile*>::iterator find = |
| 556 std::find(new_tiles.begin(), new_tiles.end(), original_tiles[i]); | 554 std::find(new_tiles.begin(), new_tiles.end(), original_tiles[i]); |
| 557 EXPECT_TRUE(find == new_tiles.end()); | 555 EXPECT_TRUE(find == new_tiles.end()); |
| 558 } | 556 } |
| 559 } | 557 } |
| 560 | 558 |
| 561 } // namespace | 559 } // namespace |
| 562 } // namespace cc | 560 } // namespace cc |
| OLD | NEW |