[core] leave Image objects in a valid state after premultiply/unpremultiply
This commit is contained in:
@@ -9,6 +9,7 @@ PremultipliedImage premultiply(UnassociatedImage&& src) {
|
||||
PremultipliedImage dst;
|
||||
|
||||
dst.size = src.size;
|
||||
src.size = { 0, 0 };
|
||||
dst.data = std::move(src.data);
|
||||
|
||||
uint8_t* data = dst.data.get();
|
||||
@@ -29,6 +30,7 @@ UnassociatedImage unpremultiply(PremultipliedImage&& src) {
|
||||
UnassociatedImage dst;
|
||||
|
||||
dst.size = src.size;
|
||||
src.size = { 0, 0 };
|
||||
dst.data = std::move(src.data);
|
||||
|
||||
uint8_t* data = dst.data.get();
|
||||
|
||||
@@ -142,4 +142,8 @@ TEST(Image, Premultiply) {
|
||||
EXPECT_EQ(127, image.data[1]);
|
||||
EXPECT_EQ(127, image.data[2]);
|
||||
EXPECT_EQ(128, image.data[3]);
|
||||
EXPECT_EQ(1u, image.size.width);
|
||||
EXPECT_EQ(1u, image.size.height);
|
||||
EXPECT_EQ(0u, rgba.size.width);
|
||||
EXPECT_EQ(0u, rgba.size.height);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user