X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fframebuffer.h;h=3bf439f98cc62ca3250369abe61cdaf6c5c9de9c;hb=80977251da90a6878b82d143c22b8335284d3b3e;hp=236d29e6a3dd65a8fddcf3bdc567b92530b80c21;hpb=6afbace895a7bbcf216ab8e48280ea0303ab5892;p=libs%2Fgl.git diff --git a/source/framebuffer.h b/source/framebuffer.h index 236d29e6..3bf439f9 100644 --- a/source/framebuffer.h +++ b/source/framebuffer.h @@ -5,6 +5,7 @@ #include "bindable.h" #include "gl.h" #include "texturecube.h" +#include namespace Msp { namespace GL { @@ -57,6 +58,13 @@ enum RWBuffer FRONT_AND_BACK = GL_FRONT_AND_BACK }; +class framebuffer_incomplete: public std::runtime_error +{ +public: + framebuffer_incomplete(FramebufferStatus); + virtual ~framebuffer_incomplete() throw() { } +}; + /** Framebuffer objects can be used to perform offscreen rendering. The most common application is rendering to a texture, which can then be used for @@ -119,6 +127,10 @@ public: or one of the error status codes otherwise. */ FramebufferStatus check_status() const; + /** Ensures that the framebuffer is complete, throwing an exception if it + isn't. */ + void require_complete() const; + void clear(BufferBits); /** Blits a region from another framebuffer into this one. If the source