summaryrefslogtreecommitdiff
path: root/engine/src/renderer/opengl.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.rs
parentc1db67dbeaeeb447b8b4361ae6bb750785ed04bd (diff)
refactor(engine): make GL renderer have it's own Vertex struct
Diffstat (limited to 'engine/src/renderer/opengl.rs')
-rw-r--r--engine/src/renderer/opengl.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/engine/src/renderer/opengl.rs b/engine/src/renderer/opengl.rs
index 5666061..43ec16c 100644
--- a/engine/src/renderer/opengl.rs
+++ b/engine/src/renderer/opengl.rs
@@ -62,14 +62,16 @@ use crate::opengl::{
ContextFlags,
};
use crate::projection::{ClipVolume, Projection};
+use crate::renderer::opengl::vertex::{AttributeComponentType, Vertex};
use crate::renderer::RENDER_PHASE;
use crate::texture::{Id as TextureId, Texture};
use crate::transform::{Position, Scale};
use crate::util::{defer, Defer, RefOrValue};
use crate::vector::{Vec2, Vec3};
-use crate::vertex::{AttributeComponentType, Vertex};
use crate::window::Window;
+mod vertex;
+
type RenderableEntity<'a> = (
&'a Mesh,
&'a Material,
@@ -381,7 +383,13 @@ impl GlObjects
let mut vertex_arr = VertexArray::new();
let mut vertex_buffer = Buffer::new();
- vertex_buffer.store(mesh.vertices(), BufferUsage::Static);
+ vertex_buffer.store_mapped(mesh.vertices(), BufferUsage::Static, |vertex| {
+ Vertex {
+ pos: vertex.pos,
+ texture_coords: vertex.texture_coords,
+ normal: vertex.normal,
+ }
+ });
vertex_arr.bind_vertex_buffer(0, &vertex_buffer, 0);