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 |