text: #include "D3DEnumConvertor.h"
  
  DXGI_FORMAT ConvertPixelFormatToD3D(ERDIPixelFormat _pixelFormat) noexcept
  {
  	static constexpr DXGI_FORMAT dxgiFormatMap[EnumToInt(ERDIPixelFormat::Num)] =
  	{
  		DXGI_FORMAT::DXGI_FORMAT_UNKNOWN,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32A32_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32A32_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32A32_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32A32_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32B32_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16B16A16_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G32_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32G8X24_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_X32_TYPELESS_G8X24_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R10G10B10A2_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R10G10B10A2_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R10G10B10A2_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R11G11B10_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8B8A8_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16G16_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_D32_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R32_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_R32_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R32_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R24G8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_D24_UNORM_S8_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_X24_TYPELESS_G8_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R16_FLOAT,
  		DXGI_FORMAT::DXGI_FORMAT_D16_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R16_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R16_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_R8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_R8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8_UINT,
  		DXGI_FORMAT::DXGI_FORMAT_R8_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R8_SINT,
  		DXGI_FORMAT::DXGI_FORMAT_A8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R1_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
  		DXGI_FORMAT::DXGI_FORMAT_R8G8_B8G8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_G8R8_G8B8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC1_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC1_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC2_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC2_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC3_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC3_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC4_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC4_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC4_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC5_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC5_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_BC5_SNORM,
  		DXGI_FORMAT::DXGI_FORMAT_B5G6R5_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_B5G5R5A1_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_B8G8R8A8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_B8G8R8X8_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM,
  		DXGI_FORMAT::DXGI_FORMAT_B8G8R8A8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_B8G8R8X8_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC6H_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC6H_UF16,
  		DXGI_FORMAT::DXGI_FORMAT_BC6H_SF16,
  		DXGI_FORMAT::DXGI_FORMAT_BC7_TYPELESS,
  		DXGI_FORMAT::DXGI_FORMAT_BC7_UNORM,
  	};
  
  	return dxgiFormatMap[EnumToInt(_pixelFormat)];
  }
  
  const char* ConvertShaderTargetToStr(ED3DShaderTarget _shaderTarget) noexcept
  {
  	static constexpr const char* strMap[EnumToInt(ED3DShaderTarget::Num)] = 
  	{
  		"vs_5_0",
  		"hs_5_0",
  		"ds_5_0",
  		"gs_5_0",
  		"ps_5_0",
  		"cs_5_0",
  
  		"vs_6_0",
  		"hs_6_0",
  		"ds_6_0",
  		"gs_6_0",
  		"ps_6_0",
  		"cs_6_0",
  
  		"vs_6_4",
  		"hs_6_4",
  		"ds_6_4",
  		"gs_6_4",
  		"ps_6_4",
  		"cs_6_4",
  	};
  
  	return strMap[EnumToInt(_shaderTarget)];
  }
  
  DXGI_MODE_SCALING ConvertScalingModeToD3D(ERDIScalingMode _scalingMode) noexcept
  {
  	return static_cast<DXGI_MODE_SCALING>(_scalingMode);
  }
  