Struct BufferUsage

Source
pub struct BufferUsage { /* private fields */ }
Expand description

A set of flags describing the allowed usages of a BufferId.

These flags are crucial for performance and validation. The graphics driver uses them to place the buffer in the most optimal memory type (e.g., GPU-only vs. CPU-visible) and to validate that the buffer is used correctly at runtime.

Implementations§

Source§

impl BufferUsage

Source

pub const EMPTY: BufferUsage

An empty set of flags.

Source

pub const MAP_READ: BufferUsage

The buffer can be mapped for reading on the CPU.

Source

pub const MAP_WRITE: BufferUsage

The buffer can be mapped for writing on the CPU.

Source

pub const COPY_SRC: BufferUsage

The buffer can be used as the source of a copy operation.

Source

pub const COPY_DST: BufferUsage

The buffer can be used as the destination of a copy operation.

Source

pub const VERTEX: BufferUsage

The buffer can be bound as a vertex buffer.

Source

pub const INDEX: BufferUsage

The buffer can be bound as an index buffer.

Source

pub const UNIFORM: BufferUsage

The buffer can be bound as a uniform buffer.

Source

pub const STORAGE: BufferUsage

The buffer can be bound as a storage buffer (read/write access from shaders).

Source

pub const INDIRECT: BufferUsage

The buffer can be used for indirect draw or dispatch commands.

Source

pub const QUERY_RESOLVE: BufferUsage

The buffer can be used as a destination for query results.

Source

pub const fn from_bits_truncate(bits: u32) -> BufferUsage

Creates a new bitflag set from the given raw bits. Bits not corresponding to any defined flag are kept.

Source

pub const fn bits(&self) -> u32

Returns the raw value of the bitflag set.

Source

pub const fn contains(&self, other: BufferUsage) -> bool

Returns true if all flags in other are contained within self.

Source

pub const fn intersects(&self, other: BufferUsage) -> bool

Returns true if any flag in other is contained within self.

Source

pub fn insert(&mut self, other: BufferUsage)

Inserts the flags in other into self.

Source

pub fn remove(&mut self, other: BufferUsage)

Removes the flags in other from self.

Source

pub fn toggle(&mut self, other: BufferUsage)

Toggles the flags in other in self.

Source

pub const fn with(self, other: BufferUsage) -> BufferUsage

Returns a new Self with other flags inserted.

Source

pub const fn without(self, other: BufferUsage) -> BufferUsage

Returns a new Self with other flags removed.

Trait Implementations§

Source§

impl BitAnd for BufferUsage

Source§

type Output = BufferUsage

The resulting type after applying the & operator.
Source§

fn bitand(self, other: BufferUsage) -> BufferUsage

Performs the & operation. Read more
Source§

impl BitAndAssign for BufferUsage

Source§

fn bitand_assign(&mut self, other: BufferUsage)

Performs the &= operation. Read more
Source§

impl BitOr for BufferUsage

Source§

type Output = BufferUsage

The resulting type after applying the | operator.
Source§

fn bitor(self, other: BufferUsage) -> BufferUsage

Performs the | operation. Read more
Source§

impl BitOrAssign for BufferUsage

Source§

fn bitor_assign(&mut self, other: BufferUsage)

Performs the |= operation. Read more
Source§

impl BitXor for BufferUsage

Source§

type Output = BufferUsage

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, other: BufferUsage) -> BufferUsage

Performs the ^ operation. Read more
Source§

impl BitXorAssign for BufferUsage

Source§

fn bitxor_assign(&mut self, other: BufferUsage)

Performs the ^= operation. Read more
Source§

impl Clone for BufferUsage

Source§

fn clone(&self) -> BufferUsage

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 BufferUsage

Source§

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

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

impl Default for BufferUsage

Source§

fn default() -> BufferUsage

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

impl Hash for BufferUsage

Source§

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

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 BufferUsage

Source§

type Output = BufferUsage

The resulting type after applying the ! operator.
Source§

fn not(self) -> BufferUsage

Performs the unary ! operation. Read more
Source§

impl PartialEq for BufferUsage

Source§

fn eq(&self, other: &BufferUsage) -> 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 BufferUsage

Source§

impl Eq for BufferUsage

Source§

impl StructuralPartialEq for BufferUsage

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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

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.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

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.
§

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.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,