KlassischeKeplerKriege/KKK/game/src/glclasses.cpp

54 lines
1.2 KiB
C++
Raw Normal View History

2016-09-15 15:23:02 +00:00
#include <include/glclasses.h>
2016-09-25 20:24:04 +00:00
#define TBufferObject_(pre, post) template <GLenum T> pre endofthejedi::BufferObject<T>::post
2016-09-15 15:23:02 +00:00
#define TBufferObject(...) TBufferObject_(__VA_ARGS__)
TBufferObject(, BufferObject)() {
glGenBuffers(1, &m_name);
}
TBufferObject(, ~BufferObject)() {
glDeleteBuffers(1, m_name);
}
TBufferObject(void, bind)() {
glBindBuffer(T, m_name);
}
TBufferObject(void, bind)(GLuint index, GLintptr offset, GLsizeiptr size) {
//todo
}
TBufferObject(void, fill)(GLenum usage, GLsizei size, GLvoid* data) {
glBufferData(T, size, data, usage);
}
TBufferObject(void, subfill)(GLintptr offset, GLsizei size, const GLvoid* data) {
glBufferSubData(T, offset, size, data);
}
TBufferObject(void, map)(GLenum access) {
//todo
}
TBufferObject(void, unmap)() {
//todo
}
2016-09-25 20:24:04 +00:00
endofthejedi::VAO::VAO() {
glGenVertexArrays(1, &m_name);
}
endofthejedi::VAO::~VAO() {
glDeleteVertexArrays(1, &m_name);
}
2016-09-15 15:23:02 +00:00
2016-09-25 20:24:04 +00:00
void endofthejedi::VAO::bind() {
glBindVertexArray(m_name);
}
void endofthejedi::VAO::fill(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer) {
glEnableVertexAttribArray(index);
glVertexAttribPointer(index, size, GL_FLOAT, normalized, stride, pointer);
}