psemek/libs/gfx/source/renderbuffer.cpp

52 lines
890 B
C++

#include <psemek/gfx/renderbuffer.hpp>
namespace psemek::gfx
{
renderbuffer::renderbuffer()
{
gl::GenRenderbuffers(1, &id_);
}
renderbuffer::renderbuffer(renderbuffer && other)
{
id_ = other.id_;
other.id_ = 0;
}
renderbuffer & renderbuffer::operator = (renderbuffer && other)
{
if (this == &other) return *this;
gl::DeleteRenderbuffers(1, &id_);
id_ = other.id_;
other.id_ = 0;
return *this;
}
renderbuffer::~renderbuffer()
{
gl::DeleteRenderbuffers(1, &id_);
}
renderbuffer renderbuffer::null()
{
return renderbuffer(0);
}
void renderbuffer::bind() const
{
gl::BindRenderbuffer(gl::RENDERBUFFER, id_);
}
void renderbuffer::storage(GLenum internal_format, GLsizei width, GLsizei height)
{
bind();
gl::RenderbufferStorage(gl::RENDERBUFFER, internal_format, width, height);
}
renderbuffer::renderbuffer(GLuint id)
: id_(id)
{}
}