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 02124e1af85c47a46ee4701d7f7a44956db041de..92df822acd3b2aeef2a406b0d02abacd3ad705af 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; |
} |
@@ -70,15 +71,16 @@ class DiscardableImageMapTest : public testing::Test { |
image_map.images_rtree_.Search(rect, &indices); |
std::vector<PositionScaleDrawImage> position_draw_images; |
for (size_t index : indices) { |
- 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; |
@@ -112,11 +114,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), |
@@ -145,7 +148,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; |
} |
@@ -161,22 +164,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) { |
@@ -196,11 +199,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], |
@@ -229,7 +233,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; |
} |
@@ -245,24 +249,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 |
@@ -289,8 +293,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())); |
} |
} |
@@ -309,11 +313,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), |
@@ -342,7 +347,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; |
} |
@@ -355,8 +360,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); |
@@ -375,7 +380,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) { |
@@ -383,7 +388,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; |
@@ -411,7 +416,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; |
@@ -438,8 +443,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); |
@@ -458,7 +463,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) { |
@@ -473,8 +478,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); |
@@ -514,7 +519,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) { |
@@ -522,10 +527,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), |
@@ -563,10 +568,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) { |
@@ -620,7 +625,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]); |
@@ -637,21 +642,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; |
@@ -675,22 +680,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); |
@@ -711,13 +708,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 |