Enum bevy::render::render_resource::TextureFormat
[−]#[repr(C)]
pub enum TextureFormat {
Show 72 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,
Rgb10a2Unorm,
Rg11b10Float,
Rg32Uint,
Rg32Sint,
Rg32Float,
Rgba16Uint,
Rgba16Sint,
Rgba16Unorm,
Rgba16Snorm,
Rgba16Float,
Rgba32Uint,
Rgba32Sint,
Rgba32Float,
Depth32Float,
Depth32FloatStencil8,
Depth24Plus,
Depth24PlusStencil8,
Depth24UnormStencil8,
Rgb9e5Ufloat,
Bc1RgbaUnorm,
Bc1RgbaUnormSrgb,
Bc2RgbaUnorm,
Bc2RgbaUnormSrgb,
Bc3RgbaUnorm,
Bc3RgbaUnormSrgb,
Bc4RUnorm,
Bc4RSnorm,
Bc5RgUnorm,
Bc5RgSnorm,
Bc6hRgbUfloat,
Bc6hRgbSfloat,
Bc7RgbaUnorm,
Bc7RgbaUnormSrgb,
Etc2Rgb8Unorm,
Etc2Rgb8UnormSrgb,
Etc2Rgb8A1Unorm,
Etc2Rgb8A1UnormSrgb,
Etc2Rgba8Unorm,
Etc2Rgba8UnormSrgb,
EacR11Unorm,
EacR11Snorm,
EacRg11Unorm,
EacRg11Snorm,
Astc {
block: AstcBlock,
channel: AstcChannel,
},
}
Expand description
Underlying texture data format.
If there is a conversion in the format (such as srgb -> linear), the conversion listed here is for loading from texture in a shader. When writing to the texture, the opposite conversion takes place.
Corresponds to WebGPU GPUTextureFormat
.
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. [0, 65535] 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. [0, 65535] 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.
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.
Rg11b10Float
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.
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. [0, 65535] 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.
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.
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.
Depth24UnormStencil8
Special depth/stencil format with 24 bit integer depth and 8 bits integer stencil.
Rgb9e5Ufloat
Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Bc6hRgbSfloat
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.
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.
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.
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_LDR
or TEXTURE_COMPRESSION_ASTC_HDR
must be enabled to use this texture format.
Implementations
impl TextureFormat
impl TextureFormat
pub fn describe(&self) -> TextureFormatInfo
pub fn describe(&self) -> TextureFormatInfo
Get useful information about the texture format.
Trait Implementations
impl BevyDefault for TextureFormat
impl BevyDefault for TextureFormat
fn bevy_default() -> TextureFormat
impl Clone for TextureFormat
impl Clone for TextureFormat
fn clone(&self) -> TextureFormat
fn clone(&self) -> TextureFormat
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for TextureFormat
impl Debug for TextureFormat
impl From<TextureFormat> for ColorTargetState
impl From<TextureFormat> for ColorTargetState
fn from(format: TextureFormat) -> ColorTargetState
fn from(format: TextureFormat) -> ColorTargetState
Converts to this type from the input type.
impl From<TextureFormat> for FormatAspects
impl From<TextureFormat> for FormatAspects
fn from(format: TextureFormat) -> FormatAspects
fn from(format: TextureFormat) -> FormatAspects
Converts to this type from the input type.
impl Hash for TextureFormat
impl Hash for TextureFormat
impl PartialEq<TextureFormat> for TextureFormat
impl PartialEq<TextureFormat> for TextureFormat
fn eq(&self, other: &TextureFormat) -> bool
fn eq(&self, other: &TextureFormat) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
impl TextureFormatPixelInfo for TextureFormat
impl TextureFormatPixelInfo for TextureFormat
fn pixel_info(&self) -> PixelInfo
fn pixel_info(&self) -> PixelInfo
Returns the pixel information of the format.
fn pixel_size(&self) -> usize
fn pixel_size(&self) -> usize
Returns the size of a pixel of the format.
impl Copy for TextureFormat
impl Eq for TextureFormat
impl StructuralEq for TextureFormat
impl StructuralPartialEq for TextureFormat
Auto Trait Implementations
impl RefUnwindSafe for TextureFormat
impl Send for TextureFormat
impl Sync for TextureFormat
impl Unpin for TextureFormat
impl UnwindSafe for TextureFormat
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more