#include namespace psemek::gfx { buffer::buffer() { gl::GenBuffers(1, &id_); } buffer::buffer(buffer && other) : id_(other.id_) { other.id_ = 0; } buffer & buffer::operator = (buffer && other) { if (this == &other) return *this; gl::DeleteBuffers(1, &id_); id_ = other.id_; other.id_ = 0; return *this; } buffer::~buffer() { gl::DeleteBuffers(1, &id_); } buffer buffer::null() { return buffer(0); } void buffer::bind() const { gl::BindBuffer(gl::ARRAY_BUFFER, id_); } void buffer::load(void const * data, std::size_t size, GLenum usage) { bind(); gl::BufferData(gl::ARRAY_BUFFER, size, data, usage); } buffer::buffer(GLuint id) : id_(id) {} }