6#include <brenta/renderer/opengl/buffer.hpp>
7#include <brenta/logger.hpp>
11int Buffer::tot_memory = 0;
13Buffer::Buffer(Buffer::Target target)
25void Buffer::init(Buffer::Target target)
27 this->target = target;
30 EVENT(Logger::Event::Lifetime,
"buffer: initialized {}", this->
id);
36 if (this->
id == 0)
return;
38 glDeleteBuffers(1, &this->
id);
41 Buffer::tot_memory -= this->memory;
44 EVENT(Logger::Event::Lifetime,
"buffer: destroyed {}", this->
id);
49void Buffer::bind()
const
53 ERROR(
"Buffer::bind: not initialized");
56 glBindBuffer(this->target, this->
id);
60void Buffer::unbind()
const
62 glBindBuffer(this->target, 0);
66Buffer::Id Buffer::get_id()
const
71Buffer::Target &Buffer::get_target()
76void Buffer::set_id(Buffer::Id
id)
81void Buffer::set_target(Buffer::Target target)
83 this->target = target;
86void Buffer::copy_data(
const void *data, GLsizeiptr size,
87 Buffer::DataUsage usage)
89 glBufferData(this->target, size, data, (GLenum) usage);
92 Buffer::tot_memory -= this->memory;
94 Buffer::tot_memory += size;