use cgmath::prelude::Zero; use utilities::prelude::*; use vulkan_rs::prelude::*; use std::mem; #[derive(Copy, Clone, Debug)] pub struct TexturedVertex { pub position: cgmath::Vector4, pub texture_coordinates: cgmath::Vector2, } impl TexturedVertex { pub fn vertex_input_state() -> ( Vec, Vec, ) { let input_bindings = vec![VkVertexInputBindingDescription { binding: 0, stride: mem::size_of::() as u32, inputRate: VK_VERTEX_INPUT_RATE_VERTEX, }]; let input_attributes = 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 }, ]; (input_bindings, input_attributes) } } impl Default for TexturedVertex { fn default() -> TexturedVertex { TexturedVertex { position: cgmath::Vector4::zero(), texture_coordinates: cgmath::Vector2::zero(), } } }