Skip to content

TSdlGpuTextureFormat

Specifies the pixel format of a texture.

Texture format support varies depending on driver, hardware, and usage flags. In general, you should use TSdlGpuDevice.SupportedTextureFormats to query if a format is supported before using it. However, there are a few guaranteed formats.

For Sampler usage, the following formats are universally supported:

  • R8G8B8A8UNorm
  • B8G8R8A8UNorm
  • R8UNorm
  • R8SNorm
  • R8G8UNorm
  • R8G8SNorm
  • R8G8B8A8SNorm
  • R16Float
  • R16G16Float
  • R16G16B16A16Float
  • R32Float
  • R32G32Float
  • R32G32B32A32Float
  • R11G11B10Float
  • R8G8B8A8UNormSrgb
  • B8G8R8A8UNormSrgb
  • D16UNorm

For ColorTarget usage, the following formats are universally supported:

  • R8G8B8A8UNorm
  • B8G8R8A8UNorm
  • R8UNorm
  • R16Float
  • R16G16Float
  • R16G16B16A16Float
  • R32Float
  • R32G32Float
  • R32G32B32A32Float
  • R11G11B10Float
  • R8UInt
  • R8G8UInt
  • R8G8B8A8UInt
  • R16UInt
  • R16G16UInt
  • R16G16B16A16UInt
  • R8Int
  • R8G8Int
  • R8G8B8A8Int
  • R16Int
  • R16G16Int
  • R16G16B16A16Int
  • R8G8B8A8UNormSrgb
  • B8G8R8A8UNormSrgb

For Storage usages, the following formats are universally supported:

  • R8G8B8A8UNorm
  • R8G8B8A8SNorm
  • R16G16B16A16Float
  • R32Float
  • R32G32Float
  • R32G32B32A32Float
  • R8G8B8A8UInt
  • R16G16B16A16UInt
  • R8G8B8A8OInt
  • R16G16B16A16Int

For DepthStencilTarget usage, the following formats are universally supported:

  • D16UNorm
  • Either (but not necessarily both!) D24UNorm or D32Float
  • Either (but not necessarily both!) D24UNormS8UInt or D32FloatS8UInt

Unless D16UNorm is sufficient for your purposes, always check which of D24/D32 is supported before creating a depth-stencil texture!

Definition

Unit: Neslib.Sdl3.Gpu

type TSdlGpuTextureFormat = (Invalid, A8UNorm, R8UNorm, R8G8UNorm, R8G8B8A8UNorm, R16UNorm, R16G16UNorm, R16G16B16A16UNorm, R10G10B10A2UNorm, B5G6R5UNorm, B5G5R5A1UNorm, B4G4R4A4UNorm, B8G8R8A8UNorm, BC1RgbaUNorm, BC2RgbaUNorm...)

See Also

Enumeration Values

Invalid = SDL_GPU_TEXTUREFORMAT_INVALID


A8UNorm = SDL_GPU_TEXTUREFORMAT_A8_UNORM


R8UNorm = SDL_GPU_TEXTUREFORMAT_R8_UNORM


R8G8UNorm = SDL_GPU_TEXTUREFORMAT_R8G8_UNORM


R8G8B8A8UNorm = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM


R16UNorm = SDL_GPU_TEXTUREFORMAT_R16_UNORM


R16G16UNorm = SDL_GPU_TEXTUREFORMAT_R16G16_UNORM


R16G16B16A16UNorm = SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM


R10G10B10A2UNorm = SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM


B5G6R5UNorm = SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM


B5G5R5A1UNorm = SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM


B4G4R4A4UNorm = SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM


B8G8R8A8UNorm = SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM


BC1RgbaUNorm = SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM


BC2RgbaUNorm = SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM


BC3RgbaUNorm = SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM


BC4RUNorm = SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM


BC5RGUNorm = SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM


BC7RgbaUNorm = SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM


BC6HRgbFloat = SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT


BC6HRgbUFloat = SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT


R8SNorm = SDL_GPU_TEXTUREFORMAT_R8_SNORM


R8G8SNorm = SDL_GPU_TEXTUREFORMAT_R8G8_SNORM


R8G8B8A8SNorm = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM


R16SNorm = SDL_GPU_TEXTUREFORMAT_R16_SNORM


R16G16SNorm = SDL_GPU_TEXTUREFORMAT_R16G16_SNORM


R16G16B16A16SNorm = SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM


R16Float = SDL_GPU_TEXTUREFORMAT_R16_FLOAT


R16G16Float = SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT


R16G16B16A16Float = SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT


R32Float = SDL_GPU_TEXTUREFORMAT_R32_FLOAT


R32G32Float = SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT


R32G32B32A32Float = SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT


R11G11B10UFloat = SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT


R8UInt = SDL_GPU_TEXTUREFORMAT_R8_UINT


R8G8UInt = SDL_GPU_TEXTUREFORMAT_R8G8_UINT


R8G8B8A8UInt = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT


R16UInt = SDL_GPU_TEXTUREFORMAT_R16_UINT


R16G16UInt = SDL_GPU_TEXTUREFORMAT_R16G16_UINT


R16G16B16A16UInt = SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT


R32UInt = SDL_GPU_TEXTUREFORMAT_R32_UINT


R32G32UInt = SDL_GPU_TEXTUREFORMAT_R32G32_UINT


R32G32B32A32UInt = SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT


R8Int = SDL_GPU_TEXTUREFORMAT_R8_INT


R8G8Int = SDL_GPU_TEXTUREFORMAT_R8G8_INT


R8G8B8A8Int = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT


R16Int = SDL_GPU_TEXTUREFORMAT_R16_INT


R16G16Int = SDL_GPU_TEXTUREFORMAT_R16G16_INT


R16G16B16A16Int = SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT


R32Int = SDL_GPU_TEXTUREFORMAT_R32_INT


R32G32Int = SDL_GPU_TEXTUREFORMAT_R32G32_INT


R32G32B32A32Int = SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT


R8G8B8A8UNormSrgb = SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB


B8G8R8A8UNormSrgb = SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB


BC1RgbaUNormSrgb = SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB


BC2RgbaUNormSrgb = SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB


BC3RgbaUNormSrgb = SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB


BC7RgbaUNormSrgb = SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB


D16UNorm = SDL_GPU_TEXTUREFORMAT_D16_UNORM


D24UNorm = SDL_GPU_TEXTUREFORMAT_D24_UNORM


D32Float = SDL_GPU_TEXTUREFORMAT_D32_FLOAT


D24UNormS8UInt = SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT


D32FloatS8UInt = SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT


Astc4x4UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM


Astc5x4UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM


Astc5x5UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM


Astc6x5UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM


Astc6x6UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM


Astc8x5UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM


Astc8x6UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM


Astc8x8UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM


Astc10x5UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM


Astc10x6UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM


Astc10x8UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM


Astc10x10UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM


Astc12x10UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM


Astc12x12UNorm = SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM


Astc4x4UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB


Astc5x4UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB


Astc5x5UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB


Astc6x5UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB


Astc6x6UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB


Astc8x5UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB


Astc8x6UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB


Astc8x8UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB


Astc10x5UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB


Astc10x6UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB


Astc10x8UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB


Astc10x10UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB


Astc12x10UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB


Astc12x12UNormSrgb = SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB


Astc4x4Float = SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT


Astc5x4Float = SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT


Astc5x5Float = SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT


Astc6x5Float = SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT


Astc6x6Float = SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT


Astc8x5Float = SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT


Astc8x6Float = SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT


Astc8x8Float = SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT


Astc10x5Float = SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT


Astc10x6Float = SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT


Astc10x8Float = SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT


Astc10x10Float = SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT


Astc12x10Float = SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT


Astc12x12Float = SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT


Properties

Name Description
TexelBlockSize The texel block size for the texture format.

Methods

Name Description
CalculateSize Calculate the size in bytes of a texture format with dimensions.

Property Descriptions

TexelBlockSize

The texel block size for the texture format.

property TexelBlockSize: Integer read GetTexelBlockSize

Type: Integer

See Also


Method Descriptions

CalculateSize(Integer, Integer, Integer)

Calculate the size in bytes of a texture format with dimensions.

function CalculateSize(const AWidth, AHeight, ADepthOrLayerCount: Integer): Integer; inline

Parameters

AWidth: Integer : Width in pixels.

AHeight: Integer : Height in pixels.

ADepthOrLayerCount: Integer : Depth for 3D textures or layer count otherwise.

Returns

Integer: The size of a texture with this format and dimensions.