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

Unified Diff: cc/paint/discardable_image_map_unittest.cc

Issue 2857923004: cc: Keep PaintImage in DrawImage. (Closed)
Patch Set: .. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/paint/discardable_image_map.cc ('k') | cc/paint/discardable_image_store.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/paint/discardable_image_map_unittest.cc
diff --git a/cc/paint/discardable_image_map_unittest.cc b/cc/paint/discardable_image_map_unittest.cc
index abc4f916df3b9aa461e81011451f977cddd13e6e..5457d581eebc39500dafeb540972d5880c698b94 100644
--- a/cc/paint/discardable_image_map_unittest.cc
+++ b/cc/paint/discardable_image_map_unittest.cc
@@ -29,25 +29,26 @@
namespace cc {
namespace {
+PaintImage CreateDiscardablePaintImage(const gfx::Size& size) {
+ return PaintImage(PaintImage::GetNextId(), CreateDiscardableImage(size));
+}
+
struct PositionScaleDrawImage {
- PositionScaleDrawImage(sk_sp<const SkImage> image,
+ PositionScaleDrawImage(const PaintImage& image,
const gfx::Rect& image_rect,
const SkSize& scale)
- : image(std::move(image)), image_rect(image_rect), scale(scale) {}
- sk_sp<const SkImage> image;
+ : image(image), image_rect(image_rect), scale(scale) {}
+ PaintImage image;
gfx::Rect image_rect;
SkSize scale;
};
-sk_sp<PaintRecord> CreateRecording(const sk_sp<SkImage>& discardable_image,
+sk_sp<PaintRecord> CreateRecording(const PaintImage& discardable_image,
const gfx::Rect& visible_rect) {
PaintRecorder recorder;
PaintCanvas* canvas =
recorder.beginRecording(visible_rect.width(), visible_rect.height());
- canvas->drawImage(PaintImage(PaintImage::GetNextId(), discardable_image,
- PaintImage::AnimationType::STATIC,
- PaintImage::CompletionState::DONE),
- 0, 0, nullptr);
+ canvas->drawImage(discardable_image, 0, 0, nullptr);
sk_sp<PaintRecord> record = recorder.finishRecordingAsPicture();
return record;
}
@@ -68,15 +69,16 @@ class DiscardableImageMapTest : public testing::Test {
std::vector<PositionScaleDrawImage> position_draw_images;
for (size_t index : image_map.images_rtree_.Search(rect)) {
- position_draw_images.push_back(
- PositionScaleDrawImage(image_map.all_images_[index].first.image(),
- image_map.all_images_[index].second,
- image_map.all_images_[index].first.scale()));
+ position_draw_images.push_back(PositionScaleDrawImage(
+ image_map.all_images_[index].first.paint_image(),
+ image_map.all_images_[index].second,
+ image_map.all_images_[index].first.scale()));
}
EXPECT_EQ(draw_images.size(), position_draw_images.size());
for (size_t i = 0; i < draw_images.size(); ++i) {
- EXPECT_TRUE(draw_images[i].image() == position_draw_images[i].image);
+ EXPECT_TRUE(draw_images[i].paint_image() ==
+ position_draw_images[i].image);
EXPECT_EQ(draw_images[i].target_color_space(), target_color_space);
}
return position_draw_images;
@@ -110,11 +112,12 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectTest) {
// |---|---|---|---|
// | x | | x | |
// |---|---|---|---|
- sk_sp<SkImage> discardable_image[4][4];
+ PaintImage discardable_image[4][4];
for (int y = 0; y < 4; ++y) {
for (int x = 0; x < 4; ++x) {
if ((x + y) & 1) {
- discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
+ discardable_image[y][x] =
+ CreateDiscardablePaintImage(gfx::Size(500, 500));
PaintFlags flags;
content_layer_client.add_draw_image(
discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
@@ -143,7 +146,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectTest) {
EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
} else {
EXPECT_EQ(0u, images.size()) << x << " " << y;
}
@@ -159,22 +162,22 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectTest) {
EXPECT_TRUE(images[0].image == discardable_image[1][2]);
EXPECT_EQ(gfx::Rect(2 * 512 + 6, 512 + 6, 500, 500), inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
EXPECT_TRUE(images[1].image == discardable_image[2][1]);
EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), inset_rects[1]);
EXPECT_EQ(images[1].image_rect,
- image_map.GetRectForImage(images[1].image->uniqueID()));
+ image_map.GetRectForImage(images[1].image.stable_id()));
EXPECT_TRUE(images[2].image == discardable_image[2][3]);
EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500), inset_rects[2]);
EXPECT_EQ(images[2].image_rect,
- image_map.GetRectForImage(images[2].image->uniqueID()));
+ image_map.GetRectForImage(images[2].image.stable_id()));
EXPECT_TRUE(images[3].image == discardable_image[3][2]);
EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500), inset_rects[3]);
EXPECT_EQ(images[3].image_rect,
- image_map.GetRectForImage(images[3].image->uniqueID()));
+ image_map.GetRectForImage(images[3].image.stable_id()));
}
TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectNonZeroLayer) {
@@ -194,11 +197,12 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectNonZeroLayer) {
// |---|---|---|---|
// | x | | x | |
// |---|---|---|---|
- sk_sp<SkImage> discardable_image[4][4];
+ PaintImage discardable_image[4][4];
for (int y = 0; y < 4; ++y) {
for (int x = 0; x < 4; ++x) {
if ((x + y) & 1) {
- discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
+ discardable_image[y][x] =
+ CreateDiscardablePaintImage(gfx::Size(500, 500));
PaintFlags flags;
content_layer_client.add_draw_image(
discardable_image[y][x],
@@ -227,7 +231,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectNonZeroLayer) {
EXPECT_EQ(gfx::Rect(1024 + x * 512 + 6, y * 512 + 6, 500, 500),
inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
} else {
EXPECT_EQ(0u, images.size()) << x << " " << y;
}
@@ -243,24 +247,24 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectNonZeroLayer) {
EXPECT_TRUE(images[0].image == discardable_image[1][2]);
EXPECT_EQ(gfx::Rect(1024 + 2 * 512 + 6, 512 + 6, 500, 500), inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
EXPECT_TRUE(images[1].image == discardable_image[2][1]);
EXPECT_EQ(gfx::Rect(1024 + 512 + 6, 2 * 512 + 6, 500, 500), inset_rects[1]);
EXPECT_EQ(images[1].image_rect,
- image_map.GetRectForImage(images[1].image->uniqueID()));
+ image_map.GetRectForImage(images[1].image.stable_id()));
EXPECT_TRUE(images[2].image == discardable_image[2][3]);
EXPECT_EQ(gfx::Rect(1024 + 3 * 512 + 6, 2 * 512 + 6, 500, 500),
inset_rects[2]);
EXPECT_EQ(images[2].image_rect,
- image_map.GetRectForImage(images[2].image->uniqueID()));
+ image_map.GetRectForImage(images[2].image.stable_id()));
EXPECT_TRUE(images[3].image == discardable_image[3][2]);
EXPECT_EQ(gfx::Rect(1024 + 2 * 512 + 6, 3 * 512 + 6, 500, 500),
inset_rects[3]);
EXPECT_EQ(images[3].image_rect,
- image_map.GetRectForImage(images[3].image->uniqueID()));
+ image_map.GetRectForImage(images[3].image.stable_id()));
}
// Non intersecting rects
@@ -287,8 +291,8 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectNonZeroLayer) {
// Image not present in the list.
{
- sk_sp<SkImage> image = CreateDiscardableImage(gfx::Size(500, 500));
- EXPECT_EQ(gfx::Rect(), image_map.GetRectForImage(image->uniqueID()));
+ PaintImage image = CreateDiscardablePaintImage(gfx::Size(500, 500));
+ EXPECT_EQ(gfx::Rect(), image_map.GetRectForImage(image.stable_id()));
}
}
@@ -307,11 +311,12 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectOnePixelQuery) {
// |---|---|---|---|
// | x | | x | |
// |---|---|---|---|
- sk_sp<SkImage> discardable_image[4][4];
+ PaintImage discardable_image[4][4];
for (int y = 0; y < 4; ++y) {
for (int x = 0; x < 4; ++x) {
if ((x + y) & 1) {
- discardable_image[y][x] = CreateDiscardableImage(gfx::Size(500, 500));
+ discardable_image[y][x] =
+ CreateDiscardablePaintImage(gfx::Size(500, 500));
PaintFlags flags;
content_layer_client.add_draw_image(
discardable_image[y][x], gfx::Point(x * 512 + 6, y * 512 + 6),
@@ -340,7 +345,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectOnePixelQuery) {
EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
} else {
EXPECT_EQ(0u, images.size()) << x << " " << y;
}
@@ -353,8 +358,8 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) {
FakeContentLayerClient content_layer_client;
content_layer_client.set_bounds(visible_rect.size());
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(1 << 25, 1 << 25));
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(1 << 25, 1 << 25));
PaintFlags flags;
content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
flags);
@@ -373,7 +378,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMassiveImage) {
EXPECT_TRUE(images[0].image == discardable_image);
EXPECT_EQ(gfx::Rect(0, 0, 2048, 2048), inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
}
TEST_F(DiscardableImageMapTest, PaintDestroyedWhileImageIsDrawn) {
@@ -381,7 +386,7 @@ TEST_F(DiscardableImageMapTest, PaintDestroyedWhileImageIsDrawn) {
FakeContentLayerClient content_layer_client;
content_layer_client.set_bounds(visible_rect.size());
- sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10));
+ PaintImage discardable_image = CreateDiscardablePaintImage(gfx::Size(10, 10));
sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect);
DiscardableImageMap image_map;
@@ -409,7 +414,7 @@ TEST_F(DiscardableImageMapTest, NullPaintOnSaveLayer) {
FakeContentLayerClient content_layer_client;
content_layer_client.set_bounds(visible_rect.size());
- sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10));
+ PaintImage discardable_image = CreateDiscardablePaintImage(gfx::Size(10, 10));
sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect);
DiscardableImageMap image_map;
@@ -436,8 +441,8 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) {
content_layer_client.set_bounds(visible_rect.size());
int dimension = std::numeric_limits<int>::max();
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(dimension, dimension));
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(dimension, dimension));
PaintFlags flags;
content_layer_client.add_draw_image(discardable_image, gfx::Point(42, 42),
flags);
@@ -456,7 +461,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImage) {
EXPECT_TRUE(images[0].image == discardable_image);
EXPECT_EQ(gfx::Rect(42, 42, 2006, 2006), inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(images[0].image->uniqueID()));
+ image_map.GetRectForImage(images[0].image.stable_id()));
}
TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImageMaxLayer) {
@@ -471,8 +476,8 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImageMaxLayer) {
FakeContentLayerClient content_layer_client;
content_layer_client.set_bounds(visible_rect.size());
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(dimension, dimension));
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(dimension, dimension));
PaintFlags flags;
content_layer_client.add_draw_image(discardable_image, gfx::Point(0, 0),
flags);
@@ -512,7 +517,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInRectMaxImageMaxLayer) {
EXPECT_EQ(gfx::Rect(0, 0, dimension, dimension), inset_rects[0]);
EXPECT_EQ(images[0].image_rect,
- image_map.GetRectForImage(discardable_image->uniqueID()));
+ image_map.GetRectForImage(discardable_image.stable_id()));
}
TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
@@ -520,10 +525,10 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
FakeContentLayerClient content_layer_client;
content_layer_client.set_bounds(visible_rect.size());
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(100, 100));
- sk_sp<SkImage> long_discardable_image =
- CreateDiscardableImage(gfx::Size(10000, 100));
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(100, 100));
+ PaintImage long_discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(10000, 100));
PaintFlags flags;
content_layer_client.add_draw_image(discardable_image, gfx::Point(-10, -11),
@@ -561,10 +566,10 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesRectInBounds) {
discardable_image_rect.Union(gfx::Rect(950, 951, 50, 49));
discardable_image_rect.Inset(-1, -1, -1, -1);
EXPECT_EQ(discardable_image_rect,
- image_map.GetRectForImage(discardable_image->uniqueID()));
+ image_map.GetRectForImage(discardable_image.stable_id()));
EXPECT_EQ(gfx::Rect(-1, 499, 1002, 102),
- image_map.GetRectForImage(long_discardable_image->uniqueID()));
+ image_map.GetRectForImage(long_discardable_image.stable_id()));
}
TEST_F(DiscardableImageMapTest, GetDiscardableImagesInShader) {
@@ -618,7 +623,7 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInShader) {
std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
if ((x + y) & 1) {
EXPECT_EQ(1u, images.size()) << x << " " << y;
- EXPECT_TRUE(images[0].image == discardable_image[y][x])
+ EXPECT_TRUE(images[0].image.sk_image() == discardable_image[y][x])
<< x << " " << y;
EXPECT_EQ(gfx::Rect(x * 512 + 6, y * 512 + 6, 500, 500),
inset_rects[0]);
@@ -635,21 +640,21 @@ TEST_F(DiscardableImageMapTest, GetDiscardableImagesInShader) {
GetDiscardableImagesInRect(image_map, gfx::Rect(512, 512, 2048, 2048));
std::vector<gfx::Rect> inset_rects = InsetImageRects(images);
EXPECT_EQ(4u, images.size());
- EXPECT_TRUE(images[0].image == discardable_image[1][2]);
+ EXPECT_TRUE(images[0].image.sk_image() == discardable_image[1][2]);
EXPECT_EQ(gfx::Rect(2 * 512 + 6, 512 + 6, 500, 500), inset_rects[0]);
- EXPECT_TRUE(images[1].image == discardable_image[2][1]);
+ EXPECT_TRUE(images[1].image.sk_image() == discardable_image[2][1]);
EXPECT_EQ(gfx::Rect(512 + 6, 2 * 512 + 6, 500, 500), inset_rects[1]);
- EXPECT_TRUE(images[2].image == discardable_image[2][3]);
+ EXPECT_TRUE(images[2].image.sk_image() == discardable_image[2][3]);
EXPECT_EQ(gfx::Rect(3 * 512 + 6, 2 * 512 + 6, 500, 500), inset_rects[2]);
- EXPECT_TRUE(images[3].image == discardable_image[3][2]);
+ EXPECT_TRUE(images[3].image.sk_image() == discardable_image[3][2]);
EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500), inset_rects[3]);
}
TEST_F(DiscardableImageMapTest, ClipsImageRects) {
gfx::Rect visible_rect(500, 500);
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(500, 500));
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(500, 500));
sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect);
scoped_refptr<DisplayItemList> display_list = new DisplayItemList;
@@ -673,22 +678,14 @@ TEST_F(DiscardableImageMapTest, ClipsImageRects) {
TEST_F(DiscardableImageMapTest, GathersDiscardableImagesFromNestedOps) {
sk_sp<PaintRecord> internal_record = sk_make_sp<PaintRecord>();
- sk_sp<SkImage> discardable_image =
- CreateDiscardableImage(gfx::Size(100, 100));
- internal_record->push<DrawImageOp>(
- PaintImage(PaintImage::GetNextId(), discardable_image,
- PaintImage::AnimationType::STATIC,
- PaintImage::CompletionState::DONE),
- 0.f, 0.f, nullptr);
+ PaintImage discardable_image =
+ CreateDiscardablePaintImage(gfx::Size(100, 100));
+ internal_record->push<DrawImageOp>(discardable_image, 0.f, 0.f, nullptr);
sk_sp<PaintRecord> list_record = sk_make_sp<PaintRecord>();
- sk_sp<SkImage> discardable_image2 =
- CreateDiscardableImage(gfx::Size(100, 100));
- list_record->push<DrawImageOp>(
- PaintImage(PaintImage::GetNextId(), discardable_image2,
- PaintImage::AnimationType::STATIC,
- PaintImage::CompletionState::DONE),
- 100.f, 100.f, nullptr);
+ PaintImage discardable_image2 =
+ CreateDiscardablePaintImage(gfx::Size(100, 100));
+ list_record->push<DrawImageOp>(discardable_image2, 100.f, 100.f, nullptr);
scoped_refptr<DisplayItemList> display_list = new DisplayItemList;
display_list->CreateAndAppendDrawingItem<DrawingDisplayItem>(
gfx::Rect(100, 100, 100, 100), list_record);
@@ -709,13 +706,13 @@ TEST_F(DiscardableImageMapTest, GathersDiscardableImagesFromNestedOps) {
image_map_.GetDiscardableImagesInRect(gfx::Rect(0, 0, 5, 95), 1.f,
target_color_space, &images);
EXPECT_EQ(1u, images.size());
- EXPECT_TRUE(discardable_image == images[0].image());
+ EXPECT_TRUE(discardable_image == images[0].paint_image());
images.clear();
image_map_.GetDiscardableImagesInRect(gfx::Rect(105, 105, 5, 95), 1.f,
target_color_space, &images);
EXPECT_EQ(1u, images.size());
- EXPECT_TRUE(discardable_image2 == images[0].image());
+ EXPECT_TRUE(discardable_image2 == images[0].paint_image());
}
} // namespace cc
« no previous file with comments | « cc/paint/discardable_image_map.cc ('k') | cc/paint/discardable_image_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698