@@ -416,7 +416,7 @@ const TextureFormatAttribs& GetTextureFormatAttribs(TEXTURE_FORMAT Format)
416416 INIT_TEX_FORMAT_INFO (TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB, 16 , 4 , COMPONENT_TYPE_COMPRESSED, false , 4 ,4 );
417417#undef INIT_TEX_FORMAT_INFO
418418 // clang-format on
419- static_assert (TEX_FORMAT_NUM_FORMATS == TEX_FORMAT_ETC2_RGBA8_UNORM_SRGB + 1 , " Not all texture formats initialized." );
419+ static_assert (TEX_FORMAT_NUM_FORMATS == 106 , " Not all texture formats initialized." );
420420
421421#ifdef DILIGENT_DEBUG
422422 for (Uint32 Fmt = TEX_FORMAT_UNKNOWN; Fmt < TEX_FORMAT_NUM_FORMATS; ++Fmt)
@@ -2560,6 +2560,7 @@ const Char* GetPipelineStateStatusString(PIPELINE_STATE_STATUS PipelineStatus, b
25602560
25612561TEXTURE_FORMAT UnormFormatToSRGB (TEXTURE_FORMAT Fmt)
25622562{
2563+ static_assert (TEX_FORMAT_NUM_FORMATS == 106 , " Please update the switch below to handle the new texture format, if needed" );
25632564 switch (Fmt)
25642565 {
25652566 case TEX_FORMAT_RGBA8_UNORM:
@@ -2599,6 +2600,7 @@ TEXTURE_FORMAT UnormFormatToSRGB(TEXTURE_FORMAT Fmt)
25992600
26002601TEXTURE_FORMAT SRGBFormatToUnorm (TEXTURE_FORMAT Fmt)
26012602{
2603+ static_assert (TEX_FORMAT_NUM_FORMATS == 106 , " Please update the switch below to handle the new texture format, if needed" );
26022604 switch (Fmt)
26032605 {
26042606 case TEX_FORMAT_RGBA8_UNORM_SRGB:
@@ -2685,6 +2687,49 @@ TEXTURE_FORMAT BCFormatToUncompressed(TEXTURE_FORMAT Fmt)
26852687 }
26862688}
26872689
2690+ TEXTURE_FORMAT TypelessFormatToUnorm (TEXTURE_FORMAT Fmt)
2691+ {
2692+ static_assert (TEX_FORMAT_NUM_FORMATS == 106 , " Please update the switch below to handle the new texture format, if needed" );
2693+ switch (Fmt)
2694+ {
2695+ case TEX_FORMAT_R8_TYPELESS:
2696+ return TEX_FORMAT_R8_UNORM;
2697+
2698+ case TEX_FORMAT_RG8_TYPELESS:
2699+ return TEX_FORMAT_RG8_UNORM;
2700+
2701+ case TEX_FORMAT_RGBA8_TYPELESS:
2702+ return TEX_FORMAT_RGBA8_UNORM;
2703+
2704+ case TEX_FORMAT_R16_TYPELESS:
2705+ return TEX_FORMAT_R16_UNORM;
2706+
2707+ case TEX_FORMAT_RG16_TYPELESS:
2708+ return TEX_FORMAT_RG16_UNORM;
2709+
2710+ case TEX_FORMAT_RGBA16_TYPELESS:
2711+ return TEX_FORMAT_RGBA16_UNORM;
2712+
2713+ case TEX_FORMAT_BC1_TYPELESS:
2714+ return TEX_FORMAT_BC1_UNORM;
2715+
2716+ case TEX_FORMAT_BC2_TYPELESS:
2717+ return TEX_FORMAT_BC2_UNORM;
2718+
2719+ case TEX_FORMAT_BC3_TYPELESS:
2720+ return TEX_FORMAT_BC3_UNORM;
2721+
2722+ case TEX_FORMAT_BC4_TYPELESS:
2723+ return TEX_FORMAT_BC4_UNORM;
2724+
2725+ case TEX_FORMAT_BC5_TYPELESS:
2726+ return TEX_FORMAT_BC5_UNORM;
2727+
2728+ default :
2729+ return Fmt;
2730+ }
2731+ }
2732+
26882733bool IsSRGBFormat (TEXTURE_FORMAT Fmt)
26892734{
26902735 return (Fmt == TEX_FORMAT_RGBA8_UNORM_SRGB ||
0 commit comments