X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fframebuffer.h;h=f977ad7eb11fdc109740c7a19077ca1e3e7d7ec9;hp=8563d2f98418d0f315720a9e4b734a3dc6c58817;hb=HEAD;hpb=4324df6e3d807d35e02e828320e436c509275520 diff --git a/source/framebuffer.h b/source/framebuffer.h deleted file mode 100644 index 8563d2f9..00000000 --- a/source/framebuffer.h +++ /dev/null @@ -1,84 +0,0 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - -#ifndef MSP_GL_FRAMEBUFFER_H_ -#define MSP_GL_FRAMEBUFFER_H_ - -#include -#include "types.h" - -namespace Msp { -namespace GL { - -class Renderbuffer; -class Texture2D; - -enum FramebufferAttachment -{ - COLOR_ATTACHMENT0 = GL_COLOR_ATTACHMENT0_EXT, - COLOR_ATTACHMENT1 = GL_COLOR_ATTACHMENT1_EXT, - COLOR_ATTACHMENT2 = GL_COLOR_ATTACHMENT2_EXT, - COLOR_ATTACHMENT3 = GL_COLOR_ATTACHMENT3_EXT, - DEPTH_ATTACHMENT = GL_DEPTH_ATTACHMENT_EXT, - STENCIL_ATTACHMENT = GL_STENCIL_ATTACHMENT_EXT -}; - -enum FramebufferStatus -{ - FRAMEBUFFER_INCOMPLETE_ATTACHMENT = GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT, - FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT, - FRAMEBUFFER_INCOMPLETE_DIMENSIONS = GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT, - FRAMEBUFFER_INCOMPLETE_FORMATS = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT, - FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT, - FRAMEBUFFER_INCOMPLETE_READ_BUFFER = GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT, - FRAMEBUFFER_UNSUPPORTED = GL_FRAMEBUFFER_UNSUPPORTED_EXT, - FRAMEBUFFER_COMPLETE = GL_FRAMEBUFFER_COMPLETE_EXT -}; - -/** -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. - -A framebuffer consist of a number of logical buffers, such as color and depth -buffers. Renderbuffers and 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. -*/ -class Framebuffer -{ -private: - uint id; - - static const Framebuffer *current; - -public: - Framebuffer(); - ~Framebuffer(); - - void bind() const; - - void attach(FramebufferAttachment attch, Renderbuffer &rbuf); - void attach(FramebufferAttachment attch, Texture2D &tex, int level); - - /** - Checks the completeness status of the framebuffer. Returns - FRAMEBUFFER_COMPLETE if the framebuffer is complate and can be rendered to, - or one of the error status codes otherwise. - */ - FramebufferStatus check_status() const; - - static void unbind(); -private: - void maybe_bind() const; -}; - -} // namespace GL -} // namespace Msp - -#endif