From 680e7ee4eb25dc474245eb932664e39a3ddbd67d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 25 Jan 2025 14:16:26 +0100 Subject: [PATCH] Test: verify that storage skip can be set for placeholder Image too. --- src/Magnum/Test/ImageTest.cpp | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Magnum/Test/ImageTest.cpp b/src/Magnum/Test/ImageTest.cpp index f7eb0a9f8..0de7bd4e2 100644 --- a/src/Magnum/Test/ImageTest.cpp +++ b/src/Magnum/Test/ImageTest.cpp @@ -222,10 +222,15 @@ void ImageTest::constructGenericPlaceholder() { CORRADE_COMPARE(a.size(), Vector2i{}); CORRADE_COMPARE(a.data(), static_cast(nullptr)); } { - Image2D a{PixelStorage{}.setAlignment(1), + Image2D a{ + PixelStorage{} + /* Even with skip it shouldn't assert on data size */ + .setSkip({1, 0, 0}) + .setAlignment(1), PixelFormat::RGB16F}; CORRADE_COMPARE(a.flags(), ImageFlags2D{}); + CORRADE_COMPARE(a.storage().skip(), (Vector3i{1, 0, 0})); CORRADE_COMPARE(a.storage().alignment(), 1); CORRADE_COMPARE(a.format(), PixelFormat::RGB16F); CORRADE_COMPARE(a.formatExtra(), 0); @@ -320,10 +325,15 @@ void ImageTest::constructImplementationSpecificPlaceholder() { CORRADE_COMPARE(a.size(), Vector2i{}); CORRADE_COMPARE(a.data(), static_cast(nullptr)); } { - Image2D a{PixelStorage{}.setAlignment(1), + Image2D a{ + PixelStorage{} + /* Even with skip it shouldn't assert on data size */ + .setSkip({1, 0, 0}) + .setAlignment(1), Vk::PixelFormat::R32G32B32F}; CORRADE_COMPARE(a.flags(), ImageFlags2D{}); + CORRADE_COMPARE(a.storage().skip(), (Vector3i{1, 0, 0})); CORRADE_COMPARE(a.storage().alignment(), 1); CORRADE_COMPARE(a.format(), pixelFormatWrap(Vk::PixelFormat::R32G32B32F)); CORRADE_COMPARE(a.formatExtra(), 0); @@ -344,10 +354,16 @@ void ImageTest::constructImplementationSpecificPlaceholder() { CORRADE_COMPARE(a.size(), Vector2i{}); CORRADE_COMPARE(a.data(), static_cast(nullptr)); } { - Image2D a{PixelStorage{}.setAlignment(1), + Image2D a{ + PixelStorage{} + /* Even with skip it shouldn't assert on data size */ + .setSkip({1, 0, 0}) + .setAlignment(1), GL::PixelFormat::RGB, GL::PixelType::UnsignedShort}; CORRADE_COMPARE(a.flags(), ImageFlags2D{}); + CORRADE_COMPARE(a.storage().skip(), (Vector3i{1, 0, 0})); + CORRADE_COMPARE(a.storage().alignment(), 1); CORRADE_COMPARE(a.format(), pixelFormatWrap(GL::PixelFormat::RGB)); CORRADE_COMPARE(a.formatExtra(), UnsignedInt(GL::PixelType::UnsignedShort)); CORRADE_COMPARE(a.pixelSize(), 6); @@ -357,9 +373,13 @@ void ImageTest::constructImplementationSpecificPlaceholder() { /* Manual pixel size */ { - Image2D a{PixelStorage{}.setAlignment(1), 666, 1337, 6}; + Image2D a{PixelStorage{} + /* Even with skip it shouldn't assert on data size */ + .setSkip({1, 0, 0}) + .setAlignment(1), 666, 1337, 6}; CORRADE_COMPARE(a.flags(), ImageFlags2D{}); + CORRADE_COMPARE(a.storage().skip(), (Vector3i{1, 0, 0})); CORRADE_COMPARE(a.storage().alignment(), 1); CORRADE_COMPARE(a.format(), pixelFormatWrap(GL::PixelFormat::RGB)); CORRADE_COMPARE(a.formatExtra(), UnsignedInt(GL::PixelType::UnsignedShort)); @@ -406,9 +426,14 @@ void ImageTest::constructCompressedGenericPlaceholder() { CORRADE_COMPARE(a.size(), Vector2i{}); CORRADE_COMPARE(a.data(), static_cast(nullptr)); } { - CompressedImage2D a{CompressedPixelStorage{}.setCompressedBlockSize(Vector3i{4})}; + CompressedImage2D a{ + CompressedPixelStorage{} + /* Even with skip it shouldn't assert on data size */ + .setSkip({1, 0, 0}) + .setCompressedBlockSize(Vector3i{4})}; CORRADE_COMPARE(a.flags(), ImageFlags2D{}); + CORRADE_COMPARE(a.storage().skip(), (Vector3i{1, 0, 0})); CORRADE_COMPARE(a.storage().compressedBlockSize(), Vector3i{4}); CORRADE_COMPARE(a.format(), CompressedPixelFormat{}); CORRADE_COMPARE(a.size(), Vector2i{});