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.