| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "cc/base/region.h" | 8 #include "cc/base/region.h" |
| 9 #include "cc/raster/raster_source.h" | 9 #include "cc/raster/raster_source.h" |
| 10 #include "cc/test/fake_content_layer_client.h" | 10 #include "cc/test/fake_content_layer_client.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 translate_transform.TransformRect(&translate_rect); | 61 translate_transform.TransformRect(&translate_rect); |
| 62 gfx::RectF rotate_rect = rect; | 62 gfx::RectF rotate_rect = rect; |
| 63 rotate_transform.TransformRect(&rotate_rect); | 63 rotate_transform.TransformRect(&rotate_rect); |
| 64 | 64 |
| 65 recording_source->add_draw_image_with_transform(discardable_image[0][0], | 65 recording_source->add_draw_image_with_transform(discardable_image[0][0], |
| 66 identity_transform); | 66 identity_transform); |
| 67 recording_source->add_draw_image_with_transform(discardable_image[1][0], | 67 recording_source->add_draw_image_with_transform(discardable_image[1][0], |
| 68 translate_transform); | 68 translate_transform); |
| 69 recording_source->add_draw_image_with_transform(discardable_image[1][1], | 69 recording_source->add_draw_image_with_transform(discardable_image[1][1], |
| 70 rotate_transform); | 70 rotate_transform); |
| 71 recording_source->SetGenerateDiscardableImagesMetadata(true); | |
| 72 recording_source->Rerecord(); | 71 recording_source->Rerecord(); |
| 73 | 72 |
| 74 bool can_use_lcd_text = true; | 73 bool can_use_lcd_text = true; |
| 75 scoped_refptr<RasterSource> raster_source = | 74 scoped_refptr<RasterSource> raster_source = |
| 76 RasterSource::CreateFromRecordingSource(recording_source.get(), | 75 RasterSource::CreateFromRecordingSource(recording_source.get(), |
| 77 can_use_lcd_text); | 76 can_use_lcd_text); |
| 78 | 77 |
| 79 // Tile sized iterators. These should find only one pixel ref. | 78 // Tile sized iterators. These should find only one pixel ref. |
| 80 { | 79 { |
| 81 std::vector<DrawImage> images; | 80 std::vector<DrawImage> images; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 for (float scale = 1.f; scale <= 5.f; scale += 0.5f) { | 119 for (float scale = 1.f; scale <= 5.f; scale += 0.5f) { |
| 121 std::vector<DrawImage> images; | 120 std::vector<DrawImage> images; |
| 122 raster_source->GetDiscardableImagesInRect( | 121 raster_source->GetDiscardableImagesInRect( |
| 123 gfx::Rect(130, 0, 128, 128), scale, DefaultColorSpace(), &images); | 122 gfx::Rect(130, 0, 128, 128), scale, DefaultColorSpace(), &images); |
| 124 EXPECT_EQ(1u, images.size()); | 123 EXPECT_EQ(1u, images.size()); |
| 125 EXPECT_FLOAT_EQ(scale, images[0].scale().width()); | 124 EXPECT_FLOAT_EQ(scale, images[0].scale().width()); |
| 126 EXPECT_FLOAT_EQ(scale, images[0].scale().height()); | 125 EXPECT_FLOAT_EQ(scale, images[0].scale().height()); |
| 127 } | 126 } |
| 128 } | 127 } |
| 129 | 128 |
| 130 TEST(RecordingSourceTest, NoGatherImageEmptyImages) { | |
| 131 gfx::Rect recorded_viewport(0, 0, 256, 256); | |
| 132 | |
| 133 std::unique_ptr<FakeRecordingSource> recording_source = | |
| 134 CreateRecordingSource(recorded_viewport); | |
| 135 recording_source->SetGenerateDiscardableImagesMetadata(false); | |
| 136 recording_source->Rerecord(); | |
| 137 | |
| 138 scoped_refptr<RasterSource> raster_source = | |
| 139 CreateRasterSource(recording_source.get()); | |
| 140 | |
| 141 // If recording source do not gather images, raster source is not going to | |
| 142 // get images. | |
| 143 { | |
| 144 std::vector<DrawImage> images; | |
| 145 raster_source->GetDiscardableImagesInRect(recorded_viewport, 1.f, | |
| 146 DefaultColorSpace(), &images); | |
| 147 EXPECT_TRUE(images.empty()); | |
| 148 } | |
| 149 } | |
| 150 | |
| 151 TEST(RecordingSourceTest, EmptyImages) { | 129 TEST(RecordingSourceTest, EmptyImages) { |
| 152 gfx::Rect recorded_viewport(0, 0, 256, 256); | 130 gfx::Rect recorded_viewport(0, 0, 256, 256); |
| 153 | 131 |
| 154 std::unique_ptr<FakeRecordingSource> recording_source = | 132 std::unique_ptr<FakeRecordingSource> recording_source = |
| 155 CreateRecordingSource(recorded_viewport); | 133 CreateRecordingSource(recorded_viewport); |
| 156 recording_source->SetGenerateDiscardableImagesMetadata(true); | |
| 157 recording_source->Rerecord(); | 134 recording_source->Rerecord(); |
| 158 | 135 |
| 159 scoped_refptr<RasterSource> raster_source = | 136 scoped_refptr<RasterSource> raster_source = |
| 160 CreateRasterSource(recording_source.get()); | 137 CreateRasterSource(recording_source.get()); |
| 161 | 138 |
| 162 // Tile sized iterators. | 139 // Tile sized iterators. |
| 163 { | 140 { |
| 164 std::vector<DrawImage> images; | 141 std::vector<DrawImage> images; |
| 165 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, | 142 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, |
| 166 DefaultColorSpace(), &images); | 143 DefaultColorSpace(), &images); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 simple_flags); | 178 simple_flags); |
| 202 recording_source->add_draw_rect_with_flags(gfx::Rect(128, 128, 512, 512), | 179 recording_source->add_draw_rect_with_flags(gfx::Rect(128, 128, 512, 512), |
| 203 simple_flags); | 180 simple_flags); |
| 204 recording_source->add_draw_rect_with_flags(gfx::Rect(512, 0, 256, 256), | 181 recording_source->add_draw_rect_with_flags(gfx::Rect(512, 0, 256, 256), |
| 205 simple_flags); | 182 simple_flags); |
| 206 recording_source->add_draw_rect_with_flags(gfx::Rect(0, 512, 256, 256), | 183 recording_source->add_draw_rect_with_flags(gfx::Rect(0, 512, 256, 256), |
| 207 simple_flags); | 184 simple_flags); |
| 208 recording_source->add_draw_image(non_discardable_image, gfx::Point(128, 0)); | 185 recording_source->add_draw_image(non_discardable_image, gfx::Point(128, 0)); |
| 209 recording_source->add_draw_image(non_discardable_image, gfx::Point(0, 128)); | 186 recording_source->add_draw_image(non_discardable_image, gfx::Point(0, 128)); |
| 210 recording_source->add_draw_image(non_discardable_image, gfx::Point(150, 150)); | 187 recording_source->add_draw_image(non_discardable_image, gfx::Point(150, 150)); |
| 211 recording_source->SetGenerateDiscardableImagesMetadata(true); | |
| 212 recording_source->Rerecord(); | 188 recording_source->Rerecord(); |
| 213 | 189 |
| 214 scoped_refptr<RasterSource> raster_source = | 190 scoped_refptr<RasterSource> raster_source = |
| 215 CreateRasterSource(recording_source.get()); | 191 CreateRasterSource(recording_source.get()); |
| 216 | 192 |
| 217 // Tile sized iterators. | 193 // Tile sized iterators. |
| 218 { | 194 { |
| 219 std::vector<DrawImage> images; | 195 std::vector<DrawImage> images; |
| 220 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, | 196 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, |
| 221 DefaultColorSpace(), &images); | 197 DefaultColorSpace(), &images); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 251 // Discardable images are found in the following cells: | 227 // Discardable images are found in the following cells: |
| 252 // |---|---| | 228 // |---|---| |
| 253 // | x | | | 229 // | x | | |
| 254 // |---|---| | 230 // |---|---| |
| 255 // | x | x | | 231 // | x | x | |
| 256 // |---|---| | 232 // |---|---| |
| 257 recording_source->add_draw_image(discardable_image[0][0], gfx::Point(0, 0)); | 233 recording_source->add_draw_image(discardable_image[0][0], gfx::Point(0, 0)); |
| 258 recording_source->add_draw_image(discardable_image[1][0], gfx::Point(0, 130)); | 234 recording_source->add_draw_image(discardable_image[1][0], gfx::Point(0, 130)); |
| 259 recording_source->add_draw_image(discardable_image[1][1], | 235 recording_source->add_draw_image(discardable_image[1][1], |
| 260 gfx::Point(140, 140)); | 236 gfx::Point(140, 140)); |
| 261 recording_source->SetGenerateDiscardableImagesMetadata(true); | |
| 262 recording_source->Rerecord(); | 237 recording_source->Rerecord(); |
| 263 | 238 |
| 264 scoped_refptr<RasterSource> raster_source = | 239 scoped_refptr<RasterSource> raster_source = |
| 265 CreateRasterSource(recording_source.get()); | 240 CreateRasterSource(recording_source.get()); |
| 266 | 241 |
| 267 // Tile sized iterators. These should find only one image. | 242 // Tile sized iterators. These should find only one image. |
| 268 { | 243 { |
| 269 std::vector<DrawImage> images; | 244 std::vector<DrawImage> images; |
| 270 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, | 245 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 128, 128), 1.f, |
| 271 DefaultColorSpace(), &images); | 246 DefaultColorSpace(), &images); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 // |---|---| | 299 // |---|---| |
| 325 // | x | x | | 300 // | x | x | |
| 326 // |---|---| | 301 // |---|---| |
| 327 // | | x | | 302 // | | x | |
| 328 // |---|---| | 303 // |---|---| |
| 329 recording_source->add_draw_image(non_discardable_image, gfx::Point(0, 0)); | 304 recording_source->add_draw_image(non_discardable_image, gfx::Point(0, 0)); |
| 330 recording_source->add_draw_image(discardable_image[0][0], gfx::Point(0, 0)); | 305 recording_source->add_draw_image(discardable_image[0][0], gfx::Point(0, 0)); |
| 331 recording_source->add_draw_image(discardable_image[0][1], gfx::Point(260, 0)); | 306 recording_source->add_draw_image(discardable_image[0][1], gfx::Point(260, 0)); |
| 332 recording_source->add_draw_image(discardable_image[1][1], | 307 recording_source->add_draw_image(discardable_image[1][1], |
| 333 gfx::Point(260, 260)); | 308 gfx::Point(260, 260)); |
| 334 recording_source->SetGenerateDiscardableImagesMetadata(true); | |
| 335 recording_source->Rerecord(); | 309 recording_source->Rerecord(); |
| 336 | 310 |
| 337 scoped_refptr<RasterSource> raster_source = | 311 scoped_refptr<RasterSource> raster_source = |
| 338 CreateRasterSource(recording_source.get()); | 312 CreateRasterSource(recording_source.get()); |
| 339 | 313 |
| 340 // Tile sized iterators. These should find only one image. | 314 // Tile sized iterators. These should find only one image. |
| 341 { | 315 { |
| 342 std::vector<DrawImage> images; | 316 std::vector<DrawImage> images; |
| 343 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 256, 256), 1.f, | 317 raster_source->GetDiscardableImagesInRect(gfx::Rect(0, 0, 256, 256), 1.f, |
| 344 DefaultColorSpace(), &images); | 318 DefaultColorSpace(), &images); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 367 DefaultColorSpace(), &images); | 341 DefaultColorSpace(), &images); |
| 368 EXPECT_EQ(3u, images.size()); | 342 EXPECT_EQ(3u, images.size()); |
| 369 EXPECT_TRUE(images[0].image() == discardable_image[0][0]); | 343 EXPECT_TRUE(images[0].image() == discardable_image[0][0]); |
| 370 EXPECT_TRUE(images[1].image() == discardable_image[0][1]); | 344 EXPECT_TRUE(images[1].image() == discardable_image[0][1]); |
| 371 EXPECT_TRUE(images[2].image() == discardable_image[1][1]); | 345 EXPECT_TRUE(images[2].image() == discardable_image[1][1]); |
| 372 } | 346 } |
| 373 } | 347 } |
| 374 | 348 |
| 375 } // namespace | 349 } // namespace |
| 376 } // namespace cc | 350 } // namespace cc |
| OLD | NEW |