]> git.tdb.fi Git - libs/gl.git/blob - source/renderbuffer.cpp
Rework Bind and enable it to restore the old binding
[libs/gl.git] / source / renderbuffer.cpp
1 /* $Id$
2
3 This file is part of libmspgl
4 Copyright © 2007  Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
6 */
7
8 #include "extension.h"
9 #include "ext_framebuffer_object.h"
10 #include "renderbuffer.h"
11
12 namespace Msp {
13 namespace GL {
14
15 Renderbuffer::Renderbuffer()
16 {
17         static RequireExtension _ext("GL_EXT_framebuffer_object");
18
19         glGenRenderbuffersEXT(1, &id);
20         bind();
21 }
22
23 Renderbuffer::~Renderbuffer()
24 {
25         glDeleteRenderbuffersEXT(1, &id);
26 }
27
28 void Renderbuffer::storage(PixelFormat fmt, unsigned w, unsigned h)
29 {
30         bind();
31         width = w;
32         height = h;
33         glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, fmt, width, height);
34 }
35
36 void Renderbuffer::bind() const
37 {
38         if(set_current(this))
39                 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, id);
40 }
41
42 void Renderbuffer::unbind()
43 {
44         if(set_current(0))
45                 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
46 }
47
48 } // namespace GL
49 } // namespace Msp