diff --git a/src/igl/tests/vulkan/TextureFormat.cpp b/src/igl/tests/vulkan/TextureFormat.cpp index 0c7a0c4406..817b4e90bd 100644 --- a/src/igl/tests/vulkan/TextureFormat.cpp +++ b/src/igl/tests/vulkan/TextureFormat.cpp @@ -9,6 +9,34 @@ #include namespace igl::vulkan::tests { +TEST(TextureFormatUtilTest, invertRedAndBlue) { + ASSERT_EQ(VK_FORMAT_B8G8R8A8_UNORM, util::invertRedAndBlue(VK_FORMAT_R8G8B8A8_UNORM)); + ASSERT_EQ(VK_FORMAT_R8G8B8A8_UNORM, util::invertRedAndBlue(VK_FORMAT_B8G8R8A8_UNORM)); + ASSERT_EQ(VK_FORMAT_R8G8B8A8_SRGB, util::invertRedAndBlue(VK_FORMAT_B8G8R8A8_SRGB)); + ASSERT_EQ(VK_FORMAT_B8G8R8A8_SRGB, util::invertRedAndBlue(VK_FORMAT_R8G8B8A8_SRGB)); + ASSERT_EQ(VK_FORMAT_A2R10G10B10_UNORM_PACK32, + util::invertRedAndBlue(VK_FORMAT_A2B10G10R10_UNORM_PACK32)); + ASSERT_EQ(VK_FORMAT_A2B10G10R10_UNORM_PACK32, + util::invertRedAndBlue(VK_FORMAT_A2R10G10B10_UNORM_PACK32)); +} + +TEST(TextureFormatUtilTest, isTextureFormatRGB) { + ASSERT_TRUE(util::isTextureFormatRGB(VK_FORMAT_R8G8B8A8_UNORM)); + ASSERT_TRUE(util::isTextureFormatRGB(VK_FORMAT_R8G8B8A8_SRGB)); + ASSERT_TRUE(util::isTextureFormatRGB(VK_FORMAT_A2R10G10B10_UNORM_PACK32)); + ASSERT_FALSE(util::isTextureFormatRGB(VK_FORMAT_B8G8R8A8_UNORM)); + ASSERT_FALSE(util::isTextureFormatRGB(VK_FORMAT_B8G8R8A8_SRGB)); + ASSERT_FALSE(util::isTextureFormatRGB(VK_FORMAT_A2B10G10R10_UNORM_PACK32)); +} + +TEST(TextureFormatUtilTest, isTextureFormatBGR) { + ASSERT_FALSE(util::isTextureFormatBGR(VK_FORMAT_R8G8B8A8_UNORM)); + ASSERT_FALSE(util::isTextureFormatBGR(VK_FORMAT_R8G8B8A8_SRGB)); + ASSERT_FALSE(util::isTextureFormatBGR(VK_FORMAT_A2R10G10B10_UNORM_PACK32)); + ASSERT_TRUE(util::isTextureFormatBGR(VK_FORMAT_B8G8R8A8_UNORM)); + ASSERT_TRUE(util::isTextureFormatBGR(VK_FORMAT_B8G8R8A8_SRGB)); + ASSERT_TRUE(util::isTextureFormatBGR(VK_FORMAT_A2B10G10R10_UNORM_PACK32)); +} TEST(TextureFormatUtilTest, vkTextureFormatToTextureFormat) { ASSERT_EQ(util::vkTextureFormatToTextureFormat(VK_FORMAT_UNDEFINED), igl::TextureFormat::Invalid);