ui/src/guihandler/gui/texturedvertex.rs
2023-02-01 14:42:25 +01:00

49 lines
1.3 KiB
Rust

use utilities::impl_reprc;
use vulkan_rs::prelude::*;
use std::mem;
impl_reprc!(
pub struct TexturedVertex {
#[assume_reprc]
position: cgmath::Vector4<f32>,
#[assume_reprc]
texture_coordinates: cgmath::Vector2<f32>,
}
);
impl VertexInputDescription for TexturedVertex {
fn bindings() -> Vec<VkVertexInputBindingDescription> {
vec![VkVertexInputBindingDescription {
binding: 0,
stride: mem::size_of::<TexturedVertex>() as u32,
inputRate: VK_VERTEX_INPUT_RATE_VERTEX,
}]
}
fn attributes() -> Vec<VkVertexInputAttributeDescription> {
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::<cgmath::Vector4<f32>>() as u32
},
]
}
}
impl Default for TexturedVertex {
fn default() -> TexturedVertex {
TexturedVertex {
position: cgmath::Vector4::zero(),
texture_coordinates: cgmath::Vector2::zero(),
}
}
}