Renderbuffer::Renderbuffer()
{
- require_extension("GL_EXT_framebuffer_object");
+ static RequireExtension _ext("GL_EXT_framebuffer_object");
glGenRenderbuffersEXT(1, &id);
bind();
glDeleteRenderbuffersEXT(1, &id);
}
+void Renderbuffer::storage(PixelFormat fmt, unsigned w, unsigned h)
+{
+ bind();
+ width = w;
+ height = h;
+ glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, fmt, width, height);
+}
+
void Renderbuffer::bind() const
{
- glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, id);
+ if(set_current(this))
+ glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, id);
}
-void Renderbuffer::storage(PixelFormat fmt, sizei width, sizei height)
+void Renderbuffer::unbind()
{
- bind();
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, fmt, width, height);
+ if(set_current(0))
+ glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
}
} // namespace GL