pub struct ShaderFeatureFlags(pub u32);Expand description
Shader feature flags that control permutation generation. Each enabled feature adds to the shader permutation count. Use specialization constants to reduce permutations.
Tuple Fields§
§0: u32Implementations§
Source§impl ShaderFeatureFlags
impl ShaderFeatureFlags
pub const NONE: Self
pub const GLASS: Self
pub const BLOOM: Self
pub const VOLUMETRIC: Self
pub const COLOR_BLIND: Self
pub const PARTICLES: Self
pub const DROPSHADOW: Self
pub const ALL: Self
Sourcepub fn count(self) -> u32
pub fn count(self) -> u32
Returns the number of enabled features (permutation count contribution).
Sourcepub fn is_within_permutation_limit(self) -> bool
pub fn is_within_permutation_limit(self) -> bool
Returns true if the permutation count is within acceptable limits.
Sourcepub fn permutation_index(self) -> u32
pub fn permutation_index(self) -> u32
Returns the permutation index for this feature combination.
pub fn has(self, flag: Self) -> bool
Trait Implementations§
Source§impl BitAnd for ShaderFeatureFlags
impl BitAnd for ShaderFeatureFlags
Source§impl BitOr for ShaderFeatureFlags
impl BitOr for ShaderFeatureFlags
Source§impl Clone for ShaderFeatureFlags
impl Clone for ShaderFeatureFlags
Source§fn clone(&self) -> ShaderFeatureFlags
fn clone(&self) -> ShaderFeatureFlags
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ShaderFeatureFlags
Source§impl Debug for ShaderFeatureFlags
impl Debug for ShaderFeatureFlags
Source§impl Default for ShaderFeatureFlags
impl Default for ShaderFeatureFlags
Source§fn default() -> ShaderFeatureFlags
fn default() -> ShaderFeatureFlags
Returns the “default value” for a type. Read more
impl Eq for ShaderFeatureFlags
Source§impl Hash for ShaderFeatureFlags
impl Hash for ShaderFeatureFlags
Source§impl PartialEq for ShaderFeatureFlags
impl PartialEq for ShaderFeatureFlags
Source§fn eq(&self, other: &ShaderFeatureFlags) -> bool
fn eq(&self, other: &ShaderFeatureFlags) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ShaderFeatureFlags
Auto Trait Implementations§
impl Freeze for ShaderFeatureFlags
impl RefUnwindSafe for ShaderFeatureFlags
impl Send for ShaderFeatureFlags
impl Sync for ShaderFeatureFlags
impl Unpin for ShaderFeatureFlags
impl UnsafeUnpin for ShaderFeatureFlags
impl UnwindSafe for ShaderFeatureFlags
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn 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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().