Struct vulkano::buffer::BufferUsage
source · pub struct BufferUsage {
pub transfer_src: bool,
pub transfer_dst: bool,
pub uniform_texel_buffer: bool,
pub storage_texel_buffer: bool,
pub uniform_buffer: bool,
pub storage_buffer: bool,
pub index_buffer: bool,
pub vertex_buffer: bool,
pub indirect_buffer: bool,
pub shader_device_address: bool,
pub _ne: NonExhaustive,
}
Expand description
Describes how a buffer is going to be used. This is not just an optimization.
If you try to use a buffer in a way that you didn’t declare, an error will be returned.
Fields§
§transfer_src: bool
The buffer can be used as a source for transfer, blit, resolve and clear commands.
transfer_dst: bool
The buffer can be used as a destination for transfer, blit, resolve and clear commands.
uniform_texel_buffer: bool
The buffer can be used as a uniform texel buffer in a descriptor set.
storage_texel_buffer: bool
The buffer can be used as a storage texel buffer in a descriptor set.
uniform_buffer: bool
The buffer can be used as a uniform buffer in a descriptor set.
storage_buffer: bool
The buffer can be used as a storage buffer in a descriptor set.
index_buffer: bool
The buffer can be used as an index buffer.
vertex_buffer: bool
The buffer can be used as a vertex or instance buffer.
indirect_buffer: bool
The buffer can be used as an indirect buffer.
shader_device_address: bool
The buffer’s device address can be retrieved.
A buffer created with this usage can only be bound to device memory allocated with the
device_address
flag set unless the ext_buffer_device_address
extension is enabled
on the device.
_ne: NonExhaustive
Implementations§
source§impl BufferUsage
impl BufferUsage
sourcepub const fn none() -> Self
👎Deprecated since 0.31.0: Use empty
instead.
pub const fn none() -> Self
empty
instead.Returns a BufferUsage
with none of the flags set.
sourcepub const fn intersects(&self, other: &Self) -> bool
pub const fn intersects(&self, other: &Self) -> bool
Returns whether any flags are set in both self
and other
.
sourcepub const fn contains(&self, other: &Self) -> bool
pub const fn contains(&self, other: &Self) -> bool
Returns whether all flags in other
are set in self
.
sourcepub const fn intersection(&self, other: &Self) -> Self
pub const fn intersection(&self, other: &Self) -> Self
Returns the intersection of self
and other
.
sourcepub const fn difference(&self, other: &Self) -> Self
pub const fn difference(&self, other: &Self) -> Self
Returns self
without the flags set in other
.
sourcepub const fn symmetric_difference(&self, other: &Self) -> Self
pub const fn symmetric_difference(&self, other: &Self) -> Self
Returns the flags set in self
or other
, but not both.
Trait Implementations§
source§impl BitAnd<BufferUsage> for BufferUsage
impl BitAnd<BufferUsage> for BufferUsage
source§impl BitAndAssign<BufferUsage> for BufferUsage
impl BitAndAssign<BufferUsage> for BufferUsage
source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moresource§impl BitOr<BufferUsage> for BufferUsage
impl BitOr<BufferUsage> for BufferUsage
source§impl BitOrAssign<BufferUsage> for BufferUsage
impl BitOrAssign<BufferUsage> for BufferUsage
source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moresource§impl BitXor<BufferUsage> for BufferUsage
impl BitXor<BufferUsage> for BufferUsage
source§impl BitXorAssign<BufferUsage> for BufferUsage
impl BitXorAssign<BufferUsage> for BufferUsage
source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read moresource§impl Clone for BufferUsage
impl Clone for BufferUsage
source§fn clone(&self) -> BufferUsage
fn clone(&self) -> BufferUsage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BufferUsage
impl Debug for BufferUsage
source§impl Default for BufferUsage
impl Default for BufferUsage
source§impl From<BufferUsage> for BufferUsageFlags
impl From<BufferUsage> for BufferUsageFlags
source§fn from(val: BufferUsage) -> Self
fn from(val: BufferUsage) -> Self
source§impl From<BufferUsageFlags> for BufferUsage
impl From<BufferUsageFlags> for BufferUsage
source§fn from(val: BufferUsageFlags) -> Self
fn from(val: BufferUsageFlags) -> Self
source§impl Hash for BufferUsage
impl Hash for BufferUsage
source§impl PartialEq<BufferUsage> for BufferUsage
impl PartialEq<BufferUsage> for BufferUsage
source§fn eq(&self, other: &BufferUsage) -> bool
fn eq(&self, other: &BufferUsage) -> bool
source§impl Sub<BufferUsage> for BufferUsage
impl Sub<BufferUsage> for BufferUsage
source§impl SubAssign<BufferUsage> for BufferUsage
impl SubAssign<BufferUsage> for BufferUsage
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read more