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

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

Issue 2710153004: cc: Fix up code to work with concrete cc paint types (Closed)
Patch Set: Rebase Created 3 years, 10 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
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/playback/display_item_list_unittest.cc » ('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
(...skipping 64 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 flags;
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 flags);
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);
96 96
97 DiscardableImageMap image_map; 97 DiscardableImageMap image_map;
98 { 98 {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 // |---|---|---|---| 162 // |---|---|---|---|
163 // | | x | | x | 163 // | | x | | x |
164 // |---|---|---|---| 164 // |---|---|---|---|
165 // | x | | x | | 165 // | x | | x | |
166 // |---|---|---|---| 166 // |---|---|---|---|
167 sk_sp<SkImage> discardable_image[4][4]; 167 sk_sp<SkImage> discardable_image[4][4];
168 for (int y = 0; y < 4; ++y) { 168 for (int y = 0; y < 4; ++y) {
169 for (int x = 0; x < 4; ++x) { 169 for (int x = 0; x < 4; ++x) {
170 if ((x + y) & 1) { 170 if ((x + y) & 1) {
171 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 171 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
172 SkPaint paint; 172 PaintFlags flags;
173 content_layer_client.add_draw_image( 173 content_layer_client.add_draw_image(
174 discardable_image[y][x], 174 discardable_image[y][x],
175 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), paint); 175 gfx::Point(1024 + x * 512 + 6, y * 512 + 6), flags);
176 } 176 }
177 } 177 }
178 } 178 }
179 179
180 scoped_refptr<DisplayItemList> display_list = 180 scoped_refptr<DisplayItemList> display_list =
181 content_layer_client.PaintContentsToDisplayList( 181 content_layer_client.PaintContentsToDisplayList(
182 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 182 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
183 183
184 DiscardableImageMap image_map; 184 DiscardableImageMap image_map;
185 { 185 {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // |---|---|---|---| 278 // |---|---|---|---|
279 // | | x | | x | 279 // | | x | | x |
280 // |---|---|---|---| 280 // |---|---|---|---|
281 // | x | | x | | 281 // | x | | x | |
282 // |---|---|---|---| 282 // |---|---|---|---|
283 sk_sp<SkImage> discardable_image[4][4]; 283 sk_sp<SkImage> discardable_image[4][4];
284 for (int y = 0; y < 4; ++y) { 284 for (int y = 0; y < 4; ++y) {
285 for (int x = 0; x < 4; ++x) { 285 for (int x = 0; x < 4; ++x) {
286 if ((x + y) & 1) { 286 if ((x + y) & 1) {
287 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 287 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
288 SkPaint paint; 288 PaintFlags flags;
289 content_layer_client.add_draw_image( 289 content_layer_client.add_draw_image(
290 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6), 290 discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
291 paint); 291 flags);
292 } 292 }
293 } 293 }
294 } 294 }
295 295
296 scoped_refptr<DisplayItemList> display_list = 296 scoped_refptr<DisplayItemList> display_list =
297 content_layer_client.PaintContentsToDisplayList( 297 content_layer_client.PaintContentsToDisplayList(
298 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 298 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
299 299
300 DiscardableImageMap image_map; 300 DiscardableImageMap image_map;
301 { 301 {
(...skipping 21 matching lines...) Expand all
323 } 323 }
324 } 324 }
325 325
326 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) { 326 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) {
327 gfx::Rect visible_rect(2048, 2048); 327 gfx::Rect visible_rect(2048, 2048);
328 FakeContentLayerClient content_layer_client; 328 FakeContentLayerClient content_layer_client;
329 content_layer_client.set_bounds(visible_rect.size()); 329 content_layer_client.set_bounds(visible_rect.size());
330 330
331 sk_sp<SkImage> discardable_image = 331 sk_sp<SkImage> discardable_image =
332 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25)); 332 CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25));
333 SkPaint paint; 333 PaintFlags flags;
334 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 334 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
335 paint); 335 flags);
336 336
337 scoped_refptr<DisplayItemList> display_list = 337 scoped_refptr<DisplayItemList> display_list =
338 content_layer_client.PaintContentsToDisplayList( 338 content_layer_client.PaintContentsToDisplayList(
339 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 339 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
340 340
341 DiscardableImageMap image_map; 341 DiscardableImageMap image_map;
342 { 342 {
343 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 343 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
344 visible_rect.size()); 344 visible_rect.size());
345 display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); 345 display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 } 380 }
381 381
382 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) { 382 TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) {
383 gfx::Rect visible_rect(2048, 2048); 383 gfx::Rect visible_rect(2048, 2048);
384 FakeContentLayerClient content_layer_client; 384 FakeContentLayerClient content_layer_client;
385 content_layer_client.set_bounds(visible_rect.size()); 385 content_layer_client.set_bounds(visible_rect.size());
386 386
387 int dimension = std::numeric_limits<int>::max(); 387 int dimension = std::numeric_limits<int>::max();
388 sk_sp<SkImage> discardable_image = 388 sk_sp<SkImage> discardable_image =
389 CreateDiscardableImage(gfx::Size(dimension, dimension)); 389 CreateDiscardableImage(gfx::Size(dimension, dimension));
390 SkPaint paint; 390 PaintFlags flags;
391 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42), 391 content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42),
392 paint); 392 flags);
393 393
394 scoped_refptr<DisplayItemList> display_list = 394 scoped_refptr<DisplayItemList> display_list =
395 content_layer_client.PaintContentsToDisplayList( 395 content_layer_client.PaintContentsToDisplayList(
396 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 396 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
397 397
398 DiscardableImageMap image_map; 398 DiscardableImageMap image_map;
399 { 399 {
400 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 400 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
401 visible_rect.size()); 401 visible_rect.size());
402 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); 402 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f);
(...skipping 14 matching lines...) Expand all
417 // some draw calls, so we subtract 64 since we only care about "really large" 417 // some draw calls, so we subtract 64 since we only care about "really large"
418 // values, not necessarily max int values. 418 // values, not necessarily max int values.
419 int dimension = static_cast<int>( 419 int dimension = static_cast<int>(
420 static_cast<float>(std::numeric_limits<int>::max() - 64)); 420 static_cast<float>(std::numeric_limits<int>::max() - 64));
421 gfx::Rect visible_rect(dimension, dimension); 421 gfx::Rect visible_rect(dimension, dimension);
422 FakeContentLayerClient content_layer_client; 422 FakeContentLayerClient content_layer_client;
423 content_layer_client.set_bounds(visible_rect.size()); 423 content_layer_client.set_bounds(visible_rect.size());
424 424
425 sk_sp<SkImage> discardable_image = 425 sk_sp<SkImage> discardable_image =
426 CreateDiscardableImage(gfx::Size(dimension, dimension)); 426 CreateDiscardableImage(gfx::Size(dimension, dimension));
427 SkPaint paint; 427 PaintFlags flags;
428 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0), 428 content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
429 paint); 429 flags);
430 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0), 430 content_layer_client.add_draw_image(discardable_image, gfx::Point(10000, 0),
431 paint); 431 flags);
432 content_layer_client.add_draw_image(discardable_image, 432 content_layer_client.add_draw_image(discardable_image,
433 gfx::Point(-10000, 500), paint); 433 gfx::Point(-10000, 500), flags);
434 434
435 scoped_refptr<DisplayItemList> display_list = 435 scoped_refptr<DisplayItemList> display_list =
436 content_layer_client.PaintContentsToDisplayList( 436 content_layer_client.PaintContentsToDisplayList(
437 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 437 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
438 438
439 DiscardableImageMap image_map; 439 DiscardableImageMap image_map;
440 { 440 {
441 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 441 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
442 visible_rect.size()); 442 visible_rect.size());
443 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); 443 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f);
(...skipping 27 matching lines...) Expand all
471 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) { 471 TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
472 gfx::Rect visible_rect(1000, 1000); 472 gfx::Rect visible_rect(1000, 1000);
473 FakeContentLayerClient content_layer_client; 473 FakeContentLayerClient content_layer_client;
474 content_layer_client.set_bounds(visible_rect.size()); 474 content_layer_client.set_bounds(visible_rect.size());
475 475
476 sk_sp<SkImage> discardable_image = 476 sk_sp<SkImage> discardable_image =
477 CreateDiscardableImage(gfx::Size(100, 100)); 477 CreateDiscardableImage(gfx::Size(100, 100));
478 sk_sp<SkImage> long_discardable_image = 478 sk_sp<SkImage> long_discardable_image =
479 CreateDiscardableImage(gfx::Size(10000, 100)); 479 CreateDiscardableImage(gfx::Size(10000, 100));
480 480
481 SkPaint paint; 481 PaintFlags flags;
482 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11), 482 content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11),
483 paint); 483 flags);
484 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951), 484 content_layer_client.add_draw_image(discardable_image, gfx::Point(950, 951),
485 paint); 485 flags);
486 content_layer_client.add_draw_image(long_discardable_image, 486 content_layer_client.add_draw_image(long_discardable_image,
487 gfx::Point(-100, 500), paint); 487 gfx::Point(-100, 500), flags);
488 488
489 scoped_refptr<DisplayItemList> display_list = 489 scoped_refptr<DisplayItemList> display_list =
490 content_layer_client.PaintContentsToDisplayList( 490 content_layer_client.PaintContentsToDisplayList(
491 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 491 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
492 492
493 DiscardableImageMap image_map; 493 DiscardableImageMap image_map;
494 { 494 {
495 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, 495 DiscardableImageMap::ScopedMetadataGenerator generator(&image_map,
496 visible_rect.size()); 496 visible_rect.size());
497 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); 497 display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 // Skia doesn't allow shader instantiation with non-invertible local 539 // Skia doesn't allow shader instantiation with non-invertible local
540 // transforms, so we can't let the scale drop all the way to 0. 540 // transforms, so we can't let the scale drop all the way to 0.
541 static constexpr float kMinScale = 0.1f; 541 static constexpr float kMinScale = 0.1f;
542 542
543 for (int y = 0; y < 4; ++y) { 543 for (int y = 0; y < 4; ++y) {
544 for (int x = 0; x < 4; ++x) { 544 for (int x = 0; x < 4; ++x) {
545 if ((x + y) & 1) { 545 if ((x + y) & 1) {
546 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500)); 546 discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
547 SkMatrix scale = SkMatrix::MakeScale(std::max(x * 0.5f, kMinScale), 547 SkMatrix scale = SkMatrix::MakeScale(std::max(x * 0.5f, kMinScale),
548 std::max(y * 0.5f, kMinScale)); 548 std::max(y * 0.5f, kMinScale));
549 SkPaint paint; 549 PaintFlags flags;
550 paint.setShader(discardable_image[y][x]->makeShader( 550 flags.setShader(discardable_image[y][x]->makeShader(
551 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, &scale)); 551 SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, &scale));
552 content_layer_client.add_draw_rect( 552 content_layer_client.add_draw_rect(
553 gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500), paint); 553 gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500), flags);
554 } 554 }
555 } 555 }
556 } 556 }
557 557
558 scoped_refptr<DisplayItemList> display_list = 558 scoped_refptr<DisplayItemList> display_list =
559 content_layer_client.PaintContentsToDisplayList( 559 content_layer_client.PaintContentsToDisplayList(
560 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); 560 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
561 561
562 DiscardableImageMap image_map; 562 DiscardableImageMap image_map;
563 { 563 {
(...skipping 30 matching lines...) Expand all
594 EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), images[1].image_rect); 594 EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), images[1].image_rect);
595 EXPECT_TRUE(images[2].image == discardable_image[2][3]); 595 EXPECT_TRUE(images[2].image == discardable_image[2][3]);
596 EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500), 596 EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500),
597 images[2].image_rect); 597 images[2].image_rect);
598 EXPECT_TRUE(images[3].image == discardable_image[3][2]); 598 EXPECT_TRUE(images[3].image == discardable_image[3][2]);
599 EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500), 599 EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500),
600 images[3].image_rect); 600 images[3].image_rect);
601 } 601 }
602 602
603 } // namespace cc 603 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/playback/display_item_list_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698