]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/framebuffer.h
Update and improve documentation
[libs/gl.git] / source / core / framebuffer.h
index 262e4248c3e251ddeb86e99ef335dc4e4ad501a3..d2029022d94b6fee2d0380d43a18dbff90338a63 100644 (file)
@@ -23,16 +23,12 @@ public:
 };
 
 /**
-Framebuffer objects can be used to perform offscreen rendering.  The most
-common application is rendering to a texture, which can then be used for
-fullscreen shader effects.
+Uses one or more textures as buffers to draw into.  Framebuffers can contain
+multiple color buffers to match multiple outputs from a fragment shader, but
+only one depth and stencil buffer.
 
-A framebuffer consist of a number of logical buffers, such as color and depth
-buffers.  Textures can be attached to the logical buffers.  At least one image
-must be attached for the framebuffer to be usable.
-
-Requires the GL_EXT_framebuffer_object extension.  The blit functions require
-the GL_EXT_framebuffer_blit extension.
+RenderTarget provides a higher-level interface which manages the textures as
+well as the framebuffer itself.
 */
 class Framebuffer: public FramebufferBackend
 {
@@ -86,13 +82,21 @@ public:
        portion of attch is considered; pixel format is ignored.  The framebuffer
        must have a format and the format of the texture must match that defined
        in the framebuffer for this attachment point. */
-       void attach(FrameAttachment attch, Texture2D &tex, unsigned level = 0);
+       void attach(FrameAttachment attch, Texture2D &, unsigned level = 0);
+
+       void attach(FrameAttachment attch, Texture2DMultisample &);
+
+       /** Attaches a single layer from a 3-dimensional texture to the
+       framebuffer. */
+       void attach(FrameAttachment attch, Texture3D &, unsigned layer, unsigned level = 0);
+
+       void attach(FrameAttachment attch, TextureCube &, TextureCubeFace face, unsigned level = 0);
+
+       /** Attaches a layered texture to the framebuffer.  Shaders can direct
+       output to a particular layer. */
+       void attach_layered(FrameAttachment attch, Texture3D &, unsigned level = 0);
 
-       void attach(FrameAttachment attch, Texture2DMultisample &tex);
-       void attach(FrameAttachment attch, Texture3D &tex, unsigned layer, unsigned level = 0);
-       void attach(FrameAttachment attch, TextureCube &tex, TextureCubeFace face, unsigned level = 0);
-       void attach_layered(FrameAttachment attch, Texture3D &tex, unsigned level = 0);
-       void attach_layered(FrameAttachment attch, TextureCube &tex, unsigned level = 0);
+       void attach_layered(FrameAttachment attch, TextureCube &, unsigned level = 0);
        void detach(FrameAttachment attch);
 
        void resize(const WindowView &);