diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-26 01:16:06 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2023-04-26 01:16:06 +0100 |
commit | 4b560f03201f1c2d7c632126cd1e512ed4027072 (patch) | |
tree | c270b684f3886130d6ef079064113b40e374a965 | |
parent | Point shaders (shadows) can all share the same implementation now in a single... (diff) | |
download | ilt-4b560f03201f1c2d7c632126cd1e512ed4027072.tar.bz2 ilt-4b560f03201f1c2d7c632126cd1e512ed4027072.tar.xz ilt-4b560f03201f1c2d7c632126cd1e512ed4027072.zip |
Add Mesh helper for drawing instances
Assumes the supplied VAO was created and configured for the mesh it's passed back to.
-rw-r--r-- | gfx/models/mesh.cpp | 10 | ||||
-rw-r--r-- | gfx/models/mesh.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gfx/models/mesh.cpp b/gfx/models/mesh.cpp index 55759cb..3faf252 100644 --- a/gfx/models/mesh.cpp +++ b/gfx/models/mesh.cpp @@ -42,3 +42,13 @@ Mesh::Draw() const glBindVertexArray(0);
}
+
+void
+Mesh::DrawInstanced(GLuint vao, GLsizei count) const
+{
+ glBindVertexArray(vao);
+
+ glDrawElementsInstanced(mode, m_numIndices, GL_UNSIGNED_INT, nullptr, count);
+
+ glBindVertexArray(0);
+}
diff --git a/gfx/models/mesh.h b/gfx/models/mesh.h index 472b7ed..a2205a1 100644 --- a/gfx/models/mesh.h +++ b/gfx/models/mesh.h @@ -14,6 +14,7 @@ public: Mesh(const std::span<const Vertex> vertices, const std::span<const unsigned int> indices, GLenum = GL_TRIANGLES);
void Draw() const;
+ void DrawInstanced(GLuint vao, GLsizei count) const;
VertexArrayObject & configureVAO(VertexArrayObject &&) const;
GLsizei count() const;
GLenum type() const;
|