1
0
Fork 0
Univerxel/src/client/render/gl/buffer/Abstract.cpp

38 lines
947 B
C++

#include "Abstract.hpp"
using namespace buffer;
Abstract::Abstract(GLenum shape): Shape(shape) {
glGenBuffers(1, &VertexBufferID);
}
Abstract::~Abstract() {
glDeleteBuffers(1, &VertexBufferID);
}
void Abstract::enableVertexAttrib() {
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, VertexBufferID);
glVertexAttribPointer(
0, // attribute
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
(void *)0 // array buffer offset
);
}
void Abstract::enableAllAttribs() {
enableVertexAttrib();
}
void Abstract::disableVertexAttrib() {
glDisableVertexAttribArray(0);
}
void Abstract::disableAllAttribs() {
disableVertexAttrib();
}
void Abstract::setVertices(const unsigned long size, const void *data) {
glBindBuffer(GL_ARRAY_BUFFER, VertexBufferID);
glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW);
}