]> git.tdb.fi Git - libs/gl.git/blobdiff - source/vertexbuffer.cpp
Add vertex arrays and buffers
[libs/gl.git] / source / vertexbuffer.cpp
diff --git a/source/vertexbuffer.cpp b/source/vertexbuffer.cpp
new file mode 100644 (file)
index 0000000..4385c2f
--- /dev/null
@@ -0,0 +1,36 @@
+#define GL_GLEXT_PROTOTYPES
+#include <GL/gl.h>
+//XXX gl.h seems to include glext.h, but can I rely on this?
+//#include <GL/glext.h>
+#include "vertexbuffer.h"
+
+namespace Msp {
+namespace GL {
+
+VertexBuffer::VertexBuffer()
+{
+       glGenBuffers(1, &id);
+}
+
+void VertexBuffer::bind() const
+{
+       glBindBuffer(GL_ARRAY_BUFFER, id);
+       bound=this;
+}
+
+void VertexBuffer::data(sizei size, void *d)
+{
+       if(bound!=this) bind();
+
+       glBufferData(GL_ARRAY_BUFFER, size, d, GL_STATIC_DRAW);
+}
+
+VertexBuffer::~VertexBuffer()
+{
+       glDeleteBuffers(1, &id);
+}
+
+const VertexBuffer *VertexBuffer::bound=0;
+
+} // namespace GL
+} // namespace Msp