mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-31 20:01:12 +00:00
Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also reflects better for SWIG bindings. Overall it's a minor change but better. * We don't update the C# UI at all, since it's soon to be removed and not worth the effort/code churn. * For now so we're ABI compatible with C#, all enums are uint32_t, but that is an obvious optimisation in future to reduce struct packing. * We avoid 'None' as an enum value, because it's a reserved word in python so will cause problems generating bindings.
This commit is contained in:
+183
-175
@@ -234,197 +234,205 @@ ResourceFormat DXGIFormat2ResourceFormat(DXGI_FORMAT format)
|
||||
|
||||
fmt32.compByteWidth = 4;
|
||||
fmt32.compCount = 1;
|
||||
fmt32.compType = eCompType_Float;
|
||||
fmt32.compType = CompType::Float;
|
||||
fmt32.special = false;
|
||||
|
||||
fmt16.compByteWidth = 2;
|
||||
fmt16.compCount = 1;
|
||||
fmt16.compType = eCompType_Float;
|
||||
fmt16.compType = CompType::Float;
|
||||
fmt16.special = false;
|
||||
|
||||
fmt8.compByteWidth = 1;
|
||||
fmt8.compCount = 1;
|
||||
fmt8.compType = eCompType_UNorm;
|
||||
fmt8.compType = CompType::UNorm;
|
||||
fmt8.special = false;
|
||||
|
||||
switch(format)
|
||||
{
|
||||
case DXGI_FORMAT_BC1_UNORM:
|
||||
case DXGI_FORMAT_BC1_UNORM_SRGB:
|
||||
special.specialFormat = eSpecial_BC1;
|
||||
special.specialFormat = SpecialFormat::BC1;
|
||||
special.srgbCorrected = (format == DXGI_FORMAT_BC1_UNORM_SRGB ? true : false);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC2_UNORM:
|
||||
case DXGI_FORMAT_BC2_UNORM_SRGB:
|
||||
special.specialFormat = eSpecial_BC2;
|
||||
special.specialFormat = SpecialFormat::BC2;
|
||||
special.srgbCorrected = (format == DXGI_FORMAT_BC2_UNORM_SRGB ? true : false);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC3_UNORM:
|
||||
case DXGI_FORMAT_BC3_UNORM_SRGB:
|
||||
special.specialFormat = eSpecial_BC3;
|
||||
special.specialFormat = SpecialFormat::BC3;
|
||||
special.srgbCorrected = (format == DXGI_FORMAT_BC3_UNORM_SRGB ? true : false);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC4_UNORM:
|
||||
case DXGI_FORMAT_BC4_SNORM:
|
||||
special.specialFormat = eSpecial_BC4;
|
||||
special.compType = (format == DXGI_FORMAT_BC4_UNORM ? eCompType_UNorm : eCompType_SNorm);
|
||||
special.specialFormat = SpecialFormat::BC4;
|
||||
special.compType = (format == DXGI_FORMAT_BC4_UNORM ? CompType::UNorm : CompType::SNorm);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC5_UNORM:
|
||||
case DXGI_FORMAT_BC5_SNORM:
|
||||
special.specialFormat = eSpecial_BC5;
|
||||
special.compType = (format == DXGI_FORMAT_BC5_UNORM ? eCompType_UNorm : eCompType_SNorm);
|
||||
special.specialFormat = SpecialFormat::BC5;
|
||||
special.compType = (format == DXGI_FORMAT_BC5_UNORM ? CompType::UNorm : CompType::SNorm);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC6H_UF16:
|
||||
case DXGI_FORMAT_BC6H_SF16:
|
||||
special.specialFormat = eSpecial_BC6;
|
||||
special.compType = (format == DXGI_FORMAT_BC6H_UF16 ? eCompType_UNorm : eCompType_SNorm);
|
||||
special.specialFormat = SpecialFormat::BC6;
|
||||
special.compType = (format == DXGI_FORMAT_BC6H_UF16 ? CompType::UNorm : CompType::SNorm);
|
||||
return special;
|
||||
case DXGI_FORMAT_BC7_UNORM:
|
||||
case DXGI_FORMAT_BC7_UNORM_SRGB:
|
||||
special.specialFormat = eSpecial_BC7;
|
||||
special.specialFormat = SpecialFormat::BC7;
|
||||
special.srgbCorrected = (format == DXGI_FORMAT_BC7_UNORM_SRGB ? true : false);
|
||||
return special;
|
||||
case DXGI_FORMAT_R10G10B10A2_UNORM:
|
||||
case DXGI_FORMAT_R10G10B10A2_UINT:
|
||||
special.specialFormat = eSpecial_R10G10B10A2;
|
||||
special.compType = (format == DXGI_FORMAT_R10G10B10A2_UNORM ? eCompType_UNorm : eCompType_UInt);
|
||||
special.specialFormat = SpecialFormat::R10G10B10A2;
|
||||
special.compType = (format == DXGI_FORMAT_R10G10B10A2_UNORM ? CompType::UNorm : CompType::UInt);
|
||||
return special;
|
||||
case DXGI_FORMAT_R11G11B10_FLOAT:
|
||||
special.specialFormat = SpecialFormat::R11G11B10;
|
||||
return special;
|
||||
case DXGI_FORMAT_R11G11B10_FLOAT: special.specialFormat = eSpecial_R11G11B10; return special;
|
||||
case DXGI_FORMAT_B5G6R5_UNORM:
|
||||
fmt8.bgraOrder = true;
|
||||
special.specialFormat = eSpecial_R5G6B5;
|
||||
special.specialFormat = SpecialFormat::R5G6B5;
|
||||
return special;
|
||||
case DXGI_FORMAT_B5G5R5A1_UNORM:
|
||||
fmt8.bgraOrder = true;
|
||||
special.specialFormat = eSpecial_R5G5B5A1;
|
||||
special.specialFormat = SpecialFormat::R5G5B5A1;
|
||||
return special;
|
||||
case DXGI_FORMAT_R9G9B9E5_SHAREDEXP:
|
||||
special.specialFormat = SpecialFormat::R9G9B9E5;
|
||||
return special;
|
||||
case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: special.specialFormat = eSpecial_R9G9B9E5; return special;
|
||||
case DXGI_FORMAT_B4G4R4A4_UNORM:
|
||||
fmt8.bgraOrder = true;
|
||||
special.specialFormat = eSpecial_R4G4B4A4;
|
||||
special.specialFormat = SpecialFormat::R4G4B4A4;
|
||||
return special;
|
||||
case DXGI_FORMAT_D24_UNORM_S8_UINT:
|
||||
special.specialFormat = SpecialFormat::D24S8;
|
||||
return special;
|
||||
case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
|
||||
special.specialFormat = SpecialFormat::D32S8;
|
||||
return special;
|
||||
case DXGI_FORMAT_D24_UNORM_S8_UINT: special.specialFormat = eSpecial_D24S8; return special;
|
||||
case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: special.specialFormat = eSpecial_D32S8; return special;
|
||||
|
||||
case DXGI_FORMAT_R32G32B32A32_UINT:
|
||||
fmt32.compType = eCompType_UInt;
|
||||
fmt32.compType = CompType::UInt;
|
||||
fmt32.compCount = 4;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32B32A32_SINT:
|
||||
fmt32.compType = eCompType_SInt;
|
||||
fmt32.compType = CompType::SInt;
|
||||
fmt32.compCount = 4;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32B32A32_FLOAT: fmt32.compCount = 4; return fmt32;
|
||||
|
||||
case DXGI_FORMAT_R32G32B32_UINT:
|
||||
fmt32.compType = eCompType_UInt;
|
||||
fmt32.compType = CompType::UInt;
|
||||
fmt32.compCount = 3;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32B32_SINT:
|
||||
fmt32.compType = eCompType_SInt;
|
||||
fmt32.compType = CompType::SInt;
|
||||
fmt32.compCount = 3;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32B32_FLOAT: fmt32.compCount = 3; return fmt32;
|
||||
|
||||
case DXGI_FORMAT_R32G32_UINT:
|
||||
fmt32.compType = eCompType_UInt;
|
||||
fmt32.compType = CompType::UInt;
|
||||
fmt32.compCount = 2;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32_SINT:
|
||||
fmt32.compType = eCompType_SInt;
|
||||
fmt32.compType = CompType::SInt;
|
||||
fmt32.compCount = 2;
|
||||
return fmt32;
|
||||
case DXGI_FORMAT_R32G32_FLOAT: fmt32.compCount = 2; return fmt32;
|
||||
|
||||
case DXGI_FORMAT_R32_UINT: fmt32.compType = eCompType_UInt; return fmt32;
|
||||
case DXGI_FORMAT_R32_SINT: fmt32.compType = eCompType_SInt; return fmt32;
|
||||
case DXGI_FORMAT_R32_UINT: fmt32.compType = CompType::UInt; return fmt32;
|
||||
case DXGI_FORMAT_R32_SINT: fmt32.compType = CompType::SInt; return fmt32;
|
||||
case DXGI_FORMAT_R32_FLOAT: return fmt32;
|
||||
|
||||
case DXGI_FORMAT_R16G16B16A16_UINT:
|
||||
fmt16.compType = eCompType_UInt;
|
||||
fmt16.compType = CompType::UInt;
|
||||
fmt16.compCount = 4;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16B16A16_SINT:
|
||||
fmt16.compType = eCompType_SInt;
|
||||
fmt16.compType = CompType::SInt;
|
||||
fmt16.compCount = 4;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16B16A16_UNORM:
|
||||
fmt16.compType = eCompType_UNorm;
|
||||
fmt16.compType = CompType::UNorm;
|
||||
fmt16.compCount = 4;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16B16A16_SNORM:
|
||||
fmt16.compType = eCompType_SNorm;
|
||||
fmt16.compType = CompType::SNorm;
|
||||
fmt16.compCount = 4;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16B16A16_FLOAT: fmt16.compCount = 4; return fmt16;
|
||||
|
||||
case DXGI_FORMAT_R16G16_UINT:
|
||||
fmt16.compType = eCompType_UInt;
|
||||
fmt16.compType = CompType::UInt;
|
||||
fmt16.compCount = 2;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16_SINT:
|
||||
fmt16.compType = eCompType_SInt;
|
||||
fmt16.compType = CompType::SInt;
|
||||
fmt16.compCount = 2;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16_UNORM:
|
||||
fmt16.compType = eCompType_UNorm;
|
||||
fmt16.compType = CompType::UNorm;
|
||||
fmt16.compCount = 2;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16_SNORM:
|
||||
fmt16.compType = eCompType_SNorm;
|
||||
fmt16.compType = CompType::SNorm;
|
||||
fmt16.compCount = 2;
|
||||
return fmt16;
|
||||
case DXGI_FORMAT_R16G16_FLOAT: fmt16.compCount = 2; return fmt16;
|
||||
|
||||
case DXGI_FORMAT_R16_UINT: fmt16.compType = eCompType_UInt; return fmt16;
|
||||
case DXGI_FORMAT_R16_SINT: fmt16.compType = eCompType_SInt; return fmt16;
|
||||
case DXGI_FORMAT_R16_UNORM: fmt16.compType = eCompType_UNorm; return fmt16;
|
||||
case DXGI_FORMAT_R16_SNORM: fmt16.compType = eCompType_SNorm; return fmt16;
|
||||
case DXGI_FORMAT_R16_UINT: fmt16.compType = CompType::UInt; return fmt16;
|
||||
case DXGI_FORMAT_R16_SINT: fmt16.compType = CompType::SInt; return fmt16;
|
||||
case DXGI_FORMAT_R16_UNORM: fmt16.compType = CompType::UNorm; return fmt16;
|
||||
case DXGI_FORMAT_R16_SNORM: fmt16.compType = CompType::SNorm; return fmt16;
|
||||
case DXGI_FORMAT_R16_FLOAT: return fmt16;
|
||||
|
||||
case DXGI_FORMAT_R8G8B8A8_UINT:
|
||||
fmt8.compType = eCompType_UInt;
|
||||
fmt8.compType = CompType::UInt;
|
||||
fmt8.compCount = 4;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8B8A8_SINT:
|
||||
fmt8.compType = eCompType_SInt;
|
||||
fmt8.compType = CompType::SInt;
|
||||
fmt8.compCount = 4;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8B8A8_SNORM:
|
||||
fmt8.compType = eCompType_SNorm;
|
||||
fmt8.compType = CompType::SNorm;
|
||||
fmt8.compCount = 4;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
|
||||
fmt8.compType = eCompType_UNorm;
|
||||
fmt8.compType = CompType::UNorm;
|
||||
fmt8.srgbCorrected = true;
|
||||
fmt8.compCount = 4;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8B8A8_UNORM: fmt8.compCount = 4; return fmt8;
|
||||
case DXGI_FORMAT_B8G8R8A8_UNORM:
|
||||
case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
|
||||
fmt8.compType = eCompType_UNorm;
|
||||
fmt8.compType = CompType::UNorm;
|
||||
fmt8.compCount = 4;
|
||||
fmt8.bgraOrder = true;
|
||||
fmt8.srgbCorrected = (format == DXGI_FORMAT_B8G8R8A8_UNORM_SRGB ? true : false);
|
||||
return fmt8;
|
||||
|
||||
case DXGI_FORMAT_R8G8_UINT:
|
||||
fmt8.compType = eCompType_UInt;
|
||||
fmt8.compType = CompType::UInt;
|
||||
fmt8.compCount = 2;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8_SINT:
|
||||
fmt8.compType = eCompType_SInt;
|
||||
fmt8.compType = CompType::SInt;
|
||||
fmt8.compCount = 2;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8_SNORM:
|
||||
fmt8.compType = eCompType_SNorm;
|
||||
fmt8.compType = CompType::SNorm;
|
||||
fmt8.compCount = 2;
|
||||
return fmt8;
|
||||
case DXGI_FORMAT_R8G8_UNORM: fmt8.compCount = 2; return fmt8;
|
||||
|
||||
case DXGI_FORMAT_R8_UINT: fmt8.compType = eCompType_UInt; return fmt8;
|
||||
case DXGI_FORMAT_R8_SINT: fmt8.compType = eCompType_SInt; return fmt8;
|
||||
case DXGI_FORMAT_R8_SNORM: fmt8.compType = eCompType_SNorm; return fmt8;
|
||||
case DXGI_FORMAT_R8_UINT: fmt8.compType = CompType::UInt; return fmt8;
|
||||
case DXGI_FORMAT_R8_SINT: fmt8.compType = CompType::SInt; return fmt8;
|
||||
case DXGI_FORMAT_R8_SNORM: fmt8.compType = CompType::SNorm; return fmt8;
|
||||
case DXGI_FORMAT_R8_UNORM: return fmt8;
|
||||
|
||||
default: RDCWARN("Unsupported DXGI_FORMAT: %u", (uint32_t)format);
|
||||
@@ -439,38 +447,38 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.specialFormat)
|
||||
{
|
||||
case eSpecial_BC1:
|
||||
case SpecialFormat::BC1:
|
||||
return format.srgbCorrected ? DXGI_FORMAT_BC1_UNORM_SRGB : DXGI_FORMAT_BC1_UNORM;
|
||||
case eSpecial_BC2:
|
||||
case SpecialFormat::BC2:
|
||||
return format.srgbCorrected ? DXGI_FORMAT_BC2_UNORM_SRGB : DXGI_FORMAT_BC2_UNORM;
|
||||
case eSpecial_BC3:
|
||||
case SpecialFormat::BC3:
|
||||
return format.srgbCorrected ? DXGI_FORMAT_BC3_UNORM_SRGB : DXGI_FORMAT_BC3_UNORM;
|
||||
case eSpecial_BC4:
|
||||
return format.compType == eCompType_UNorm ? DXGI_FORMAT_BC4_UNORM : DXGI_FORMAT_BC4_SNORM;
|
||||
case eSpecial_BC5:
|
||||
return format.compType == eCompType_UNorm ? DXGI_FORMAT_BC5_UNORM : DXGI_FORMAT_BC5_SNORM;
|
||||
case eSpecial_BC6:
|
||||
return format.compType == eCompType_UNorm ? DXGI_FORMAT_BC6H_UF16 : DXGI_FORMAT_BC6H_SF16;
|
||||
case eSpecial_BC7:
|
||||
case SpecialFormat::BC4:
|
||||
return format.compType == CompType::UNorm ? DXGI_FORMAT_BC4_UNORM : DXGI_FORMAT_BC4_SNORM;
|
||||
case SpecialFormat::BC5:
|
||||
return format.compType == CompType::UNorm ? DXGI_FORMAT_BC5_UNORM : DXGI_FORMAT_BC5_SNORM;
|
||||
case SpecialFormat::BC6:
|
||||
return format.compType == CompType::UNorm ? DXGI_FORMAT_BC6H_UF16 : DXGI_FORMAT_BC6H_SF16;
|
||||
case SpecialFormat::BC7:
|
||||
return format.srgbCorrected ? DXGI_FORMAT_BC7_UNORM_SRGB : DXGI_FORMAT_BC7_UNORM;
|
||||
case eSpecial_R10G10B10A2:
|
||||
return format.compType == eCompType_UNorm ? DXGI_FORMAT_R10G10B10A2_UNORM
|
||||
case SpecialFormat::R10G10B10A2:
|
||||
return format.compType == CompType::UNorm ? DXGI_FORMAT_R10G10B10A2_UNORM
|
||||
: DXGI_FORMAT_R10G10B10A2_UINT;
|
||||
case eSpecial_R11G11B10: return DXGI_FORMAT_R11G11B10_FLOAT;
|
||||
case eSpecial_R5G6B5: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B5G6R5_UNORM;
|
||||
case eSpecial_R5G5B5A1: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B5G5R5A1_UNORM;
|
||||
case eSpecial_R9G9B9E5: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
|
||||
case eSpecial_R4G4B4A4: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B4G4R4A4_UNORM;
|
||||
case eSpecial_D24S8: return DXGI_FORMAT_D24_UNORM_S8_UINT;
|
||||
case eSpecial_D32S8: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
|
||||
case eSpecial_S8: return DXGI_FORMAT_R8_UINT;
|
||||
case SpecialFormat::R11G11B10: return DXGI_FORMAT_R11G11B10_FLOAT;
|
||||
case SpecialFormat::R5G6B5: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B5G6R5_UNORM;
|
||||
case SpecialFormat::R5G5B5A1: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B5G5R5A1_UNORM;
|
||||
case SpecialFormat::R9G9B9E5: return DXGI_FORMAT_R9G9B9E5_SHAREDEXP;
|
||||
case SpecialFormat::R4G4B4A4: RDCASSERT(format.bgraOrder); return DXGI_FORMAT_B4G4R4A4_UNORM;
|
||||
case SpecialFormat::D24S8: return DXGI_FORMAT_D24_UNORM_S8_UINT;
|
||||
case SpecialFormat::D32S8: return DXGI_FORMAT_D32_FLOAT_S8X24_UINT;
|
||||
case SpecialFormat::S8: return DXGI_FORMAT_R8_UINT;
|
||||
default:
|
||||
case eSpecial_R4G4:
|
||||
case eSpecial_D16S8:
|
||||
case eSpecial_ETC2:
|
||||
case eSpecial_EAC:
|
||||
case eSpecial_ASTC:
|
||||
case eSpecial_YUV:
|
||||
case SpecialFormat::R4G4:
|
||||
case SpecialFormat::D16S8:
|
||||
case SpecialFormat::ETC2:
|
||||
case SpecialFormat::EAC:
|
||||
case SpecialFormat::ASTC:
|
||||
case SpecialFormat::YUV:
|
||||
RDCERR("Unsupported writing format %u", format.specialFormat);
|
||||
return DXGI_FORMAT_UNKNOWN;
|
||||
}
|
||||
@@ -482,8 +490,8 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R32G32B32A32_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R32G32B32A32_SINT;
|
||||
case CompType::UInt: return DXGI_FORMAT_R32G32B32A32_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R32G32B32A32_SINT;
|
||||
default: return DXGI_FORMAT_R32G32B32A32_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -491,10 +499,10 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R16G16B16A16_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R16G16B16A16_SINT;
|
||||
case eCompType_UNorm: return DXGI_FORMAT_R16G16B16A16_UNORM;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R16G16B16A16_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R16G16B16A16_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R16G16B16A16_SINT;
|
||||
case CompType::UNorm: return DXGI_FORMAT_R16G16B16A16_UNORM;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R16G16B16A16_SNORM;
|
||||
default: return DXGI_FORMAT_R16G16B16A16_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -502,11 +510,11 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R8G8B8A8_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R8G8B8A8_SINT;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R8G8B8A8_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R8G8B8A8_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R8G8B8A8_SINT;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R8G8B8A8_SNORM;
|
||||
default:
|
||||
case eCompType_UNorm:
|
||||
case CompType::UNorm:
|
||||
if(format.srgbCorrected)
|
||||
{
|
||||
if(format.bgraOrder)
|
||||
@@ -532,8 +540,8 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R32G32B32_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R32G32B32_SINT;
|
||||
case CompType::UInt: return DXGI_FORMAT_R32G32B32_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R32G32B32_SINT;
|
||||
default: return DXGI_FORMAT_R32G32B32_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -546,8 +554,8 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R32G32_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R32G32_SINT;
|
||||
case CompType::UInt: return DXGI_FORMAT_R32G32_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R32G32_SINT;
|
||||
default: return DXGI_FORMAT_R32G32_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -555,10 +563,10 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R16G16_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R16G16_SINT;
|
||||
case eCompType_UNorm: return DXGI_FORMAT_R16G16_UNORM;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R16G16_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R16G16_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R16G16_SINT;
|
||||
case CompType::UNorm: return DXGI_FORMAT_R16G16_UNORM;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R16G16_SNORM;
|
||||
default: return DXGI_FORMAT_R16G16_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -566,9 +574,9 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R8G8_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R8G8_SINT;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R8G8_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R8G8_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R8G8_SINT;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R8G8_SNORM;
|
||||
default: return DXGI_FORMAT_R8G8_UNORM;
|
||||
}
|
||||
}
|
||||
@@ -581,8 +589,8 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R32_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R32_SINT;
|
||||
case CompType::UInt: return DXGI_FORMAT_R32_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R32_SINT;
|
||||
default: return DXGI_FORMAT_R32_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -590,10 +598,10 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R16_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R16_SINT;
|
||||
case eCompType_UNorm: return DXGI_FORMAT_R16_UNORM;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R16_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R16_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R16_SINT;
|
||||
case CompType::UNorm: return DXGI_FORMAT_R16_UNORM;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R16_SNORM;
|
||||
default: return DXGI_FORMAT_R16_FLOAT;
|
||||
}
|
||||
}
|
||||
@@ -601,9 +609,9 @@ DXGI_FORMAT ResourceFormat2DXGIFormat(ResourceFormat format)
|
||||
{
|
||||
switch(format.compType)
|
||||
{
|
||||
case eCompType_UInt: return DXGI_FORMAT_R8_UINT;
|
||||
case eCompType_SInt: return DXGI_FORMAT_R8_SINT;
|
||||
case eCompType_SNorm: return DXGI_FORMAT_R8_SNORM;
|
||||
case CompType::UInt: return DXGI_FORMAT_R8_UINT;
|
||||
case CompType::SInt: return DXGI_FORMAT_R8_SINT;
|
||||
case CompType::SNorm: return DXGI_FORMAT_R8_SNORM;
|
||||
default: return DXGI_FORMAT_R8_UNORM;
|
||||
}
|
||||
}
|
||||
@@ -647,17 +655,17 @@ bool write_dds_to_file(FILE *f, const dds_data &data)
|
||||
{
|
||||
switch(data.format.specialFormat)
|
||||
{
|
||||
case eSpecial_BC1:
|
||||
case eSpecial_BC2:
|
||||
case eSpecial_BC3:
|
||||
case eSpecial_BC4:
|
||||
case eSpecial_BC5:
|
||||
case eSpecial_BC6:
|
||||
case eSpecial_BC7: blockFormat = true; break;
|
||||
case eSpecial_ETC2:
|
||||
case eSpecial_EAC:
|
||||
case eSpecial_ASTC:
|
||||
case eSpecial_YUV:
|
||||
case SpecialFormat::BC1:
|
||||
case SpecialFormat::BC2:
|
||||
case SpecialFormat::BC3:
|
||||
case SpecialFormat::BC4:
|
||||
case SpecialFormat::BC5:
|
||||
case SpecialFormat::BC6:
|
||||
case SpecialFormat::BC7: blockFormat = true; break;
|
||||
case SpecialFormat::ETC2:
|
||||
case SpecialFormat::EAC:
|
||||
case SpecialFormat::ASTC:
|
||||
case SpecialFormat::YUV:
|
||||
RDCERR("Unsupported file format, %u", data.format.specialFormat);
|
||||
return false;
|
||||
default: break;
|
||||
@@ -702,28 +710,28 @@ bool write_dds_to_file(FILE *f, const dds_data &data)
|
||||
|
||||
if(blockFormat)
|
||||
{
|
||||
int blockSize =
|
||||
(data.format.specialFormat == eSpecial_BC1 || data.format.specialFormat == eSpecial_BC4)
|
||||
? 8
|
||||
: 16;
|
||||
int blockSize = (data.format.specialFormat == SpecialFormat::BC1 ||
|
||||
data.format.specialFormat == SpecialFormat::BC4)
|
||||
? 8
|
||||
: 16;
|
||||
header.dwPitchOrLinearSize = RDCMAX(1U, ((header.dwWidth + 3) / 4)) * blockSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(data.format.specialFormat)
|
||||
{
|
||||
case eSpecial_S8: bytesPerPixel = 1; break;
|
||||
case eSpecial_R10G10B10A2:
|
||||
case eSpecial_R9G9B9E5:
|
||||
case eSpecial_R11G11B10:
|
||||
case eSpecial_D24S8: bytesPerPixel = 4; break;
|
||||
case eSpecial_R5G6B5:
|
||||
case eSpecial_R5G5B5A1:
|
||||
case eSpecial_R4G4B4A4: bytesPerPixel = 2; break;
|
||||
case eSpecial_D32S8: bytesPerPixel = 8; break;
|
||||
case eSpecial_D16S8:
|
||||
case eSpecial_YUV:
|
||||
case eSpecial_R4G4:
|
||||
case SpecialFormat::S8: bytesPerPixel = 1; break;
|
||||
case SpecialFormat::R10G10B10A2:
|
||||
case SpecialFormat::R9G9B9E5:
|
||||
case SpecialFormat::R11G11B10:
|
||||
case SpecialFormat::D24S8: bytesPerPixel = 4; break;
|
||||
case SpecialFormat::R5G6B5:
|
||||
case SpecialFormat::R5G5B5A1:
|
||||
case SpecialFormat::R4G4B4A4: bytesPerPixel = 2; break;
|
||||
case SpecialFormat::D32S8: bytesPerPixel = 8; break;
|
||||
case SpecialFormat::D16S8:
|
||||
case SpecialFormat::YUV:
|
||||
case SpecialFormat::R4G4:
|
||||
RDCERR("Unsupported file format %u", data.format.specialFormat);
|
||||
return false;
|
||||
default: bytesPerPixel = data.format.compCount * data.format.compByteWidth;
|
||||
@@ -735,7 +743,7 @@ bool write_dds_to_file(FILE *f, const dds_data &data)
|
||||
// special case a couple of formats to write out non-DX10 style, for
|
||||
// backwards compatibility
|
||||
if(data.format.compByteWidth == 1 && data.format.compCount == 4 &&
|
||||
data.format.compType == eCompType_UNorm)
|
||||
data.format.compType == CompType::UNorm)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_RGBA;
|
||||
header.ddspf.dwRGBBitCount = 32;
|
||||
@@ -747,37 +755,37 @@ bool write_dds_to_file(FILE *f, const dds_data &data)
|
||||
if(data.format.bgraOrder)
|
||||
std::swap(header.ddspf.dwRBitMask, header.ddspf.dwBBitMask);
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC1)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC1)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('D', 'X', 'T', '1');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC2)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC2)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('D', 'X', 'T', '3');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC3)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC3)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('D', 'X', 'T', '5');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC4 && data.format.compType == eCompType_UNorm)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC4 && data.format.compType == CompType::UNorm)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('B', 'C', '4', 'U');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC4 && data.format.compType == eCompType_SNorm)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC4 && data.format.compType == CompType::SNorm)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('B', 'C', '4', 'S');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC5 && data.format.compType == eCompType_UNorm)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC5 && data.format.compType == CompType::UNorm)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('A', 'T', 'I', '2');
|
||||
}
|
||||
else if(data.format.specialFormat == eSpecial_BC5 && data.format.compType == eCompType_SNorm)
|
||||
else if(data.format.specialFormat == SpecialFormat::BC5 && data.format.compType == CompType::SNorm)
|
||||
{
|
||||
header.ddspf.dwFlags = DDPF_FOURCC;
|
||||
header.ddspf.dwFourCC = MAKE_FOURCC('B', 'C', '5', 'S');
|
||||
@@ -819,8 +827,8 @@ bool write_dds_to_file(FILE *f, const dds_data &data)
|
||||
{
|
||||
numRows = RDCMAX(1, numRows / 4);
|
||||
|
||||
int blockSize = (data.format.specialFormat == eSpecial_BC1 ||
|
||||
data.format.specialFormat == eSpecial_BC4)
|
||||
int blockSize = (data.format.specialFormat == SpecialFormat::BC1 ||
|
||||
data.format.specialFormat == SpecialFormat::BC4)
|
||||
? 8
|
||||
: 16;
|
||||
|
||||
@@ -897,7 +905,7 @@ dds_data load_dds_from_file(FILE *f)
|
||||
if(dx10Header)
|
||||
{
|
||||
ret.format = DXGIFormat2ResourceFormat(headerDXT10.dxgiFormat);
|
||||
if(ret.format.special && ret.format.specialFormat == eSpecial_Unknown)
|
||||
if(ret.format.special && ret.format.specialFormat == SpecialFormat::Unknown)
|
||||
{
|
||||
RDCWARN("Unsupported DXGI_FORMAT: %u", (uint32_t)headerDXT10.dxgiFormat);
|
||||
return error;
|
||||
@@ -958,7 +966,7 @@ dds_data load_dds_from_file(FILE *f)
|
||||
|
||||
ret.format.compByteWidth = 1;
|
||||
ret.format.compCount = header.ddspf.dwRGBBitCount / 8;
|
||||
ret.format.compType = eCompType_UNorm;
|
||||
ret.format.compType = CompType::UNorm;
|
||||
ret.format.special = false;
|
||||
|
||||
if(header.ddspf.dwBBitMask < header.ddspf.dwRBitMask)
|
||||
@@ -968,18 +976,18 @@ dds_data load_dds_from_file(FILE *f)
|
||||
uint32_t bytesPerPixel = 1;
|
||||
switch(ret.format.specialFormat)
|
||||
{
|
||||
case eSpecial_S8: bytesPerPixel = 1; break;
|
||||
case eSpecial_R10G10B10A2:
|
||||
case eSpecial_R9G9B9E5:
|
||||
case eSpecial_R11G11B10:
|
||||
case eSpecial_D24S8: bytesPerPixel = 4; break;
|
||||
case eSpecial_R5G6B5:
|
||||
case eSpecial_R5G5B5A1:
|
||||
case eSpecial_R4G4B4A4: bytesPerPixel = 2; break;
|
||||
case eSpecial_D32S8: bytesPerPixel = 8; break;
|
||||
case eSpecial_D16S8:
|
||||
case eSpecial_YUV:
|
||||
case eSpecial_R4G4:
|
||||
case SpecialFormat::S8: bytesPerPixel = 1; break;
|
||||
case SpecialFormat::R10G10B10A2:
|
||||
case SpecialFormat::R9G9B9E5:
|
||||
case SpecialFormat::R11G11B10:
|
||||
case SpecialFormat::D24S8: bytesPerPixel = 4; break;
|
||||
case SpecialFormat::R5G6B5:
|
||||
case SpecialFormat::R5G5B5A1:
|
||||
case SpecialFormat::R4G4B4A4: bytesPerPixel = 2; break;
|
||||
case SpecialFormat::D32S8: bytesPerPixel = 8; break;
|
||||
case SpecialFormat::D16S8:
|
||||
case SpecialFormat::YUV:
|
||||
case SpecialFormat::R4G4:
|
||||
RDCERR("Unsupported file format %u", ret.format.specialFormat);
|
||||
return error;
|
||||
default: bytesPerPixel = ret.format.compCount * ret.format.compByteWidth;
|
||||
@@ -991,17 +999,17 @@ dds_data load_dds_from_file(FILE *f)
|
||||
{
|
||||
switch(ret.format.specialFormat)
|
||||
{
|
||||
case eSpecial_BC1:
|
||||
case eSpecial_BC2:
|
||||
case eSpecial_BC3:
|
||||
case eSpecial_BC4:
|
||||
case eSpecial_BC5:
|
||||
case eSpecial_BC6:
|
||||
case eSpecial_BC7: blockFormat = true; break;
|
||||
case eSpecial_ETC2:
|
||||
case eSpecial_EAC:
|
||||
case eSpecial_ASTC:
|
||||
case eSpecial_YUV:
|
||||
case SpecialFormat::BC1:
|
||||
case SpecialFormat::BC2:
|
||||
case SpecialFormat::BC3:
|
||||
case SpecialFormat::BC4:
|
||||
case SpecialFormat::BC5:
|
||||
case SpecialFormat::BC6:
|
||||
case SpecialFormat::BC7: blockFormat = true; break;
|
||||
case SpecialFormat::ETC2:
|
||||
case SpecialFormat::EAC:
|
||||
case SpecialFormat::ASTC:
|
||||
case SpecialFormat::YUV:
|
||||
RDCERR("Unsupported file format, %u", ret.format.specialFormat);
|
||||
return error;
|
||||
default: break;
|
||||
@@ -1026,10 +1034,10 @@ dds_data load_dds_from_file(FILE *f)
|
||||
{
|
||||
numRows = RDCMAX(1, numRows / 4);
|
||||
|
||||
int blockSize =
|
||||
(ret.format.specialFormat == eSpecial_BC1 || ret.format.specialFormat == eSpecial_BC4)
|
||||
? 8
|
||||
: 16;
|
||||
int blockSize = (ret.format.specialFormat == SpecialFormat::BC1 ||
|
||||
ret.format.specialFormat == SpecialFormat::BC4)
|
||||
? 8
|
||||
: 16;
|
||||
|
||||
pitch = RDCMAX(blockSize, (((rowlen + 3) / 4)) * blockSize);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user