]> git.tdb.fi Git - libs/gl.git/blob - source/renderbuffer.cpp
Don't bind RenderBuffer in constructor
[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 }
21
22 Renderbuffer::~Renderbuffer()
23 {
24         glDeleteRenderbuffersEXT(1, &id);
25 }
26
27 void Renderbuffer::storage(PixelFormat fmt, unsigned w, unsigned h)
28 {
29         Bind _bind(this, true);
30         width = w;
31         height = h;
32         glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, fmt, width, height);
33 }
34
35 void Renderbuffer::bind() const
36 {
37         if(set_current(this))
38                 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, id);
39 }
40
41 void Renderbuffer::unbind()
42 {
43         if(set_current(0))
44                 glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
45 }
46
47 } // namespace GL
48 } // namespace Msp