6#include <brenta/buffer.hpp>
7#include <brenta/logger.hpp>
10using namespace brenta::types;
14 this->init(input_target);
24 glBufferData(this->
target, size, data, usage);
29 if (this->
target != GL_ELEMENT_ARRAY_BUFFER)
33 glBufferData(this->
target, size, data, usage);
38 if (this->
target == GL_ELEMENT_ARRAY_BUFFER)
42 glBufferData(this->
target, size, data, usage);
45void buffer::init(GLenum input_target)
47 this->
target = input_target;
50 DEBUG(
"buffer: initialized");
55 if (this->
id == 0)
return;
57 glDeleteBuffers(1, &this->
id);
60 DEBUG(
"buffer: destroyed");
67 ERROR(
"buffer::bind: not initialized");
70 glBindBuffer(this->
target, this->
id);
75 glBindBuffer(this->
target, 0);
83GLenum buffer::get_target()
88void buffer::set_id(
unsigned int id)
93void buffer::set_target(GLenum target)
void copy_indices(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
void copy_vertices(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
void copy_data(GLsizeiptr size, const void *data, GLenum usage)
Copy data to the buffer object.
buffer()
Default constructor, does nothing.
unsigned int id
Buffer object id, generated by OpenGL.
GLenum target
Buffer object target (like GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER...)