| 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
|
|
|