use utilities::impl_reprc; use vulkan_rs::prelude::*; use std::mem; impl_reprc!( pub struct TexturedVertex { #[assume_reprc] position: cgmath::Vector4, #[assume_reprc] texture_coordinates: cgmath::Vector2, } ); impl VertexInputDescription for TexturedVertex { fn bindings() -> Vec { vec![VkVertexInputBindingDescription { binding: 0, stride: mem::size_of::() as u32, inputRate: VK_VERTEX_INPUT_RATE_VERTEX, }] } fn attributes() -> Vec { vec![ VkVertexInputAttributeDescription { location: 0, binding: 0, format: VK_FORMAT_R32G32B32A32_SFLOAT, offset: 0, }, VkVertexInputAttributeDescription { location: 1, binding: 0, format: VK_FORMAT_R32G32_SFLOAT, offset: 16, // mem::size_of::>() as u32 }, ] } } impl Default for TexturedVertex { fn default() -> TexturedVertex { TexturedVertex { position: cgmath::Vector4::zero(), texture_coordinates: cgmath::Vector2::zero(), } } }