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

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

Issue 2640983002: Rename paint data structures (Closed)
Patch Set: Re-add ios changes Created 3 years, 11 months 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
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/paint/paint_canvas.h"
14 #include "cc/test/fake_content_layer_client.h" 15 #include "cc/test/fake_content_layer_client.h"
15 #include "cc/test/fake_recording_source.h" 16 #include "cc/test/fake_recording_source.h"
16 #include "cc/test/skia_common.h" 17 #include "cc/test/skia_common.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/SkGraphics.h" 19 #include "third_party/skia/include/core/SkGraphics.h"
20 #include "third_party/skia/include/core/SkImageGenerator.h" 20 #include "third_party/skia/include/core/SkImageGenerator.h"
21 #include "third_party/skia/include/core/SkRefCnt.h" 21 #include "third_party/skia/include/core/SkRefCnt.h"
22 #include "ui/gfx/geometry/rect.h" 22 #include "ui/gfx/geometry/rect.h"
23 #include "ui/gfx/skia_util.h" 23 #include "ui/gfx/skia_util.h"
24 24
25 namespace cc { 25 namespace cc {
26 namespace { 26 namespace {
27 27
28 struct PositionScaleDrawImage { 28 struct PositionScaleDrawImage {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 // |---|---|---|---| 75 // |---|---|---|---|
76 // | | x | | x | 76 // | | x | | x |
77 // |---|---|---|---| 77 // |---|---|---|---|
78 // | x | | x | | 78 // | x | | x | |
79 // |---|---|---|---| 79 // |---|---|---|---|
80 sk_sp<SkImage> discardable_image[4][4]; 80 sk_sp<SkImage> discardable_image[4][4];
81 for (int y = 0; y < 4; ++y) { 81 for (int y = 0; y < 4; ++y) {
82 for (int x = 0; x < 4; ++x) { 82 for (int x = 0; x < 4; ++x) {
83 if ((x + y) & 1) { 83 if ((x + y) & 1) {
84 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 84 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
85 SkPaint paint; 85 PaintFlags paint;
86 content_layer_client.add_draw_image( 86 content_layer_client.add_draw_image(
87 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6), 87 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
88 paint); 88 paint);
89 } 89 }
90 } 90 }
91 } 91 }
92 92
93 scoped_refptr<DisplayItemList> display_list = 93 scoped_refptr<DisplayItemList> display_list =
94 content_layer_client.PaintContentsToDisplayList( 94 content_layer_client.PaintContentsToDisplayList(
95 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 95 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 // |---|---|---|---| 148 // |---|---|---|---|
149 // | | x | | x | 149 // | | x | | x |
150 // |---|---|---|---| 150 // |---|---|---|---|
151 // | x | | x | | 151 // | x | | x | |
152 // |---|---|---|---| 152 // |---|---|---|---|
153 sk_sp<SkImage> discardable_image[4][4]; 153 sk_sp<SkImage> discardable_image[4][4];
154 for (int y = 0; y < 4; ++y) { 154 for (int y = 0; y < 4; ++y) {
155 for (int x = 0; x < 4; ++x) { 155 for (int x = 0; x < 4; ++x) {
156 if ((x + y) & 1) { 156 if ((x + y) & 1) {
157 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 157 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
158 SkPaint paint; 158 PaintFlags paint;
159 content_layer_client.add_draw_image( 159 content_layer_client.add_draw_image(
160 discardable_image[y][x], 160 discardable_image[y][x],
161 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint); 161 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint);
162 } 162 }
163 } 163 }
164 } 164 }
165 165
166 scoped_refptr<DisplayItemList> display_list = 166 scoped_refptr<DisplayItemList> display_list =
167 content_layer_client.PaintContentsToDisplayList( 167 content_layer_client.PaintContentsToDisplayList(
168 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 168 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 // |---|---|---|---| 244 // |---|---|---|---|
245 // | | x | | x | 245 // | | x | | x |
246 // |---|---|---|---| 246 // |---|---|---|---|
247 // | x | | x | | 247 // | x | | x | |
248 // |---|---|---|---| 248 // |---|---|---|---|
249 sk_sp<SkImage> discardable_image[4][4]; 249 sk_sp<SkImage> discardable_image[4][4];
250 for (int y = 0; y < 4; ++y) { 250 for (int y = 0; y < 4; ++y) {
251 for (int x = 0; x < 4; ++x) { 251 for (int x = 0; x < 4; ++x) {
252 if ((x + y) & 1) { 252 if ((x + y) & 1) {
253 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 253 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
254 SkPaint paint; 254 PaintFlags paint;
255 content_layer_client.add_draw_image( 255 content_layer_client.add_draw_image(
256 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6), 256 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
257 paint); 257 paint);
258 } 258 }
259 } 259 }
260 } 260 }
261 261
262 scoped_refptr<DisplayItemList> display_list = 262 scoped_refptr<DisplayItemList> display_list =
263 content_layer_client.PaintContentsToDisplayList( 263 content_layer_client.PaintContentsToDisplayList(
264 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 264 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 22 matching lines...) Expand all
287 } 287 }
288 } 288 }
289 289
290 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) { 290 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) {
291 gfx::Rect visible_rect(2048, 2048); 291 gfx::Rect visible_rect(2048, 2048);
292 FakeContentLayerClient content_layer_client; 292 FakeContentLayerClient content_layer_client;
293 content_layer_client.set_bounds(visible_rect.size()); 293 content_layer_client.set_bounds(visible_rect.size());
294 294
295 sk_sp<SkImage> discardable_image = 295 sk_sp<SkImage> discardable_image =
296 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25)); 296 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25));
297 SkPaint paint; 297 PaintFlags paint;
298 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 298 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
299 paint); 299 paint);
300 300
301 scoped_refptr<DisplayItemList> display_list = 301 scoped_refptr<DisplayItemList> display_list =
302 content_layer_client.PaintContentsToDisplayList( 302 content_layer_client.PaintContentsToDisplayList(
303 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 303 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
304 304
305 DiscardableImageMap image_map; 305 DiscardableImageMap image_map;
306 { 306 {
307 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 307 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
(...skipping 12 matching lines...) Expand all
320 FakeContentLayerClient content_layer_client; 320 FakeContentLayerClient content_layer_client;
321 content_layer_client.set_bounds(visible_rect.size()); 321 content_layer_client.set_bounds(visible_rect.size());
322 322
323 sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10)); 323 sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10));
324 324
325 DiscardableImageMap image_map; 325 DiscardableImageMap image_map;
326 { 326 {
327 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 327 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
328 visible_rect.size()); 328 visible_rect.size());
329 { 329 {
330 std::unique_ptr<SkPaint> paint(new SkPaint()); 330 std::unique_ptr<PaintFlags> paint(new PaintFlags());
331 generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect), 331 generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect),
332 paint.get()); 332 paint.get());
333 } 333 }
334 generator.canvas()->drawImage(discardable_image, 0, 0, nullptr); 334 generator.canvas()->drawImage(discardable_image, 0, 0, nullptr);
335 generator.canvas()->restore(); 335 generator.canvas()->restore();
336 } 336 }
337 337
338 std::vector<PositionScaleDrawImage> images = 338 std::vector<PositionScaleDrawImage> images =
339 GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1)); 339 GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1));
340 EXPECT_EQ(1u, images.size()); 340 EXPECT_EQ(1u, images.size());
341 EXPECT_TRUE(images[0].image == discardable_image); 341 EXPECT_TRUE(images[0].image == discardable_image);
342 } 342 }
343 343
344 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) { 344 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) {
345 gfx::Rect visible_rect(2048, 2048); 345 gfx::Rect visible_rect(2048, 2048);
346 FakeContentLayerClient content_layer_client; 346 FakeContentLayerClient content_layer_client;
347 content_layer_client.set_bounds(visible_rect.size()); 347 content_layer_client.set_bounds(visible_rect.size());
348 348
349 int dimension = std::numeric_limits<int>::max(); 349 int dimension = std::numeric_limits<int>::max();
350 sk_sp<SkImage> discardable_image = 350 sk_sp<SkImage> discardable_image =
351 CreateDiscardableImage(gfx::Size(dimension, dimension)); 351 CreateDiscardableImage(gfx::Size(dimension, dimension));
352 SkPaint paint; 352 PaintFlags paint;
353 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42), 353 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42),
354 paint); 354 paint);
355 355
356 scoped_refptr<DisplayItemList> display_list = 356 scoped_refptr<DisplayItemList> display_list =
357 content_layer_client.PaintContentsToDisplayList( 357 content_layer_client.PaintContentsToDisplayList(
358 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 358 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
359 359
360 DiscardableImageMap image_map; 360 DiscardableImageMap image_map;
361 { 361 {
362 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 362 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
(...skipping 14 matching lines...) Expand all
377 // some draw calls, so we subtract 64 since we only care about "really large" 377 // some draw calls, so we subtract 64 since we only care about "really large"
378 // values, not necessarily max int values. 378 // values, not necessarily max int values.
379 int dimension = static_cast<int>( 379 int dimension = static_cast<int>(
380 static_cast<float>(std::numeric_limits<int>::max() - 64)); 380 static_cast<float>(std::numeric_limits<int>::max() - 64));
381 gfx::Rect visible_rect(dimension, dimension); 381 gfx::Rect visible_rect(dimension, dimension);
382 FakeContentLayerClient content_layer_client; 382 FakeContentLayerClient content_layer_client;
383 content_layer_client.set_bounds(visible_rect.size()); 383 content_layer_client.set_bounds(visible_rect.size());
384 384
385 sk_sp<SkImage> discardable_image = 385 sk_sp<SkImage> discardable_image =
386 CreateDiscardableImage(gfx::Size(dimension, dimension)); 386 CreateDiscardableImage(gfx::Size(dimension, dimension));
387 SkPaint paint; 387 PaintFlags paint;
388 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 388 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
389 paint); 389 paint);
390 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0), 390 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0),
391 paint); 391 paint);
392 content_layer_client.add_draw_image(discardable_image, 392 content_layer_client.add_draw_image(discardable_image,
393 gfx::Point(-10000, 500), paint); 393 gfx::Point(-10000, 500), paint);
394 394
395 scoped_refptr<DisplayItemList> display_list = 395 scoped_refptr<DisplayItemList> display_list =
396 content_layer_client.PaintContentsToDisplayList( 396 content_layer_client.PaintContentsToDisplayList(
397 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 397 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 30 matching lines...) Expand all
428 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) { 428 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
429 gfx::Rect visible_rect(1000, 1000); 429 gfx::Rect visible_rect(1000, 1000);
430 FakeContentLayerClient content_layer_client; 430 FakeContentLayerClient content_layer_client;
431 content_layer_client.set_bounds(visible_rect.size()); 431 content_layer_client.set_bounds(visible_rect.size());
432 432
433 sk_sp<SkImage> discardable_image = 433 sk_sp<SkImage> discardable_image =
434 CreateDiscardableImage(gfx::Size(100, 100)); 434 CreateDiscardableImage(gfx::Size(100, 100));
435 sk_sp<SkImage> long_discardable_image = 435 sk_sp<SkImage> long_discardable_image =
436 CreateDiscardableImage(gfx::Size(10000, 100)); 436 CreateDiscardableImage(gfx::Size(10000, 100));
437 437
438 SkPaint paint; 438 PaintFlags paint;
439 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11), 439 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11),
440 paint); 440 paint);
441 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951), 441 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951),
442 paint); 442 paint);
443 content_layer_client.add_draw_image(long_discardable_image, 443 content_layer_client.add_draw_image(long_discardable_image,
444 gfx::Point(-100, 500), paint); 444 gfx::Point(-100, 500), paint);
445 445
446 scoped_refptr<DisplayItemList> display_list = 446 scoped_refptr<DisplayItemList> display_list =
447 content_layer_client.PaintContentsToDisplayList( 447 content_layer_client.PaintContentsToDisplayList(
448 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 448 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 // | | x | | x | 481 // | | x | | x |
482 // |---|---|---|---| 482 // |---|---|---|---|
483 // | x | | x | | 483 // | x | | x | |
484 // |---|---|---|---| 484 // |---|---|---|---|
485 sk_sp<SkImage> discardable_image[4][4]; 485 sk_sp<SkImage> discardable_image[4][4];
486 for (int y = 0; y < 4; ++y) { 486 for (int y = 0; y < 4; ++y) {
487 for (int x = 0; x < 4; ++x) { 487 for (int x = 0; x < 4; ++x) {
488 if ((x + y) & 1) { 488 if ((x + y) & 1) {
489 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 489 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
490 SkMatrix scale = SkMatrix::MakeScale(x * 0.5f, y * 0.5f); 490 SkMatrix scale = SkMatrix::MakeScale(x * 0.5f, y * 0.5f);
491 SkPaint paint; 491 PaintFlags paint;
492 paint.setShader(discardable_image[y][x]->makeShader( 492 paint.setShader(discardable_image[y][x]->makeShader(
493 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, &scale)); 493 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, &scale));
494 content_layer_client.add_draw_rect( 494 content_layer_client.add_draw_rect(
495 gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500), paint); 495 gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500), paint);
496 } 496 }
497 } 497 }
498 } 498 }
499 499
500 scoped_refptr<DisplayItemList> display_list = 500 scoped_refptr<DisplayItemList> display_list =
501 content_layer_client.PaintContentsToDisplayList( 501 content_layer_client.PaintContentsToDisplayList(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), images[1].image_rect); 536 EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), images[1].image_rect);
537 EXPECT_TRUE(images[2].image == discardable_image[2][3]); 537 EXPECT_TRUE(images[2].image == discardable_image[2][3]);
538 EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500), 538 EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500),
539 images[2].image_rect); 539 images[2].image_rect);
540 EXPECT_TRUE(images[3].image == discardable_image[3][2]); 540 EXPECT_TRUE(images[3].image == discardable_image[3][2]);
541 EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500), 541 EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500),
542 images[3].image_rect); 542 images[3].image_rect);
543 } 543 }
544 544
545 } // namespace cc 545 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698