summaryrefslogtreecommitdiff
path: root/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'gfx')
-rw-r--r--gfx/gl/glVertexArray.h10
-rw-r--r--gfx/models/mesh.h3
-rw-r--r--gfx/models/vertex.cpp4
3 files changed, 12 insertions, 5 deletions
diff --git a/gfx/gl/glVertexArray.h b/gfx/gl/glVertexArray.h
index dbe930f..6630b70 100644
--- a/gfx/gl/glVertexArray.h
+++ b/gfx/gl/glVertexArray.h
@@ -40,7 +40,15 @@ namespace Impl {
}
// Customisation point
- template<typename VertexT> VertexArrayConfigurator & addAttribsFor(GLuint divisor, const glBuffer & buffer);
+ template<typename VertexT> VertexArrayConfigurator & addAttribsFor(GLuint divisor);
+
+ template<typename VertexT>
+ VertexArrayConfigurator &
+ addAttribsFor(GLuint divisor, const glBuffer & buffer)
+ {
+ glVertexArrayVertexBuffer(name, binding, buffer, 0, sizeof(VertexT));
+ return addAttribsFor<VertexT>(divisor);
+ }
template<typename VertexT, MP... Attribs>
VertexArrayConfigurator &
diff --git a/gfx/models/mesh.h b/gfx/models/mesh.h
index f578625..d4dbd68 100644
--- a/gfx/models/mesh.h
+++ b/gfx/models/mesh.h
@@ -2,14 +2,13 @@
#include "config/types.h"
#include "gfx/gl/glBuffer.h"
+#include "gfx/models/vertex.h"
#include <gfx/gl/glVertexArray.h>
#include <glad/gl.h>
#include <ranges>
#include <span>
#include <stdTypeDefs.h>
-class Vertex;
-
class MeshBase {
public:
class Dimensions {
diff --git a/gfx/models/vertex.cpp b/gfx/models/vertex.cpp
index dc32f72..4b5ce54 100644
--- a/gfx/models/vertex.cpp
+++ b/gfx/models/vertex.cpp
@@ -3,8 +3,8 @@
template<>
Impl::VertexArrayConfigurator &
-Impl::VertexArrayConfigurator::addAttribsFor<Vertex>(const GLuint divisor, const glBuffer & buffer)
+Impl::VertexArrayConfigurator::addAttribsFor<Vertex>(const GLuint divisor)
{
return addAttribs<Vertex, &Vertex::pos, &Vertex::texCoord, &Vertex::normal, &Vertex::colour, &Vertex::material>(
- divisor, buffer);
+ divisor);
}