summaryrefslogtreecommitdiff
path: root/engine/src/renderer/opengl/vertex.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2025-05-10 13:10:46 +0200
committerHampusM <hampus@hampusmat.com>2025-05-10 13:42:34 +0200
commit6b2feeab0b845d05cdf76328d44b7b70a5e50c18 (patch)
treec214ad5e89a0a289d32094fb934caa6325b6cb4e /engine/src/renderer/opengl/vertex.rs
parentc1db67dbeaeeb447b8b4361ae6bb750785ed04bd (diff)
refactor(engine): make GL renderer have it's own Vertex struct
Diffstat (limited to 'engine/src/renderer/opengl/vertex.rs')
-rw-r--r--engine/src/renderer/opengl/vertex.rs64
1 files changed, 64 insertions, 0 deletions
diff --git a/engine/src/renderer/opengl/vertex.rs b/engine/src/renderer/opengl/vertex.rs
new file mode 100644
index 0000000..499b94b
--- /dev/null
+++ b/engine/src/renderer/opengl/vertex.rs
@@ -0,0 +1,64 @@
+use crate::vector::{Vec2, Vec3};
+
+#[derive(Debug, Clone)]
+#[repr(C)]
+pub struct Vertex
+{
+ pub pos: Vec3<f32>,
+ pub texture_coords: Vec2<f32>,
+ pub normal: Vec3<f32>,
+}
+
+impl Vertex
+{
+ pub fn attrs() -> &'static [Attribute]
+ {
+ #[allow(clippy::cast_possible_truncation)]
+ &[
+ Attribute {
+ index: 0,
+ component_type: AttributeComponentType::Float,
+ component_cnt: AttributeComponentCnt::Three,
+ component_size: size_of::<f32>() as u32,
+ },
+ Attribute {
+ index: 1,
+ component_type: AttributeComponentType::Float,
+ component_cnt: AttributeComponentCnt::Two,
+ component_size: size_of::<f32>() as u32,
+ },
+ Attribute {
+ index: 2,
+ component_type: AttributeComponentType::Float,
+ component_cnt: AttributeComponentCnt::Three,
+ component_size: size_of::<f32>() as u32,
+ },
+ ]
+ }
+}
+
+#[derive(Debug)]
+pub struct Attribute
+{
+ pub index: u32,
+ pub component_type: AttributeComponentType,
+ pub component_cnt: AttributeComponentCnt,
+ pub component_size: u32,
+}
+
+#[derive(Debug)]
+pub enum AttributeComponentType
+{
+ Float,
+}
+
+#[derive(Debug, Clone, Copy)]
+#[repr(u32)]
+#[allow(dead_code)]
+pub enum AttributeComponentCnt
+{
+ One = 1,
+ Two = 2,
+ Three = 3,
+ Four = 4,
+}