Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: cc/playback/discardable_image_map_unittest.cc

Issue 2523673004: [NOT FOR COMMIT] Fully replace SkCanvas uses.
Patch Set: Support Android build. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/playback/discardable_image_map.cc ('k') | cc/playback/display_item.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "cc/playback/discardable_image_map.h" 5 #include "cc/playback/discardable_image_map.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "cc/base/region.h" 13 #include "cc/base/region.h"
14 #include "cc/test/fake_content_layer_client.h" 14 #include "cc/test/fake_content_layer_client.h"
15 #include "cc/test/fake_recording_source.h" 15 #include "cc/test/fake_recording_source.h"
16 #include "cc/test/skia_common.h" 16 #include "cc/test/skia_common.h"
17 #include "skia/ext/cdl_paint.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 #include "third_party/skia/include/core/SkCanvas.h" 19 #include "third_party/skia/include/core/SkCanvas.h"
19 #include "third_party/skia/include/core/SkGraphics.h" 20 #include "third_party/skia/include/core/SkGraphics.h"
20 #include "third_party/skia/include/core/SkImageGenerator.h" 21 #include "third_party/skia/include/core/SkImageGenerator.h"
21 #include "third_party/skia/include/core/SkRefCnt.h" 22 #include "third_party/skia/include/core/SkRefCnt.h"
22 #include "ui/gfx/geometry/rect.h" 23 #include "ui/gfx/geometry/rect.h"
23 #include "ui/gfx/skia_util.h" 24 #include "ui/gfx/skia_util.h"
24 25
25 namespace cc { 26 namespace cc {
26 namespace { 27 namespace {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // |---|---|---|---| 73 // |---|---|---|---|
73 // | | x | | x | 74 // | | x | | x |
74 // |---|---|---|---| 75 // |---|---|---|---|
75 // | x | | x | | 76 // | x | | x | |
76 // |---|---|---|---| 77 // |---|---|---|---|
77 sk_sp<SkImage> discardable_image[4][4]; 78 sk_sp<SkImage> discardable_image[4][4];
78 for (int y = 0; y < 4; ++y) { 79 for (int y = 0; y < 4; ++y) {
79 for (int x = 0; x < 4; ++x) { 80 for (int x = 0; x < 4; ++x) {
80 if ((x + y) & 1) { 81 if ((x + y) & 1) {
81 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 82 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
82 SkPaint paint; 83 CdlPaint paint;
83 content_layer_client.add_draw_image( 84 content_layer_client.add_draw_image(
84 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6), 85 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
85 paint); 86 paint);
86 } 87 }
87 } 88 }
88 } 89 }
89 90
90 scoped_refptr<DisplayItemList> display_list = 91 scoped_refptr<DisplayItemList> display_list =
91 content_layer_client.PaintContentsToDisplayList( 92 content_layer_client.PaintContentsToDisplayList(
92 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 93 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // |---|---|---|---| 146 // |---|---|---|---|
146 // | | x | | x | 147 // | | x | | x |
147 // |---|---|---|---| 148 // |---|---|---|---|
148 // | x | | x | | 149 // | x | | x | |
149 // |---|---|---|---| 150 // |---|---|---|---|
150 sk_sp<SkImage> discardable_image[4][4]; 151 sk_sp<SkImage> discardable_image[4][4];
151 for (int y = 0; y < 4; ++y) { 152 for (int y = 0; y < 4; ++y) {
152 for (int x = 0; x < 4; ++x) { 153 for (int x = 0; x < 4; ++x) {
153 if ((x + y) & 1) { 154 if ((x + y) & 1) {
154 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 155 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
155 SkPaint paint; 156 CdlPaint paint;
156 content_layer_client.add_draw_image( 157 content_layer_client.add_draw_image(
157 discardable_image[y][x], 158 discardable_image[y][x],
158 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint); 159 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint);
159 } 160 }
160 } 161 }
161 } 162 }
162 163
163 scoped_refptr<DisplayItemList> display_list = 164 scoped_refptr<DisplayItemList> display_list =
164 content_layer_client.PaintContentsToDisplayList( 165 content_layer_client.PaintContentsToDisplayList(
165 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 166 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 // |---|---|---|---| 242 // |---|---|---|---|
242 // | | x | | x | 243 // | | x | | x |
243 // |---|---|---|---| 244 // |---|---|---|---|
244 // | x | | x | | 245 // | x | | x | |
245 // |---|---|---|---| 246 // |---|---|---|---|
246 sk_sp<SkImage> discardable_image[4][4]; 247 sk_sp<SkImage> discardable_image[4][4];
247 for (int y = 0; y < 4; ++y) { 248 for (int y = 0; y < 4; ++y) {
248 for (int x = 0; x < 4; ++x) { 249 for (int x = 0; x < 4; ++x) {
249 if ((x + y) & 1) { 250 if ((x + y) & 1) {
250 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 251 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
251 SkPaint paint; 252 CdlPaint paint;
252 content_layer_client.add_draw_image( 253 content_layer_client.add_draw_image(
253 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6), 254 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
254 paint); 255 paint);
255 } 256 }
256 } 257 }
257 } 258 }
258 259
259 scoped_refptr<DisplayItemList> display_list = 260 scoped_refptr<DisplayItemList> display_list =
260 content_layer_client.PaintContentsToDisplayList( 261 content_layer_client.PaintContentsToDisplayList(
261 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 262 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 22 matching lines...) Expand all
284 } 285 }
285 } 286 }
286 287
287 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) { 288 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) {
288 gfx::Rect visible_rect(2048, 2048); 289 gfx::Rect visible_rect(2048, 2048);
289 FakeContentLayerClient content_layer_client; 290 FakeContentLayerClient content_layer_client;
290 content_layer_client.set_bounds(visible_rect.size()); 291 content_layer_client.set_bounds(visible_rect.size());
291 292
292 sk_sp<SkImage> discardable_image = 293 sk_sp<SkImage> discardable_image =
293 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25)); 294 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25));
294 SkPaint paint; 295 CdlPaint paint;
295 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 296 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
296 paint); 297 paint);
297 298
298 scoped_refptr<DisplayItemList> display_list = 299 scoped_refptr<DisplayItemList> display_list =
299 content_layer_client.PaintContentsToDisplayList( 300 content_layer_client.PaintContentsToDisplayList(
300 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 301 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
301 302
302 DiscardableImageMap image_map; 303 DiscardableImageMap image_map;
303 { 304 {
304 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 305 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
(...skipping 12 matching lines...) Expand all
317 FakeContentLayerClient content_layer_client; 318 FakeContentLayerClient content_layer_client;
318 content_layer_client.set_bounds(visible_rect.size()); 319 content_layer_client.set_bounds(visible_rect.size());
319 320
320 sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10)); 321 sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10));
321 322
322 DiscardableImageMap image_map; 323 DiscardableImageMap image_map;
323 { 324 {
324 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 325 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
325 visible_rect.size()); 326 visible_rect.size());
326 { 327 {
327 std::unique_ptr<SkPaint> paint(new SkPaint()); 328 std::unique_ptr<CdlPaint> paint(new CdlPaint());
328 generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect), 329 generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect),
329 paint.get()); 330 paint.get());
330 } 331 }
331 generator.canvas()->drawImage(discardable_image, 0, 0, nullptr); 332 generator.canvas()->drawImage(discardable_image, 0, 0, nullptr);
332 generator.canvas()->restore(); 333 generator.canvas()->restore();
333 } 334 }
334 335
335 std::vector<PositionDrawImage> images = 336 std::vector<PositionDrawImage> images =
336 GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1)); 337 GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1));
337 EXPECT_EQ(1u, images.size()); 338 EXPECT_EQ(1u, images.size());
338 EXPECT_TRUE(images[0].image == discardable_image); 339 EXPECT_TRUE(images[0].image == discardable_image);
339 } 340 }
340 341
341 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) { 342 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) {
342 gfx::Rect visible_rect(2048, 2048); 343 gfx::Rect visible_rect(2048, 2048);
343 FakeContentLayerClient content_layer_client; 344 FakeContentLayerClient content_layer_client;
344 content_layer_client.set_bounds(visible_rect.size()); 345 content_layer_client.set_bounds(visible_rect.size());
345 346
346 int dimension = std::numeric_limits<int>::max(); 347 int dimension = std::numeric_limits<int>::max();
347 sk_sp<SkImage> discardable_image = 348 sk_sp<SkImage> discardable_image =
348 CreateDiscardableImage(gfx::Size(dimension, dimension)); 349 CreateDiscardableImage(gfx::Size(dimension, dimension));
349 SkPaint paint; 350 CdlPaint paint;
350 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42), 351 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42),
351 paint); 352 paint);
352 353
353 scoped_refptr<DisplayItemList> display_list = 354 scoped_refptr<DisplayItemList> display_list =
354 content_layer_client.PaintContentsToDisplayList( 355 content_layer_client.PaintContentsToDisplayList(
355 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 356 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
356 357
357 DiscardableImageMap image_map; 358 DiscardableImageMap image_map;
358 { 359 {
359 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 360 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
(...skipping 14 matching lines...) Expand all
374 // some draw calls, so we subtract 64 since we only care about "really large" 375 // some draw calls, so we subtract 64 since we only care about "really large"
375 // values, not necessarily max int values. 376 // values, not necessarily max int values.
376 int dimension = static_cast<int>( 377 int dimension = static_cast<int>(
377 static_cast<float>(std::numeric_limits<int>::max() - 64)); 378 static_cast<float>(std::numeric_limits<int>::max() - 64));
378 gfx::Rect visible_rect(dimension, dimension); 379 gfx::Rect visible_rect(dimension, dimension);
379 FakeContentLayerClient content_layer_client; 380 FakeContentLayerClient content_layer_client;
380 content_layer_client.set_bounds(visible_rect.size()); 381 content_layer_client.set_bounds(visible_rect.size());
381 382
382 sk_sp<SkImage> discardable_image = 383 sk_sp<SkImage> discardable_image =
383 CreateDiscardableImage(gfx::Size(dimension, dimension)); 384 CreateDiscardableImage(gfx::Size(dimension, dimension));
384 SkPaint paint; 385 CdlPaint paint;
385 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 386 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
386 paint); 387 paint);
387 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0), 388 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0),
388 paint); 389 paint);
389 content_layer_client.add_draw_image(discardable_image, 390 content_layer_client.add_draw_image(discardable_image,
390 gfx::Point(-10000, 500), paint); 391 gfx::Point(-10000, 500), paint);
391 392
392 scoped_refptr<DisplayItemList> display_list = 393 scoped_refptr<DisplayItemList> display_list =
393 content_layer_client.PaintContentsToDisplayList( 394 content_layer_client.PaintContentsToDisplayList(
394 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 395 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 30 matching lines...) Expand all
425 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) { 426 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
426 gfx::Rect visible_rect(1000, 1000); 427 gfx::Rect visible_rect(1000, 1000);
427 FakeContentLayerClient content_layer_client; 428 FakeContentLayerClient content_layer_client;
428 content_layer_client.set_bounds(visible_rect.size()); 429 content_layer_client.set_bounds(visible_rect.size());
429 430
430 sk_sp<SkImage> discardable_image = 431 sk_sp<SkImage> discardable_image =
431 CreateDiscardableImage(gfx::Size(100, 100)); 432 CreateDiscardableImage(gfx::Size(100, 100));
432 sk_sp<SkImage> long_discardable_image = 433 sk_sp<SkImage> long_discardable_image =
433 CreateDiscardableImage(gfx::Size(10000, 100)); 434 CreateDiscardableImage(gfx::Size(10000, 100));
434 435
435 SkPaint paint; 436 CdlPaint paint;
436 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11), 437 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11),
437 paint); 438 paint);
438 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951), 439 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951),
439 paint); 440 paint);
440 content_layer_client.add_draw_image(long_discardable_image, 441 content_layer_client.add_draw_image(long_discardable_image,
441 gfx::Point(-100, 500), paint); 442 gfx::Point(-100, 500), paint);
442 443
443 scoped_refptr<DisplayItemList> display_list = 444 scoped_refptr<DisplayItemList> display_list =
444 content_layer_client.PaintContentsToDisplayList( 445 content_layer_client.PaintContentsToDisplayList(
445 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 446 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 12 matching lines...) Expand all
458 images = GetDiscardableImagesInRect(image_map, gfx::Rect(999, 999, 1, 1)); 459 images = GetDiscardableImagesInRect(image_map, gfx::Rect(999, 999, 1, 1));
459 EXPECT_EQ(1u, images.size()); 460 EXPECT_EQ(1u, images.size());
460 EXPECT_EQ(gfx::Rect(950, 951, 50, 49), images[0].image_rect); 461 EXPECT_EQ(gfx::Rect(950, 951, 50, 49), images[0].image_rect);
461 462
462 images = GetDiscardableImagesInRect(image_map, gfx::Rect(0, 500, 1, 1)); 463 images = GetDiscardableImagesInRect(image_map, gfx::Rect(0, 500, 1, 1));
463 EXPECT_EQ(1u, images.size()); 464 EXPECT_EQ(1u, images.size());
464 EXPECT_EQ(gfx::Rect(0, 500, 1000, 100), images[0].image_rect); 465 EXPECT_EQ(gfx::Rect(0, 500, 1000, 100), images[0].image_rect);
465 } 466 }
466 467
467 } // namespace cc 468 } // namespace cc
OLDNEW
« no previous file with comments | « cc/playback/discardable_image_map.cc ('k') | cc/playback/display_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698