SDL_GPUTextureUsageFlags

Struct SDL_GPUTextureUsageFlags 

Source
#[repr(transparent)]
pub struct SDL_GPUTextureUsageFlags(pub Uint32);
Expand description

Specifies how a texture is intended to be used by the client.

A texture must have at least one usage flag. Note that some usage flag combinations are invalid.

With regards to compute storage usage, READ | WRITE means that you can have shader A that only writes into the texture and shader B that only reads from the texture and bind the same texture to either shader respectively. SIMULTANEOUS means that you can do reads and writes within the same shader or compute pass. It also implies that atomic ops can be used, since those are read-modify-write operations. If you use SIMULTANEOUS, you are responsible for avoiding data races, as there is no data synchronization within a compute pass. Note that SIMULTANEOUS usage is only supported by a limited number of texture formats.

§Availability

This datatype is available since SDL 3.2.0.

§See also

§Known values (sdl3-sys)

Associated constantGlobal constantDescription
SAMPLERSDL_GPU_TEXTUREUSAGE_SAMPLERTexture supports sampling.
COLOR_TARGETSDL_GPU_TEXTUREUSAGE_COLOR_TARGETTexture is a color render target.
DEPTH_STENCIL_TARGETSDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGETTexture is a depth stencil target.
GRAPHICS_STORAGE_READSDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READTexture supports storage reads in graphics stages.
COMPUTE_STORAGE_READSDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READTexture supports storage reads in the compute stage.
COMPUTE_STORAGE_WRITESDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITETexture supports storage writes in the compute stage.
COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITESDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITETexture supports reads and writes in the same compute shader. This is NOT equivalent to READ

Tuple Fields§

§0: Uint32

Implementations§

Source§

impl SDL_GPUTextureUsageFlags

Source

pub const SAMPLER: Self

Texture supports sampling.

Source

pub const COLOR_TARGET: Self

Texture is a color render target.

Source

pub const DEPTH_STENCIL_TARGET: Self

Texture is a depth stencil target.

Source

pub const GRAPHICS_STORAGE_READ: Self

Texture supports storage reads in graphics stages.

Source

pub const COMPUTE_STORAGE_READ: Self

Texture supports storage reads in the compute stage.

Source

pub const COMPUTE_STORAGE_WRITE: Self

Texture supports storage writes in the compute stage.

Source

pub const COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE: Self

Texture supports reads and writes in the same compute shader. This is NOT equivalent to READ | WRITE.

Trait Implementations§

Source§

impl BitAnd for SDL_GPUTextureUsageFlags

Source§

type Output = SDL_GPUTextureUsageFlags

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: Self) -> Self::Output

Performs the & operation. Read more
Source§

impl BitAndAssign for SDL_GPUTextureUsageFlags

Source§

fn bitand_assign(&mut self, rhs: Self)

Performs the &= operation. Read more
Source§

impl BitOr for SDL_GPUTextureUsageFlags

Source§

type Output = SDL_GPUTextureUsageFlags

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: Self) -> Self::Output

Performs the | operation. Read more
Source§

impl BitOrAssign for SDL_GPUTextureUsageFlags

Source§

fn bitor_assign(&mut self, rhs: Self)

Performs the |= operation. Read more
Source§

impl BitXor for SDL_GPUTextureUsageFlags

Source§

type Output = SDL_GPUTextureUsageFlags

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: Self) -> Self::Output

Performs the ^ operation. Read more
Source§

impl BitXorAssign for SDL_GPUTextureUsageFlags

Source§

fn bitxor_assign(&mut self, rhs: Self)

Performs the ^= operation. Read more
Source§

impl Clone for SDL_GPUTextureUsageFlags

Source§

fn clone(&self) -> SDL_GPUTextureUsageFlags

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SDL_GPUTextureUsageFlags

Available on crate feature debug-impls only.
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SDL_GPUTextureUsageFlags

Source§

fn default() -> SDL_GPUTextureUsageFlags

Returns the “default value” for a type. Read more
Source§

impl From<SDL_GPUTextureUsageFlags> for Uint32

Source§

fn from(value: SDL_GPUTextureUsageFlags) -> Self

Converts to this type from the input type.
Source§

impl GroupMetadata for SDL_GPUTextureUsageFlags

Available on crate feature metadata only.
Source§

const GROUP_METADATA: &'static Group

Metadata for this group
Source§

impl Hash for SDL_GPUTextureUsageFlags

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Not for SDL_GPUTextureUsageFlags

Source§

type Output = SDL_GPUTextureUsageFlags

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl PartialEq<SDL_GPUTextureUsageFlags> for Uint32

Source§

fn eq(&self, other: &SDL_GPUTextureUsageFlags) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u32> for SDL_GPUTextureUsageFlags

Source§

fn eq(&self, other: &Uint32) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for SDL_GPUTextureUsageFlags

Source§

fn eq(&self, other: &SDL_GPUTextureUsageFlags) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SDL_GPUTextureUsageFlags

Source§

impl Eq for SDL_GPUTextureUsageFlags

Source§

impl StructuralPartialEq for SDL_GPUTextureUsageFlags

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.