1#include <zen/platform/OpenGL/ZEN_OpenGLBuffer.h>
5 OpenGLVertexBuffer::OpenGLVertexBuffer(
float *vertices, uint32_t size) {
6 glCreateBuffers(1, &m_rendererID);
7 glBindBuffer(GL_ARRAY_BUFFER, m_rendererID);
8 glBufferData(GL_ARRAY_BUFFER, size, vertices, GL_STATIC_DRAW);
11 OpenGLVertexBuffer::~OpenGLVertexBuffer() { glDeleteBuffers(1, &m_rendererID); }
13 void OpenGLVertexBuffer::bind()
const { glBindBuffer(GL_ARRAY_BUFFER, m_rendererID); }
14 void OpenGLVertexBuffer::unbind()
const { glBindBuffer(GL_ARRAY_BUFFER, 0); }
16 void OpenGLVertexBuffer::setData(
const void *data, uint32_t size) {
17 glBindBuffer(GL_ARRAY_BUFFER, m_rendererID);
18 glBufferSubData(GL_ARRAY_BUFFER, 0, size, data);
22 OpenGLIndexBuffer::OpenGLIndexBuffer(uint32_t *indices, uint32_t count) : m_count(count) {
23 glCreateBuffers(1, &m_rendererID);
24 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_rendererID);
25 glBufferData(GL_ELEMENT_ARRAY_BUFFER, count *
sizeof(uint32_t), indices, GL_STATIC_DRAW);
28 OpenGLIndexBuffer::~OpenGLIndexBuffer() { glDeleteBuffers(1, &m_rendererID); }
30 void OpenGLIndexBuffer::bind()
const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_rendererID); }
31 void OpenGLIndexBuffer::unbind()
const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); }
33 uint32_t OpenGLIndexBuffer::getCount()
const {
38 void OpenGLIndexBuffer::setCount(uint32_t count) { m_count = count; }