#include "client/rendering/wrapper/VertexBuffer.h" VertexBuffer::VertexBuffer() : vertexArray(0), vertexBuffer(0) { glGenVertexArrays(1, &vertexArray); glGenBuffers(1, &vertexBuffer); } VertexBuffer::~VertexBuffer() { glDeleteBuffers(1, &vertexBuffer); glDeleteVertexArrays(1, &vertexArray); } void VertexBuffer::setFloatAttribute(int index, int length, int offset, int step) { glVertexAttribPointer(index, length, GL_FLOAT, false, sizeof (float) * step, static_cast (0) + offset); glEnableVertexAttribArray(index); } void VertexBuffer::setData(int size, const void* data) { glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); } void VertexBuffer::bindArray() const { glBindVertexArray(vertexArray); } void VertexBuffer::bindBuffer() const { glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer); } void VertexBuffer::bind() const { bindArray(); bindBuffer(); } void VertexBuffer::draw(int vertices) const { glDrawArrays(GL_TRIANGLES, 0, vertices); } void VertexBuffer::drawLines(int vertices) const { glDrawArrays(GL_LINES, 0, vertices); }