use safer_ffi::derive_ReprC; use vulkan_rs::prelude::*; use std::mem; #[derive_ReprC] #[repr(C)] #[derive(Copy, Clone, Debug)] pub struct TexturedVertex { pub position: cgmath::Vector4, pub 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(), } } }