pub enum VertexAttributeValues {
Show 45 variants
Uint8(Vec<u8>),
Uint8x2(Vec<[u8; 2]>),
Uint8x4(Vec<[u8; 4]>),
Sint8(Vec<i8>),
Sint8x2(Vec<[i8; 2]>),
Sint8x4(Vec<[i8; 4]>),
Unorm8(Vec<u8>),
Unorm8x2(Vec<[u8; 2]>),
Unorm8x4(Vec<[u8; 4]>),
Snorm8(Vec<i8>),
Snorm8x2(Vec<[i8; 2]>),
Snorm8x4(Vec<[i8; 4]>),
Uint16(Vec<u16>),
Uint16x2(Vec<[u16; 2]>),
Uint16x4(Vec<[u16; 4]>),
Sint16(Vec<i16>),
Sint16x2(Vec<[i16; 2]>),
Sint16x4(Vec<[i16; 4]>),
Unorm16(Vec<u16>),
Unorm16x2(Vec<[u16; 2]>),
Unorm16x4(Vec<[u16; 4]>),
Snorm16(Vec<i16>),
Snorm16x2(Vec<[i16; 2]>),
Snorm16x4(Vec<[i16; 4]>),
Float16(Vec<f16>),
Float16x2(Vec<[f16; 2]>),
Float16x4(Vec<[f16; 4]>),
Float32(Vec<f32>),
Float32x2(Vec<[f32; 2]>),
Float32x3(Vec<[f32; 3]>),
Float32x4(Vec<[f32; 4]>),
Uint32(Vec<u32>),
Uint32x2(Vec<[u32; 2]>),
Uint32x3(Vec<[u32; 3]>),
Uint32x4(Vec<[u32; 4]>),
Sint32(Vec<i32>),
Sint32x2(Vec<[i32; 2]>),
Sint32x3(Vec<[i32; 3]>),
Sint32x4(Vec<[i32; 4]>),
Float64(Vec<f64>),
Float64x2(Vec<[f64; 2]>),
Float64x3(Vec<[f64; 3]>),
Float64x4(Vec<[f64; 4]>),
Unorm10_10_10_2(Vec<u32>),
Unorm8x4Bgra(Vec<[u8; 4]>),
}Expand description
Contains an array where each entry describes a property of a single vertex.
Matches the VertexFormats.
Variants§
Uint8(Vec<u8>)
One unsigned byte (u8). u32 in shaders.
Uint8x2(Vec<[u8; 2]>)
Two unsigned bytes (u8). vec2<u32> in shaders.
Uint8x4(Vec<[u8; 4]>)
Four unsigned bytes (u8). vec4<u32> in shaders.
Sint8(Vec<i8>)
One signed byte (i8). i32 in shaders.
Sint8x2(Vec<[i8; 2]>)
Two signed bytes (i8). vec2<i32> in shaders.
Sint8x4(Vec<[i8; 4]>)
Four signed bytes (i8). vec4<i32> in shaders.
Unorm8(Vec<u8>)
One unsigned byte (u8). [0, 255] converted to float [0, 1] f32 in shaders.
Unorm8x2(Vec<[u8; 2]>)
Two unsigned bytes (u8). [0, 255] converted to float [0, 1] vec2<f32> in shaders.
Unorm8x4(Vec<[u8; 4]>)
Four unsigned bytes (u8). [0, 255] converted to float [0, 1] vec4<f32> in shaders.
Snorm8(Vec<i8>)
One signed byte (i8). [−127, 127] converted to float [−1, 1] f32 in shaders.
Snorm8x2(Vec<[i8; 2]>)
Two signed bytes (i8). [−127, 127] converted to float [−1, 1] vec2<f32> in shaders.
Snorm8x4(Vec<[i8; 4]>)
Four signed bytes (i8). [−127, 127] converted to float [−1, 1] vec4<f32> in shaders.
Uint16(Vec<u16>)
One unsigned short (u16). u32 in shaders.
Uint16x2(Vec<[u16; 2]>)
Two unsigned shorts (u16). vec2<u32> in shaders.
Uint16x4(Vec<[u16; 4]>)
Four unsigned shorts (u16). vec4<u32> in shaders.
Sint16(Vec<i16>)
One signed short (i16). i32 in shaders.
Sint16x2(Vec<[i16; 2]>)
Two signed shorts (i16). vec2<i32> in shaders.
Sint16x4(Vec<[i16; 4]>)
Four signed shorts (i16). vec4<i32> in shaders.
Unorm16(Vec<u16>)
One unsigned short (u16). [0, 65535] converted to float [0, 1] f32 in shaders.
Unorm16x2(Vec<[u16; 2]>)
Two unsigned shorts (u16). [0, 65535] converted to float [0, 1] vec2<f32> in shaders.
Unorm16x4(Vec<[u16; 4]>)
Four unsigned shorts (u16). [0, 65535] converted to float [0, 1] vec4<f32> in shaders.
Snorm16(Vec<i16>)
One signed short (i16). [−32767, 32767] converted to float [−1, 1] f32 in shaders.
Snorm16x2(Vec<[i16; 2]>)
Two signed shorts (i16). [−32767, 32767] converted to float [−1, 1] vec2<f32> in shaders.
Snorm16x4(Vec<[i16; 4]>)
Four signed shorts (i16). [−32767, 32767] converted to float [−1, 1] vec4<f32> in shaders.
Float16(Vec<f16>)
One half-precision float (no Rust equiv). f32 in shaders.
Float16x2(Vec<[f16; 2]>)
Two half-precision floats (no Rust equiv). vec2<f32> in shaders.
Float16x4(Vec<[f16; 4]>)
Four half-precision floats (no Rust equiv). vec4<f32> in shaders.
Float32(Vec<f32>)
One single-precision float (f32). f32 in shaders.
Float32x2(Vec<[f32; 2]>)
Two single-precision floats (f32). vec2<f32> in shaders.
Float32x3(Vec<[f32; 3]>)
Three single-precision floats (f32). vec3<f32> in shaders.
Float32x4(Vec<[f32; 4]>)
Four single-precision floats (f32). vec4<f32> in shaders.
Uint32(Vec<u32>)
One unsigned int (u32). u32 in shaders.
Uint32x2(Vec<[u32; 2]>)
Two unsigned ints (u32). vec2<u32> in shaders.
Uint32x3(Vec<[u32; 3]>)
Three unsigned ints (u32). vec3<u32> in shaders.
Uint32x4(Vec<[u32; 4]>)
Four unsigned ints (u32). vec4<u32> in shaders.
Sint32(Vec<i32>)
One signed int (i32). i32 in shaders.
Sint32x2(Vec<[i32; 2]>)
Two signed ints (i32). vec2<i32> in shaders.
Sint32x3(Vec<[i32; 3]>)
Three signed ints (i32). vec3<i32> in shaders.
Sint32x4(Vec<[i32; 4]>)
Four signed ints (i32). vec4<i32> in shaders.
Float64(Vec<f64>)
One double-precision float (f64). f32 in shaders. Requires wgpu_types::Features::VERTEX_ATTRIBUTE_64BIT.
Float64x2(Vec<[f64; 2]>)
Two double-precision floats (f64). vec2<f32> in shaders. Requires wgpu_types::Features::VERTEX_ATTRIBUTE_64BIT.
Float64x3(Vec<[f64; 3]>)
Three double-precision floats (f64). vec3<f32> in shaders. Requires wgpu_types::Features::VERTEX_ATTRIBUTE_64BIT.
Float64x4(Vec<[f64; 4]>)
Four double-precision floats (f64). vec4<f32> in shaders. Requires wgpu_types::Features::VERTEX_ATTRIBUTE_64BIT.
Unorm10_10_10_2(Vec<u32>)
Three unsigned 10-bit integers and one 2-bit integer, packed into a 32-bit integer (u32). [0, 1023] and [0, 3] converted to float [0, 1] vec4<f32> in shaders.
Unorm8x4Bgra(Vec<[u8; 4]>)
Four unsigned 8-bit integers (u8) in BGRA. [0, 255] converted to float [0, 1] vec4<f32> RGBA in shaders.
Implementations§
Source§impl VertexAttributeValues
impl VertexAttributeValues
pub fn enum_variant_index(&self) -> usize
pub fn enum_variant_name(&self) -> &'static str
Source§impl VertexAttributeValues
impl VertexAttributeValues
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of vertices in this VertexAttributeValues. For a single
mesh, all of the VertexAttributeValues must have the same length.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if there are no vertices in this VertexAttributeValues.
Sourcepub fn as_float3(&self) -> Option<&[[f32; 3]]>
pub fn as_float3(&self) -> Option<&[[f32; 3]]>
Returns the values as float triples if possible.
Sourcepub fn get_bytes(&self) -> &[u8] ⓘ
pub fn get_bytes(&self) -> &[u8] ⓘ
Flattens the VertexAttributeValues into a sequence of bytes. This is
useful for serialization and sending to the GPU.
Trait Implementations§
Source§impl Clone for VertexAttributeValues
impl Clone for VertexAttributeValues
Source§fn clone(&self) -> VertexAttributeValues
fn clone(&self) -> VertexAttributeValues
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VertexAttributeValues
impl Debug for VertexAttributeValues
Source§impl From<&VertexAttributeValues> for VertexFormat
impl From<&VertexAttributeValues> for VertexFormat
Source§fn from(values: &VertexAttributeValues) -> VertexFormat
fn from(values: &VertexAttributeValues) -> VertexFormat
Source§impl PartialEq for VertexAttributeValues
impl PartialEq for VertexAttributeValues
Source§fn eq(&self, other: &VertexAttributeValues) -> bool
fn eq(&self, other: &VertexAttributeValues) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for VertexAttributeValues
Auto Trait Implementations§
impl Freeze for VertexAttributeValues
impl RefUnwindSafe for VertexAttributeValues
impl Send for VertexAttributeValues
impl Sync for VertexAttributeValues
impl Unpin for VertexAttributeValues
impl UnsafeUnpin for VertexAttributeValues
impl UnwindSafe for VertexAttributeValues
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.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
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,
impl<T> ConditionalSend for Twhere
T: Send,
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>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
&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)
&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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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>
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>
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 more