TextureFormat

Type Alias TextureFormat 

Source
pub type TextureFormat = TextureFormat;
Expand description

Texture format.

Aliased Type§

#[repr(C)]
pub enum TextureFormat {
Show 77 variants R8Unorm, R8Snorm, R8Uint, R8Sint, R16Uint, R16Sint, R16Unorm, R16Snorm, R16Float, Rg8Unorm, Rg8Snorm, Rg8Uint, Rg8Sint, R32Uint, R32Sint, R32Float, Rg16Uint, Rg16Sint, Rg16Unorm, Rg16Snorm, Rg16Float, Rgba8Unorm, Rgba8UnormSrgb, Rgba8Snorm, Rgba8Uint, Rgba8Sint, Bgra8Unorm, Bgra8UnormSrgb, Rgb9e5Ufloat, Rgb10a2Uint, Rgb10a2Unorm, Rg11b10Ufloat, R64Uint, Rg32Uint, Rg32Sint, Rg32Float, Rgba16Uint, Rgba16Sint, Rgba16Unorm, Rgba16Snorm, Rgba16Float, Rgba32Uint, Rgba32Sint, Rgba32Float, Stencil8, Depth16Unorm, Depth24Plus, Depth24PlusStencil8, Depth32Float, Depth32FloatStencil8, NV12, P010, Bc1RgbaUnorm, Bc1RgbaUnormSrgb, Bc2RgbaUnorm, Bc2RgbaUnormSrgb, Bc3RgbaUnorm, Bc3RgbaUnormSrgb, Bc4RUnorm, Bc4RSnorm, Bc5RgUnorm, Bc5RgSnorm, Bc6hRgbUfloat, Bc6hRgbFloat, Bc7RgbaUnorm, Bc7RgbaUnormSrgb, Etc2Rgb8Unorm, Etc2Rgb8UnormSrgb, Etc2Rgb8A1Unorm, Etc2Rgb8A1UnormSrgb, Etc2Rgba8Unorm, Etc2Rgba8UnormSrgb, EacR11Unorm, EacR11Snorm, EacRg11Unorm, EacRg11Snorm, Astc { block: AstcBlock, channel: AstcChannel, },
}

Variants§

§

R8Unorm

Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.

§

R8Snorm

Red channel only. 8 bit integer per channel. [−127, 127] converted to/from float [−1, 1] in shader.

§

R8Uint

Red channel only. 8 bit integer per channel. Unsigned in shader.

§

R8Sint

Red channel only. 8 bit integer per channel. Signed in shader.

§

R16Uint

Red channel only. 16 bit integer per channel. Unsigned in shader.

§

R16Sint

Red channel only. 16 bit integer per channel. Signed in shader.

§

R16Unorm

Red channel only. 16 bit integer per channel. [0, 65535] converted to/from float [0, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

R16Snorm

Red channel only. 16 bit integer per channel. [−32767, 32767] converted to/from float [−1, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

R16Float

Red channel only. 16 bit float per channel. Float in shader.

§

Rg8Unorm

Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.

§

Rg8Snorm

Red and green channels. 8 bit integer per channel. [−127, 127] converted to/from float [−1, 1] in shader.

§

Rg8Uint

Red and green channels. 8 bit integer per channel. Unsigned in shader.

§

Rg8Sint

Red and green channels. 8 bit integer per channel. Signed in shader.

§

R32Uint

Red channel only. 32 bit integer per channel. Unsigned in shader.

§

R32Sint

Red channel only. 32 bit integer per channel. Signed in shader.

§

R32Float

Red channel only. 32 bit float per channel. Float in shader.

§

Rg16Uint

Red and green channels. 16 bit integer per channel. Unsigned in shader.

§

Rg16Sint

Red and green channels. 16 bit integer per channel. Signed in shader.

§

Rg16Unorm

Red and green channels. 16 bit integer per channel. [0, 65535] converted to/from float [0, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

Rg16Snorm

Red and green channels. 16 bit integer per channel. [−32767, 32767] converted to/from float [−1, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

Rg16Float

Red and green channels. 16 bit float per channel. Float in shader.

§

Rgba8Unorm

Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.

§

Rgba8UnormSrgb

Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.

§

Rgba8Snorm

Red, green, blue, and alpha channels. 8 bit integer per channel. [−127, 127] converted to/from float [−1, 1] in shader.

§

Rgba8Uint

Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.

§

Rgba8Sint

Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.

§

Bgra8Unorm

Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.

§

Bgra8UnormSrgb

Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.

§

Rgb9e5Ufloat

Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent

§

Rgb10a2Uint

Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. Unsigned in shader.

§

Rgb10a2Unorm

Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.

§

Rg11b10Ufloat

Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.

§

R64Uint

Red channel only. 64 bit integer per channel. Unsigned in shader.

[Features::TEXTURE_INT64_ATOMIC] must be enabled to use this texture format.

§

Rg32Uint

Red and green channels. 32 bit integer per channel. Unsigned in shader.

§

Rg32Sint

Red and green channels. 32 bit integer per channel. Signed in shader.

§

Rg32Float

Red and green channels. 32 bit float per channel. Float in shader.

§

Rgba16Uint

Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.

§

Rgba16Sint

Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.

§

Rgba16Unorm

Red, green, blue, and alpha channels. 16 bit integer per channel. [0, 65535] converted to/from float [0, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

Rgba16Snorm

Red, green, blue, and alpha. 16 bit integer per channel. [−32767, 32767] converted to/from float [−1, 1] in shader.

[Features::TEXTURE_FORMAT_16BIT_NORM] must be enabled to use this texture format.

§

Rgba16Float

Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.

§

Rgba32Uint

Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.

§

Rgba32Sint

Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.

§

Rgba32Float

Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.

§

Stencil8

Stencil format with 8 bit integer stencil.

§

Depth16Unorm

Special depth format with 16 bit integer depth.

§

Depth24Plus

Special depth format with at least 24 bit integer depth.

§

Depth24PlusStencil8

Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.

§

Depth32Float

Special depth format with 32 bit floating point depth.

§

Depth32FloatStencil8

Special depth/stencil format with 32 bit floating point depth and 8 bits integer stencil.

[Features::DEPTH32FLOAT_STENCIL8] must be enabled to use this texture format.

§

NV12

YUV 4:2:0 chroma subsampled format.

Contains two planes:

  • 0: Single 8 bit channel luminance.
  • 1: Dual 8 bit channel chrominance at half width and half height.

Valid view formats for luminance are [TextureFormat::R8Unorm].

Valid view formats for chrominance are [TextureFormat::Rg8Unorm].

Width and height must be even.

[Features::TEXTURE_FORMAT_NV12] must be enabled to use this texture format.

§

P010

YUV 4:2:0 chroma subsampled format.

Contains two planes:

  • 0: Single 16 bit channel luminance, of which only the high 10 bits are used.
  • 1: Dual 16 bit channel chrominance at half width and half height, of which only the high 10 bits are used.

Valid view formats for luminance are [TextureFormat::R16Unorm].

Valid view formats for chrominance are [TextureFormat::Rg16Unorm].

Width and height must be even.

[Features::TEXTURE_FORMAT_P010] must be enabled to use this texture format.

§

Bc1RgbaUnorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. [0, 63] ([0, 1] for alpha) converted to/from float [0, 1] in shader.

Also known as DXT1.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc1RgbaUnormSrgb

4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Srgb-color [0, 63] ([0, 1] for alpha) converted to/from linear-color float [0, 1] in shader.

Also known as DXT1.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc2RgbaUnorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. [0, 63] ([0, 15] for alpha) converted to/from float [0, 1] in shader.

Also known as DXT3.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc2RgbaUnormSrgb

4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Srgb-color [0, 63] ([0, 255] for alpha) converted to/from linear-color float [0, 1] in shader.

Also known as DXT3.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc3RgbaUnorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. [0, 63] ([0, 255] for alpha) converted to/from float [0, 1] in shader.

Also known as DXT5.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc3RgbaUnormSrgb

4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Srgb-color [0, 63] ([0, 255] for alpha) converted to/from linear-color float [0, 1] in shader.

Also known as DXT5.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc4RUnorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. [0, 255] converted to/from float [0, 1] in shader.

Also known as RGTC1.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc4RSnorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. [−127, 127] converted to/from float [−1, 1] in shader.

Also known as RGTC1.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc5RgUnorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. [0, 255] converted to/from float [0, 1] in shader.

Also known as RGTC2.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc5RgSnorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. [−127, 127] converted to/from float [−1, 1] in shader.

Also known as RGTC2.

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc6hRgbUfloat

4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader.

Also known as BPTC (float).

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc6hRgbFloat

4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader.

Also known as BPTC (float).

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc7RgbaUnorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. [0, 255] converted to/from float [0, 1] in shader.

Also known as BPTC (unorm).

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Bc7RgbaUnormSrgb

4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.

Also known as BPTC (unorm).

[Features::TEXTURE_COMPRESSION_BC] must be enabled to use this texture format. [Features::TEXTURE_COMPRESSION_BC_SLICED_3D] must be enabled to use this texture format with 3D dimension.

§

Etc2Rgb8Unorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB. [0, 255] converted to/from float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Etc2Rgb8UnormSrgb

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Etc2Rgb8A1Unorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha. [0, 255] ([0, 1] for alpha) converted to/from float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Etc2Rgb8A1UnormSrgb

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha. Srgb-color [0, 255] ([0, 1] for alpha) converted to/from linear-color float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Etc2Rgba8Unorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha. [0, 255] converted to/from float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Etc2Rgba8UnormSrgb

4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

EacR11Unorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R. [0, 255] converted to/from float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

EacR11Snorm

4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R. [−127, 127] converted to/from float [−1, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

EacRg11Unorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G. [0, 255] converted to/from float [0, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

EacRg11Snorm

4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G. [−127, 127] converted to/from float [−1, 1] in shader.

[Features::TEXTURE_COMPRESSION_ETC2] must be enabled to use this texture format.

§

Astc

block compressed texture. 16 bytes per block.

Features TEXTURE_COMPRESSION_ASTC or TEXTURE_COMPRESSION_ASTC_HDR must be enabled to use this texture format.

Fields

§block: AstcBlock

compressed block dimensions

§channel: AstcChannel

ASTC RGBA channel