diff --git a/r5dev/public/rendersystem/schema/texture.g.h b/r5dev/public/rendersystem/schema/texture.g.h index 36bda5a3..7ca6cce8 100644 --- a/r5dev/public/rendersystem/schema/texture.g.h +++ b/r5dev/public/rendersystem/schema/texture.g.h @@ -188,77 +188,76 @@ inline int DxgiFormatToTxtrAsset(DXGI_FORMAT dxgi) case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return 59; case DXGI_FORMAT_D32_FLOAT : return 60; case DXGI_FORMAT_D16_UNORM : return 61; + + default : return 0; } } // Map txtr asset format to dxgi format -inline DXGI_FORMAT TxtrAssetToDxgiFormat(int txtr) +static const DXGI_FORMAT g_TxtrAssetToDxgiFormat[] = { - switch (txtr) - { - case 0 : return DXGI_FORMAT_BC1_UNORM; - case 1 : return DXGI_FORMAT_BC1_UNORM_SRGB; - case 2 : return DXGI_FORMAT_BC2_UNORM; - case 3 : return DXGI_FORMAT_BC2_UNORM_SRGB; - case 4 : return DXGI_FORMAT_BC3_UNORM; - case 5 : return DXGI_FORMAT_BC3_UNORM_SRGB; - case 6 : return DXGI_FORMAT_BC4_UNORM; - case 7 : return DXGI_FORMAT_BC4_SNORM; - case 8 : return DXGI_FORMAT_BC5_UNORM; - case 9 : return DXGI_FORMAT_BC5_SNORM; - case 10: return DXGI_FORMAT_BC6H_UF16; - case 11: return DXGI_FORMAT_BC6H_SF16; - case 12: return DXGI_FORMAT_BC7_UNORM; - case 13: return DXGI_FORMAT_BC7_UNORM_SRGB; - case 14: return DXGI_FORMAT_R32G32B32A32_FLOAT; - case 15: return DXGI_FORMAT_R32G32B32A32_UINT; - case 16: return DXGI_FORMAT_R32G32B32A32_SINT; - case 17: return DXGI_FORMAT_R32G32B32_FLOAT; - case 18: return DXGI_FORMAT_R32G32B32_UINT; - case 19: return DXGI_FORMAT_R32G32B32_SINT; - case 20: return DXGI_FORMAT_R16G16B16A16_FLOAT; - case 21: return DXGI_FORMAT_R16G16B16A16_UNORM; - case 22: return DXGI_FORMAT_R16G16B16A16_UINT; - case 23: return DXGI_FORMAT_R16G16B16A16_SNORM; - case 24: return DXGI_FORMAT_R16G16B16A16_SINT; - case 25: return DXGI_FORMAT_R32G32_FLOAT; - case 26: return DXGI_FORMAT_R32G32_UINT; - case 27: return DXGI_FORMAT_R32G32_SINT; - case 28: return DXGI_FORMAT_R10G10B10A2_UNORM; - case 29: return DXGI_FORMAT_R10G10B10A2_UINT; - case 30: return DXGI_FORMAT_R11G11B10_FLOAT; - case 31: return DXGI_FORMAT_R8G8B8A8_UNORM; - case 32: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; - case 33: return DXGI_FORMAT_R8G8B8A8_UINT; - case 34: return DXGI_FORMAT_R8G8B8A8_SNORM; - case 35: return DXGI_FORMAT_R8G8B8A8_SINT; - case 36: return DXGI_FORMAT_R16G16_FLOAT; - case 37: return DXGI_FORMAT_R16G16_UNORM; - case 38: return DXGI_FORMAT_R16G16_UINT; - case 39: return DXGI_FORMAT_R16G16_SNORM; - case 40: return DXGI_FORMAT_R16G16_SINT; - case 41: return DXGI_FORMAT_R32_FLOAT; - case 42: return DXGI_FORMAT_R32_UINT; - case 43: return DXGI_FORMAT_R32_SINT; - case 44: return DXGI_FORMAT_R8G8_UNORM; - case 45: return DXGI_FORMAT_R8G8_UINT; - case 46: return DXGI_FORMAT_R8G8_SNORM; - case 47: return DXGI_FORMAT_R8G8_SINT; - case 48: return DXGI_FORMAT_R16_FLOAT; - case 49: return DXGI_FORMAT_R16_UNORM; - case 50: return DXGI_FORMAT_R16_UINT; - case 51: return DXGI_FORMAT_R16_SNORM; - case 52: return DXGI_FORMAT_R16_SINT; - case 53: return DXGI_FORMAT_R8_UNORM; - case 54: return DXGI_FORMAT_R8_UINT; - case 55: return DXGI_FORMAT_R8_SNORM; - case 56: return DXGI_FORMAT_R8_SINT; - case 57: return DXGI_FORMAT_A8_UNORM; - case 58: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP; - case 59: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM; - case 60: return DXGI_FORMAT_D32_FLOAT; - case 61: return DXGI_FORMAT_D16_UNORM; - } + DXGI_FORMAT_BC1_UNORM, + DXGI_FORMAT_BC1_UNORM_SRGB, + DXGI_FORMAT_BC2_UNORM, + DXGI_FORMAT_BC2_UNORM_SRGB, + DXGI_FORMAT_BC3_UNORM, + DXGI_FORMAT_BC3_UNORM_SRGB, + DXGI_FORMAT_BC4_UNORM, + DXGI_FORMAT_BC4_SNORM, + DXGI_FORMAT_BC5_UNORM, + DXGI_FORMAT_BC5_SNORM, + DXGI_FORMAT_BC6H_UF16, + DXGI_FORMAT_BC6H_SF16, + DXGI_FORMAT_BC7_UNORM, + DXGI_FORMAT_BC7_UNORM_SRGB, + DXGI_FORMAT_R32G32B32A32_FLOAT, + DXGI_FORMAT_R32G32B32A32_UINT, + DXGI_FORMAT_R32G32B32A32_SINT, + DXGI_FORMAT_R32G32B32_FLOAT, + DXGI_FORMAT_R32G32B32_UINT, + DXGI_FORMAT_R32G32B32_SINT, + DXGI_FORMAT_R16G16B16A16_FLOAT, + DXGI_FORMAT_R16G16B16A16_UNORM, + DXGI_FORMAT_R16G16B16A16_UINT, + DXGI_FORMAT_R16G16B16A16_SNORM, + DXGI_FORMAT_R16G16B16A16_SINT, + DXGI_FORMAT_R32G32_FLOAT, + DXGI_FORMAT_R32G32_UINT, + DXGI_FORMAT_R32G32_SINT, + DXGI_FORMAT_R10G10B10A2_UNORM, + DXGI_FORMAT_R10G10B10A2_UINT, + DXGI_FORMAT_R11G11B10_FLOAT, + DXGI_FORMAT_R8G8B8A8_UNORM, + DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, + DXGI_FORMAT_R8G8B8A8_UINT, + DXGI_FORMAT_R8G8B8A8_SNORM, + DXGI_FORMAT_R8G8B8A8_SINT, + DXGI_FORMAT_R16G16_FLOAT, + DXGI_FORMAT_R16G16_UNORM, + DXGI_FORMAT_R16G16_UINT, + DXGI_FORMAT_R16G16_SNORM, + DXGI_FORMAT_R16G16_SINT, + DXGI_FORMAT_R32_FLOAT, + DXGI_FORMAT_R32_UINT, + DXGI_FORMAT_R32_SINT, + DXGI_FORMAT_R8G8_UNORM, + DXGI_FORMAT_R8G8_UINT, + DXGI_FORMAT_R8G8_SNORM, + DXGI_FORMAT_R8G8_SINT, + DXGI_FORMAT_R16_FLOAT, + DXGI_FORMAT_R16_UNORM, + DXGI_FORMAT_R16_UINT, + DXGI_FORMAT_R16_SNORM, + DXGI_FORMAT_R16_SINT, + DXGI_FORMAT_R8_UNORM, + DXGI_FORMAT_R8_UINT, + DXGI_FORMAT_R8_SNORM, + DXGI_FORMAT_R8_SINT, + DXGI_FORMAT_A8_UNORM, + DXGI_FORMAT_R9G9B9E5_SHAREDEXP, + DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM, + DXGI_FORMAT_D32_FLOAT, + DXGI_FORMAT_D16_UNORM, }; #endif // TEXTURE_G_H diff --git a/r5dev/rtech/rtech_utils.cpp b/r5dev/rtech/rtech_utils.cpp index b75d77c5..1051fffb 100644 --- a/r5dev/rtech/rtech_utils.cpp +++ b/r5dev/rtech/rtech_utils.cpp @@ -545,7 +545,7 @@ void RTech::CreateDXTexture(TextureHeader_t* textureHeader, int64_t imageData) } while (mipLevel != totalStreamedMips); } - const DXGI_FORMAT dxgiFormat = TxtrAssetToDxgiFormat(textureHeader->m_nImageFormat); // Get dxgi format + const DXGI_FORMAT dxgiFormat = g_TxtrAssetToDxgiFormat[textureHeader->m_nImageFormat]; // Get dxgi format D3D11_TEXTURE2D_DESC textureDesc{}; textureDesc.Width = textureHeader->m_nWidth >> mipLevel;