X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexbuffer.cpp;fp=source%2Fvertexbuffer.cpp;h=4385c2f10b0ae18f0253ffe0883ca68a111b9ce6;hb=84bc56b96c21c831104a22e0cbd0f3b72ab5d8c3;hp=0000000000000000000000000000000000000000;hpb=7adcad3b40a03000a82e32db4523761c218309b8;p=libs%2Fgl.git diff --git a/source/vertexbuffer.cpp b/source/vertexbuffer.cpp new file mode 100644 index 00000000..4385c2f1 --- /dev/null +++ b/source/vertexbuffer.cpp @@ -0,0 +1,36 @@ +#define GL_GLEXT_PROTOTYPES +#include +//XXX gl.h seems to include glext.h, but can I rely on this? +//#include +#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