Struct bevy::render::render_resource::encase::ArrayLength
pub struct ArrayLength;
Expand description
Helper type meant to be used together with the [derive@ShaderType
] derive macro
This type should be interpreted as an u32
in the shader
Problem
There are cases where the use of the WGSL function arrayLength()
might be inadequate because of its return value
-
being a minimum of 1 due to how
minBindingSize
is calculated -
possibly being higher than expected due to padding at the end of a struct or buffer being interpreted as array elements
-
representing the capacity of the array for usecaseses that require oversized buffers
Solution
Using this type on a field of a struct with the [derive@ShaderType
] derive macro will automatically:
Trait Implementations§
§impl Clone for ArrayLength
impl Clone for ArrayLength
§fn clone(&self) -> ArrayLength
fn clone(&self) -> ArrayLength
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl CreateFrom for ArrayLength
impl CreateFrom for ArrayLength
fn create_from<B>(reader: &mut Reader<B>) -> ArrayLengthwhere
B: BufferRef,
§impl Debug for ArrayLength
impl Debug for ArrayLength
§impl Default for ArrayLength
impl Default for ArrayLength
§fn default() -> ArrayLength
fn default() -> ArrayLength
Returns the “default value” for a type. Read more
§impl Ord for ArrayLength
impl Ord for ArrayLength
§impl PartialEq<ArrayLength> for ArrayLength
impl PartialEq<ArrayLength> for ArrayLength
§fn eq(&self, other: &ArrayLength) -> bool
fn eq(&self, other: &ArrayLength) -> bool
§impl PartialOrd<ArrayLength> for ArrayLength
impl PartialOrd<ArrayLength> for ArrayLength
§fn partial_cmp(&self, other: &ArrayLength) -> Option<Ordering>
fn partial_cmp(&self, other: &ArrayLength) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read more§impl ReadFrom for ArrayLength
impl ReadFrom for ArrayLength
§impl ShaderSize for ArrayLength
impl ShaderSize for ArrayLength
§const SHADER_SIZE: NonZeroU64 = Self::METADATA.min_size().0
const SHADER_SIZE: NonZeroU64 = Self::METADATA.min_size().0
Represents WGSL Size (equivalent to
ShaderType::min_size
)§impl ShaderType for ArrayLength
impl ShaderType for ArrayLength
§fn min_size() -> NonZeroU64
fn min_size() -> NonZeroU64
§fn size(&self) -> NonZeroU64
fn size(&self) -> NonZeroU64
Returns the size of
Self
at runtime Read more§fn assert_uniform_compat()
fn assert_uniform_compat()
Asserts that
Self
meets the requirements of the
uniform address space restrictions on stored values and the
uniform address space layout constraints Read more§impl WriteInto for ArrayLength
impl WriteInto for ArrayLength
fn write_into<B>(&self, writer: &mut Writer<B>)where
B: BufferMut,
impl Copy for ArrayLength
impl Eq for ArrayLength
impl StructuralEq for ArrayLength
impl StructuralPartialEq for ArrayLength
Auto Trait Implementations§
impl RefUnwindSafe for ArrayLength
impl Send for ArrayLength
impl Sync for ArrayLength
impl Unpin for ArrayLength
impl UnwindSafe for ArrayLength
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
Return the
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist. Read more§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read more§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more§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. Read more§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. Read moresource§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates
Self
using data from the given World