KlassischeKeplerKriege/KKK/game/include/glclasses.h
2016-09-15 17:23:02 +02:00

35 lines
777 B
C++

#pragma once
#include <epoxy/gl.h>
#include <epoxy/glx.h>
template <GLenum T> class BufferObject {
private:
GLuint m_name;
GLvoid* m_mappointer;
protected:
public:
BufferObject();
~BufferObject();
void bind();
void bind(GLuint index, GLintptr offset = 0, GLsizeiptr size = 0);
void fill(GLenum usage, GLsizei size = 0, GLvoid* data = NULL);
void subfill(GLintptr offset, GLsizei size, const GLvoid* data);
void map(GLenum access);
void unmap();
};
typedef BufferObject<GL_ARRAY_BUFFER> VBO;
typedef BufferObject<GL_ELEMENT_ARRAY_BUFFER> IBO;
class VAO {
private:
int[3] foo;
protected:
public:
VAO();
~VAO();
bind();
fill(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride = 0, const GLvoid* pointer = NULL);
}