1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use std::mem;
use wgpu::{BufferAddress, VertexAttribute, VertexBufferLayout, VertexStepMode};
pub trait Vertex<const SIZE: usize> {
fn descriptor<'a>() -> VertexBufferLayout<'a>
where
Self: Sized,
{
VertexBufferLayout {
array_stride: mem::size_of::<Self>() as BufferAddress,
step_mode: Self::STEP_MODE,
attributes: &Self::ATTRIBS,
}
}
const STEP_MODE: VertexStepMode = VertexStepMode::Vertex;
const ATTRIBS: [VertexAttribute; SIZE];
}