Struct sierra::ImageUsage
source · pub struct ImageUsage { /* private fields */ }
Expand description
Flags to specify allowed usages for image.
Implementations§
source§impl ImageUsage
impl ImageUsage
sourcepub const TRANSFER_SRC: Self = _
pub const TRANSFER_SRC: Self = _
Image with this usage flag can be used as source for various transfer operations.
sourcepub const TRANSFER_DST: Self = _
pub const TRANSFER_DST: Self = _
Image with this usage flag can be used as destination for various transfer operations.
sourcepub const COLOR_ATTACHMENT: Self = _
pub const COLOR_ATTACHMENT: Self = _
Image with this usage flag can be used as color attachment in render passes.
sourcepub const DEPTH_STENCIL_ATTACHMENT: Self = _
pub const DEPTH_STENCIL_ATTACHMENT: Self = _
Image with this usage flag can be used as depth-stencil attachment in render passes.
sourcepub const INPUT_ATTACHMENT: Self = _
pub const INPUT_ATTACHMENT: Self = _
Image with this usage flag can be used as input attachment in render passes.
sourcepub const fn from_bits(bits: u32) -> Option<Self>
pub const fn from_bits(bits: u32) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: u32) -> Self
pub const fn from_bits_truncate(bits: u32) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const unsafe fn from_bits_unchecked(bits: u32) -> Self
pub const unsafe fn from_bits_unchecked(bits: u32) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Safety
The caller of the bitflags!
macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked()
has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true
if there are flags common to both self
and other
.
sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Returns true
if all of the flags in other
are contained within self
.
sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self
and
other
.
Specifically, the returned set contains only the flags which are
present in both self
and other
.
This is equivalent to using the &
operator (e.g.
ops::BitAnd
), as in flags & other
.
sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self
and other
.
Specifically, the returned set contains all flags which are
present in either self
or other
, including any which are
present in both (see Self::symmetric_difference
if that
is undesirable).
This is equivalent to using the |
operator (e.g.
ops::BitOr
), as in flags | other
.
sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self
and other
.
Specifically, the returned set contains all flags present in
self
, except for the ones present in other
.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other
(and this syntax is also supported).
This is equivalent to using the -
operator (e.g.
ops::Sub
), as in flags - other
.
sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self
and other
.
Specifically, the returned set contains the flags present which
are present in self
or other
, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self
and other
.
This is equivalent to using the ^
operator (e.g.
ops::BitXor
), as in flags ^ other
.
sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self
, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all()
and self
(e.g. Self::all() - self
)
This is equivalent to using the !
operator (e.g.
ops::Not
), as in !flags
.
source§impl ImageUsage
impl ImageUsage
sourcepub fn is_render_target(self) -> bool
pub fn is_render_target(self) -> bool
Returns true
if image with this usage flags can be used as render target, either color or depth.
sourcepub fn is_render_target_only(self) -> bool
pub fn is_render_target_only(self) -> bool
Returns true
if image with this usage flags can be used as render target, either color or depth,
and no other usage is allowed.
sourcepub fn is_read_only(self) -> bool
pub fn is_read_only(self) -> bool
Returns true
if no mutable usages allowed.
Content still can be modified through memory mapping.
Trait Implementations§
source§impl Binary for ImageUsage
impl Binary for ImageUsage
source§impl BitAnd<ImageUsage> for ImageUsage
impl BitAnd<ImageUsage> for ImageUsage
source§impl BitAndAssign<ImageUsage> for ImageUsage
impl BitAndAssign<ImageUsage> for ImageUsage
source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
source§impl BitOr<ImageUsage> for ImageUsage
impl BitOr<ImageUsage> for ImageUsage
source§fn bitor(self, other: ImageUsage) -> Self
fn bitor(self, other: ImageUsage) -> Self
Returns the union of the two sets of flags.
§type Output = ImageUsage
type Output = ImageUsage
|
operator.source§impl BitOrAssign<ImageUsage> for ImageUsage
impl BitOrAssign<ImageUsage> for ImageUsage
source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
source§impl BitXor<ImageUsage> for ImageUsage
impl BitXor<ImageUsage> for ImageUsage
source§impl BitXorAssign<ImageUsage> for ImageUsage
impl BitXorAssign<ImageUsage> for ImageUsage
source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
source§impl Clone for ImageUsage
impl Clone for ImageUsage
source§fn clone(&self) -> ImageUsage
fn clone(&self) -> ImageUsage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ImageUsage
impl Debug for ImageUsage
source§impl Extend<ImageUsage> for ImageUsage
impl Extend<ImageUsage> for ImageUsage
source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl FromIterator<ImageUsage> for ImageUsage
impl FromIterator<ImageUsage> for ImageUsage
source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
source§impl Hash for ImageUsage
impl Hash for ImageUsage
source§impl LowerHex for ImageUsage
impl LowerHex for ImageUsage
source§impl Not for ImageUsage
impl Not for ImageUsage
source§impl Octal for ImageUsage
impl Octal for ImageUsage
source§impl Ord for ImageUsage
impl Ord for ImageUsage
source§fn cmp(&self, other: &ImageUsage) -> Ordering
fn cmp(&self, other: &ImageUsage) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq<ImageUsage> for ImageUsage
impl PartialEq<ImageUsage> for ImageUsage
source§fn eq(&self, other: &ImageUsage) -> bool
fn eq(&self, other: &ImageUsage) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<ImageUsage> for ImageUsage
impl PartialOrd<ImageUsage> for ImageUsage
source§fn partial_cmp(&self, other: &ImageUsage) -> Option<Ordering>
fn partial_cmp(&self, other: &ImageUsage) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Sub<ImageUsage> for ImageUsage
impl Sub<ImageUsage> for ImageUsage
source§impl SubAssign<ImageUsage> for ImageUsage
impl SubAssign<ImageUsage> for ImageUsage
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.