module hoekjed.opengl.buffer; import bindbc.opengl; alias VBO = Buffer!(GL_ARRAY_BUFFER); alias EBO = Buffer!(GL_ELEMENT_ARRAY_BUFFER); // VERBETER: voeg inhoud van type M[] aan template toe zonder dat VAO hier last van heeft. class Buffer(GLenum Buffer_Soort) { private uint bo; public this(M)(M[] inhoud) { glGenBuffers(1, &bo); zet(inhoud); } public ~this() { import std.stdio; glDeleteBuffers(1, &bo); stderr.write("Buffer "); stderr.write(bo); stderr.writeln(" is verwijderd."); } public void zet(M)(M[] inhoud) { glBindBuffer(Buffer_Soort, bo); glBufferData(Buffer_Soort, inhoud.length * M.sizeof, inhoud.ptr, GL_STATIC_DRAW); } }