Turn 'TxtrAssetToDxgiFormat' into constant table

Turned into an actual constant.
This commit is contained in:
Kawe Mazidjatari 2023-04-02 01:40:28 +02:00
parent cd40081a20
commit b648378574
2 changed files with 66 additions and 67 deletions

View File

@ -188,77 +188,76 @@ inline int DxgiFormatToTxtrAsset(DXGI_FORMAT dxgi)
case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return 59; case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: return 59;
case DXGI_FORMAT_D32_FLOAT : return 60; case DXGI_FORMAT_D32_FLOAT : return 60;
case DXGI_FORMAT_D16_UNORM : return 61; case DXGI_FORMAT_D16_UNORM : return 61;
default : return 0;
} }
} }
// Map txtr asset format to dxgi format // Map txtr asset format to dxgi format
inline DXGI_FORMAT TxtrAssetToDxgiFormat(int txtr) static const DXGI_FORMAT g_TxtrAssetToDxgiFormat[] =
{ {
switch (txtr) DXGI_FORMAT_BC1_UNORM,
{ DXGI_FORMAT_BC1_UNORM_SRGB,
case 0 : return DXGI_FORMAT_BC1_UNORM; DXGI_FORMAT_BC2_UNORM,
case 1 : return DXGI_FORMAT_BC1_UNORM_SRGB; DXGI_FORMAT_BC2_UNORM_SRGB,
case 2 : return DXGI_FORMAT_BC2_UNORM; DXGI_FORMAT_BC3_UNORM,
case 3 : return DXGI_FORMAT_BC2_UNORM_SRGB; DXGI_FORMAT_BC3_UNORM_SRGB,
case 4 : return DXGI_FORMAT_BC3_UNORM; DXGI_FORMAT_BC4_UNORM,
case 5 : return DXGI_FORMAT_BC3_UNORM_SRGB; DXGI_FORMAT_BC4_SNORM,
case 6 : return DXGI_FORMAT_BC4_UNORM; DXGI_FORMAT_BC5_UNORM,
case 7 : return DXGI_FORMAT_BC4_SNORM; DXGI_FORMAT_BC5_SNORM,
case 8 : return DXGI_FORMAT_BC5_UNORM; DXGI_FORMAT_BC6H_UF16,
case 9 : return DXGI_FORMAT_BC5_SNORM; DXGI_FORMAT_BC6H_SF16,
case 10: return DXGI_FORMAT_BC6H_UF16; DXGI_FORMAT_BC7_UNORM,
case 11: return DXGI_FORMAT_BC6H_SF16; DXGI_FORMAT_BC7_UNORM_SRGB,
case 12: return DXGI_FORMAT_BC7_UNORM; DXGI_FORMAT_R32G32B32A32_FLOAT,
case 13: return DXGI_FORMAT_BC7_UNORM_SRGB; DXGI_FORMAT_R32G32B32A32_UINT,
case 14: return DXGI_FORMAT_R32G32B32A32_FLOAT; DXGI_FORMAT_R32G32B32A32_SINT,
case 15: return DXGI_FORMAT_R32G32B32A32_UINT; DXGI_FORMAT_R32G32B32_FLOAT,
case 16: return DXGI_FORMAT_R32G32B32A32_SINT; DXGI_FORMAT_R32G32B32_UINT,
case 17: return DXGI_FORMAT_R32G32B32_FLOAT; DXGI_FORMAT_R32G32B32_SINT,
case 18: return DXGI_FORMAT_R32G32B32_UINT; DXGI_FORMAT_R16G16B16A16_FLOAT,
case 19: return DXGI_FORMAT_R32G32B32_SINT; DXGI_FORMAT_R16G16B16A16_UNORM,
case 20: return DXGI_FORMAT_R16G16B16A16_FLOAT; DXGI_FORMAT_R16G16B16A16_UINT,
case 21: return DXGI_FORMAT_R16G16B16A16_UNORM; DXGI_FORMAT_R16G16B16A16_SNORM,
case 22: return DXGI_FORMAT_R16G16B16A16_UINT; DXGI_FORMAT_R16G16B16A16_SINT,
case 23: return DXGI_FORMAT_R16G16B16A16_SNORM; DXGI_FORMAT_R32G32_FLOAT,
case 24: return DXGI_FORMAT_R16G16B16A16_SINT; DXGI_FORMAT_R32G32_UINT,
case 25: return DXGI_FORMAT_R32G32_FLOAT; DXGI_FORMAT_R32G32_SINT,
case 26: return DXGI_FORMAT_R32G32_UINT; DXGI_FORMAT_R10G10B10A2_UNORM,
case 27: return DXGI_FORMAT_R32G32_SINT; DXGI_FORMAT_R10G10B10A2_UINT,
case 28: return DXGI_FORMAT_R10G10B10A2_UNORM; DXGI_FORMAT_R11G11B10_FLOAT,
case 29: return DXGI_FORMAT_R10G10B10A2_UINT; DXGI_FORMAT_R8G8B8A8_UNORM,
case 30: return DXGI_FORMAT_R11G11B10_FLOAT; DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
case 31: return DXGI_FORMAT_R8G8B8A8_UNORM; DXGI_FORMAT_R8G8B8A8_UINT,
case 32: return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; DXGI_FORMAT_R8G8B8A8_SNORM,
case 33: return DXGI_FORMAT_R8G8B8A8_UINT; DXGI_FORMAT_R8G8B8A8_SINT,
case 34: return DXGI_FORMAT_R8G8B8A8_SNORM; DXGI_FORMAT_R16G16_FLOAT,
case 35: return DXGI_FORMAT_R8G8B8A8_SINT; DXGI_FORMAT_R16G16_UNORM,
case 36: return DXGI_FORMAT_R16G16_FLOAT; DXGI_FORMAT_R16G16_UINT,
case 37: return DXGI_FORMAT_R16G16_UNORM; DXGI_FORMAT_R16G16_SNORM,
case 38: return DXGI_FORMAT_R16G16_UINT; DXGI_FORMAT_R16G16_SINT,
case 39: return DXGI_FORMAT_R16G16_SNORM; DXGI_FORMAT_R32_FLOAT,
case 40: return DXGI_FORMAT_R16G16_SINT; DXGI_FORMAT_R32_UINT,
case 41: return DXGI_FORMAT_R32_FLOAT; DXGI_FORMAT_R32_SINT,
case 42: return DXGI_FORMAT_R32_UINT; DXGI_FORMAT_R8G8_UNORM,
case 43: return DXGI_FORMAT_R32_SINT; DXGI_FORMAT_R8G8_UINT,
case 44: return DXGI_FORMAT_R8G8_UNORM; DXGI_FORMAT_R8G8_SNORM,
case 45: return DXGI_FORMAT_R8G8_UINT; DXGI_FORMAT_R8G8_SINT,
case 46: return DXGI_FORMAT_R8G8_SNORM; DXGI_FORMAT_R16_FLOAT,
case 47: return DXGI_FORMAT_R8G8_SINT; DXGI_FORMAT_R16_UNORM,
case 48: return DXGI_FORMAT_R16_FLOAT; DXGI_FORMAT_R16_UINT,
case 49: return DXGI_FORMAT_R16_UNORM; DXGI_FORMAT_R16_SNORM,
case 50: return DXGI_FORMAT_R16_UINT; DXGI_FORMAT_R16_SINT,
case 51: return DXGI_FORMAT_R16_SNORM; DXGI_FORMAT_R8_UNORM,
case 52: return DXGI_FORMAT_R16_SINT; DXGI_FORMAT_R8_UINT,
case 53: return DXGI_FORMAT_R8_UNORM; DXGI_FORMAT_R8_SNORM,
case 54: return DXGI_FORMAT_R8_UINT; DXGI_FORMAT_R8_SINT,
case 55: return DXGI_FORMAT_R8_SNORM; DXGI_FORMAT_A8_UNORM,
case 56: return DXGI_FORMAT_R8_SINT; DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
case 57: return DXGI_FORMAT_A8_UNORM; DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM,
case 58: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP; DXGI_FORMAT_D32_FLOAT,
case 59: return DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM; DXGI_FORMAT_D16_UNORM,
case 60: return DXGI_FORMAT_D32_FLOAT;
case 61: return DXGI_FORMAT_D16_UNORM;
}
}; };
#endif // TEXTURE_G_H #endif // TEXTURE_G_H

View File

@ -545,7 +545,7 @@ void RTech::CreateDXTexture(TextureHeader_t* textureHeader, int64_t imageData)
} while (mipLevel != totalStreamedMips); } 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{}; D3D11_TEXTURE2D_DESC textureDesc{};
textureDesc.Width = textureHeader->m_nWidth >> mipLevel; textureDesc.Width = textureHeader->m_nWidth >> mipLevel;