7 if (
is_valid()) _gl glDeleteBuffers(1, &vbo_);
10 target_ = _gl GLenum{};
13 _gl glBindBuffer(target_, vbo_);
17 _gl glBindBuffer(target, vbo_);
22 if (target_ == 0) target_ = _gl GL_ARRAY_BUFFER;
23 if (vbo_ == 0) _gl glGenBuffers(1, &vbo_);
25 _gl glBufferData(target_, size, data, usage);
29 std::vector<char> &data)
const {
31 _gl glGetBufferSubData(target_, 0, size_, data.data());
34 std::vector<char> &data, _gl GLenum target)
const {
36 _gl glGetBufferSubData(target, 0, size_, data.data());
39 if (is_valid()) _gl glDeleteBuffers(1, &vbo_);
42 _gl glBindBuffer(target_, 0);
45 _gl glBindBuffer(target, 0);
51 _gl glBufferSubData(target_, offset, size, data);
void bind_as(gl::GLenum target) const
void buffer_data(const void *data, gl::GLuint size, gl::GLenum usage)
void buffer_sub_data(const void *data, gl::GLuint offset, gl::GLuint size)
void get_buffer_data(std::vector< char > &data) const
Buffer(const Buffer &)=delete