38 lines
947 B
C++
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);
|
|
} |