-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007, 2009-2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_GL_RENDERBUFFER_H_
#define MSP_GL_RENDERBUFFER_H_
/**
A Renderbuffer contains a single renderable image. It can be attached to a
Framebuffer to provide a logical buffer that is required to render the scene
-correctly but that is not needed as a texture later.
+correctly but that is not needed as a texture later. Renderbuffers also
+provide a capability for multisampling, which is not available in textures.
-Requires the GL_EXT_framebuffer_object extension.
+Requires the GL_EXT_framebuffer_object extension. Multisample renderbuffers
+additionally require the GL_EXT_framebuffer_multisample extension.
*/
class Renderbuffer: public Bindable<Renderbuffer>
{
unsigned get_width() const { return width; }
unsigned get_height() const { return height; }
- void storage(PixelFormat fmt, unsigned width, unsigned height);
- void storage_multisample(unsigned, PixelFormat fmt, unsigned, unsigned);
+ /** Allocates storage for the renderbuffer. */
+ void storage(PixelFormat fmt, unsigned wd, unsigned ht);
+
+ /** Allocates multisample storage for the renderbuffer. All attachments in
+ a framebuffer must have the same number of samples. To transfer the
+ contents to a texture for furter processing, use the framebuffer blit
+ functions.*/
+ void storage_multisample(unsigned samples, PixelFormat fmt, unsigned wd, unsigned ht);
void bind() const;