]> git.tdb.fi Git - libs/gl.git/blob - source/vertexbuffer.cpp
Add vertex arrays and buffers
[libs/gl.git] / source / vertexbuffer.cpp
1 #define GL_GLEXT_PROTOTYPES
2 #include <GL/gl.h>
3 //XXX gl.h seems to include glext.h, but can I rely on this?
4 //#include <GL/glext.h>
5 #include "vertexbuffer.h"
6
7 namespace Msp {
8 namespace GL {
9
10 VertexBuffer::VertexBuffer()
11 {
12         glGenBuffers(1, &id);
13 }
14
15 void VertexBuffer::bind() const
16 {
17         glBindBuffer(GL_ARRAY_BUFFER, id);
18         bound=this;
19 }
20
21 void VertexBuffer::data(sizei size, void *d)
22 {
23         if(bound!=this) bind();
24
25         glBufferData(GL_ARRAY_BUFFER, size, d, GL_STATIC_DRAW);
26 }
27
28 VertexBuffer::~VertexBuffer()
29 {
30         glDeleteBuffers(1, &id);
31 }
32
33 const VertexBuffer *VertexBuffer::bound=0;
34
35 } // namespace GL
36 } // namespace Msp