--- /dev/null
+#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