summaryrefslogtreecommitdiff
path: root/engine/src/renderer/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/renderer/mod.rs')
-rw-r--r--engine/src/renderer/mod.rs35
1 files changed, 4 insertions, 31 deletions
diff --git a/engine/src/renderer/mod.rs b/engine/src/renderer/mod.rs
index 13091fd..bbcb5e9 100644
--- a/engine/src/renderer/mod.rs
+++ b/engine/src/renderer/mod.rs
@@ -1,13 +1,12 @@
-use std::ffi::{c_float, c_void, CString};
-use std::mem::size_of;
+use std::ffi::{c_void, CString};
use std::process::abort;
-use std::ptr::null;
use glfw::WindowSize;
use crate::renderer::vertex_array::{PrimitiveKind, VertexArray};
use crate::renderer::vertex_buffers::{BufferUsage, VertexBuffers};
use crate::vector::Vec2;
+use crate::vertex::Vertex;
mod vertex_array;
mod vertex_buffers;
@@ -62,7 +61,7 @@ pub struct Renderable
impl Renderable
{
- pub fn new(shader_program: crate::shader::Program, vertices: &[f32]) -> Self
+ pub fn new(shader_program: crate::shader::Program, vertices: &[Vertex]) -> Self
{
let vertex_arr = VertexArray::new();
@@ -74,8 +73,7 @@ impl Renderable
.store(0, vertices, BufferUsage::Static)
.unwrap();
- vertex_attrib_ptr(0);
- enable_vertex_attrib_array(0);
+ VertexArray::configure_attrs();
Self {
shader_program,
@@ -105,28 +103,3 @@ pub enum Error
#[error("Failed to get window size")]
GetWindowSizeFailed(#[source] glfw::Error),
}
-
-fn vertex_attrib_ptr(index: usize)
-{
- let stride = 3 * size_of::<c_float>();
-
- unsafe {
- #[allow(clippy::cast_possible_wrap, clippy::cast_possible_truncation)]
- gl::VertexAttribPointer(
- index as gl::types::GLuint,
- 3,
- gl::FLOAT,
- gl::FALSE,
- stride as gl::types::GLsizei,
- null(),
- );
- }
-}
-
-fn enable_vertex_attrib_array(index: usize)
-{
- unsafe {
- #[allow(clippy::cast_possible_truncation)]
- gl::EnableVertexAttribArray(index as gl::types::GLuint);
- }
-}