namespace Ryujinx.Graphics.GAL
{
public enum Format
R8Unorm,
R8Snorm,
R8Uint,
R8Sint,
R16Float,
R16Unorm,
R16Snorm,
R16Uint,
R16Sint,
R32Float,
R32Uint,
R32Sint,
R8G8Unorm,
R8G8Snorm,
R8G8Uint,
R8G8Sint,
R16G16Float,
R16G16Unorm,
R16G16Snorm,
R16G16Uint,
R16G16Sint,
R32G32Float,
R32G32Uint,
R32G32Sint,
R8G8B8Unorm,
R8G8B8Snorm,
R8G8B8Uint,
R8G8B8Sint,
R16G16B16Float,
R16G16B16Unorm,
R16G16B16Snorm,
R16G16B16Uint,
R16G16B16Sint,
R32G32B32Float,
R32G32B32Uint,
R32G32B32Sint,
R8G8B8A8Unorm,
R8G8B8A8Snorm,
R8G8B8A8Uint,
R8G8B8A8Sint,
R16G16B16A16Float,
R16G16B16A16Unorm,
R16G16B16A16Snorm,
R16G16B16A16Uint,
R16G16B16A16Sint,
R32G32B32A32Float,
R32G32B32A32Uint,
R32G32B32A32Sint,
S8Uint,
D16Unorm,
D24X8Unorm,
D32Float,
D24UnormS8Uint,
D32FloatS8Uint,
R8G8B8X8Srgb,
R8G8B8A8Srgb,
R4G4B4A4Unorm,
R5G5B5X1Unorm,
R5G5B5A1Unorm,
R5G6B5Unorm,
R10G10B10A2Unorm,
R10G10B10A2Uint,
R11G11B10Float,
R9G9B9E5Float,
Bc1RgbUnorm,
Bc1RgbaUnorm,
Bc2Unorm,
Bc3Unorm,
Bc1RgbSrgb,
Bc1RgbaSrgb,
Bc2Srgb,
Bc3Srgb,
Bc4Unorm,
Bc4Snorm,
Bc5Unorm,
Bc5Snorm,
Bc7Unorm,
Bc7Srgb,
Bc6HSfloat,
Bc6HUfloat,
R8Uscaled,
R8Sscaled,
R16Uscaled,
R16Sscaled,
R32Uscaled,
R32Sscaled,
R8G8Uscaled,
R8G8Sscaled,
R16G16Uscaled,
R16G16Sscaled,
R32G32Uscaled,
R32G32Sscaled,
R8G8B8Uscaled,
R8G8B8Sscaled,
R16G16B16Uscaled,
R16G16B16Sscaled,
R32G32B32Uscaled,
R32G32B32Sscaled,
R8G8B8A8Uscaled,
R8G8B8A8Sscaled,
R16G16B16A16Uscaled,
R16G16B16A16Sscaled,
R32G32B32A32Uscaled,
R32G32B32A32Sscaled,
R10G10B10A2Snorm,
R10G10B10A2Sint,
R10G10B10A2Uscaled,
R10G10B10A2Sscaled,
R8G8B8X8Unorm,
R8G8B8X8Snorm,
R8G8B8X8Uint,
R8G8B8X8Sint,
R16G16B16X16Float,
R16G16B16X16Unorm,
R16G16B16X16Snorm,
R16G16B16X16Uint,
R16G16B16X16Sint,
R32G32B32X32Float,
R32G32B32X32Uint,
R32G32B32X32Sint,
Astc4x4Unorm,
Astc5x4Unorm,
Astc5x5Unorm,
Astc6x5Unorm,
Astc6x6Unorm,
Astc8x5Unorm,
Astc8x6Unorm,
Astc8x8Unorm,
Astc10x5Unorm,
Astc10x6Unorm,
Astc10x8Unorm,
Astc10x10Unorm,
Astc12x10Unorm,
Astc12x12Unorm,
Astc4x4Srgb,
Astc5x4Srgb,
Astc5x5Srgb,
Astc6x5Srgb,
Astc6x6Srgb,
Astc8x5Srgb,
Astc8x6Srgb,
Astc8x8Srgb,
Astc10x5Srgb,
Astc10x6Srgb,
Astc10x8Srgb,
Astc10x10Srgb,
Astc12x10Srgb,
Astc12x12Srgb,
B5G6R5Unorm,
B5G5R5X1Unorm,
B5G5R5A1Unorm,
A1B5G5R5Unorm,
B8G8R8X8Unorm,
B8G8R8A8Unorm,
B8G8R8X8Srgb,
B8G8R8A8Srgb
}
public static class FormatExtensions
public static bool IsAstc(this Format format)
return format.IsAstcUnorm() || format.IsAstcSrgb();
public static bool IsAstcUnorm(this Format format)
switch (format)
case Format.Astc4x4Unorm:
case Format.Astc5x4Unorm:
case Format.Astc5x5Unorm:
case Format.Astc6x5Unorm:
case Format.Astc6x6Unorm:
case Format.Astc8x5Unorm:
case Format.Astc8x6Unorm:
case Format.Astc8x8Unorm:
case Format.Astc10x5Unorm:
case Format.Astc10x6Unorm:
case Format.Astc10x8Unorm:
case Format.Astc10x10Unorm:
case Format.Astc12x10Unorm:
case Format.Astc12x12Unorm:
return true;
return false;
public static bool IsAstcSrgb(this Format format)
case Format.Astc4x4Srgb:
case Format.Astc5x4Srgb:
case Format.Astc5x5Srgb:
case Format.Astc6x5Srgb:
case Format.Astc6x6Srgb:
case Format.Astc8x5Srgb:
case Format.Astc8x6Srgb:
case Format.Astc8x8Srgb:
case Format.Astc10x5Srgb:
case Format.Astc10x6Srgb:
case Format.Astc10x8Srgb:
case Format.Astc10x10Srgb:
case Format.Astc12x10Srgb:
case Format.Astc12x12Srgb: