]> git.tdb.fi Git - libs/gl.git/blobdiff - source/framebuffer.h
Include extension headers in places that need enums from them
[libs/gl.git] / source / framebuffer.h
index 236d29e6a3dd65a8fddcf3bdc567b92530b80c21..3bf439f98cc62ca3250369abe61cdaf6c5c9de9c 100644 (file)
@@ -5,6 +5,7 @@
 #include "bindable.h"
 #include "gl.h"
 #include "texturecube.h"
+#include <msp/gl/extensions/ext_framebuffer_object.h>
 
 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