Skip to content

Commit e9730d5

Browse files
Graphics Accessories: added TypelessFormatToSRGB function
1 parent a5bef68 commit e9730d5

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

Graphics/GraphicsAccessories/interface/GraphicsAccessories.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,9 +791,15 @@ TEXTURE_FORMAT BCFormatToUncompressed(TEXTURE_FORMAT Fmt);
791791
/// Converts typeless format to a corresponding UNORM format, for example:
792792
/// RGBA8_TYPELESS -> RGBA8_UNORM
793793
/// BC1_TYPELESS -> BC1_UNORM
794-
/// If the format is not typeless, it is returned as is.
794+
/// If the format is not typeless, or cannot be converted to UNORM, it is returned as is.
795795
TEXTURE_FORMAT TypelessFormatToUnorm(TEXTURE_FORMAT Fmt);
796796

797+
/// Converts typeless format to a corresponding SRGB format, for example:
798+
/// RGBA8_TYPELESS -> RGBA8_UNORM_SRGB
799+
/// BC1_TYPELESS -> BC1_UNORM_SRGB
800+
/// If the format is not typeless, or cannot be converted to SRGB, it is returned as is.
801+
TEXTURE_FORMAT TypelessFormatToSRGB(TEXTURE_FORMAT Fmt);
802+
797803

798804
bool IsSRGBFormat(TEXTURE_FORMAT Fmt);
799805

Graphics/GraphicsAccessories/src/GraphicsAccessories.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2732,6 +2732,37 @@ TEXTURE_FORMAT TypelessFormatToUnorm(TEXTURE_FORMAT Fmt)
27322732
}
27332733
}
27342734

2735+
TEXTURE_FORMAT TypelessFormatToSRGB(TEXTURE_FORMAT Fmt)
2736+
{
2737+
static_assert(TEX_FORMAT_NUM_FORMATS == 106, "Please update the switch below to handle the new texture format, if needed");
2738+
switch (Fmt)
2739+
{
2740+
case TEX_FORMAT_RGBA8_TYPELESS:
2741+
return TEX_FORMAT_RGBA8_UNORM_SRGB;
2742+
2743+
case TEX_FORMAT_BC1_TYPELESS:
2744+
return TEX_FORMAT_BC1_UNORM_SRGB;
2745+
2746+
case TEX_FORMAT_BC2_TYPELESS:
2747+
return TEX_FORMAT_BC2_UNORM_SRGB;
2748+
2749+
case TEX_FORMAT_BC3_TYPELESS:
2750+
return TEX_FORMAT_BC3_UNORM_SRGB;
2751+
2752+
case TEX_FORMAT_BGRA8_TYPELESS:
2753+
return TEX_FORMAT_BGRA8_UNORM_SRGB;
2754+
2755+
case TEX_FORMAT_BGRX8_TYPELESS:
2756+
return TEX_FORMAT_BGRX8_UNORM_SRGB;
2757+
2758+
case TEX_FORMAT_BC7_TYPELESS:
2759+
return TEX_FORMAT_BC7_UNORM_SRGB;
2760+
2761+
default:
2762+
return Fmt;
2763+
}
2764+
}
2765+
27352766
bool IsSRGBFormat(TEXTURE_FORMAT Fmt)
27362767
{
27372768
return (Fmt == TEX_FORMAT_RGBA8_UNORM_SRGB ||

0 commit comments

Comments
 (0)