class Texture3D;
class WindowView;
-enum FramebufferStatus
-{
- FRAMEBUFFER_INCOMPLETE_ATTACHMENT = GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
- FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
- 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,
- FRAMEBUFFER_INCOMPLETE_READ_BUFFER = GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
- FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
- FRAMEBUFFER_INCOMPLETE_LAYER_COUNT = GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB,
- FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
- FRAMEBUFFER_UNSUPPORTED = GL_FRAMEBUFFER_UNSUPPORTED,
- FRAMEBUFFER_COMPLETE = GL_FRAMEBUFFER_COMPLETE
-};
-
enum BufferBits
{
COLOR_BUFFER_BIT = GL_COLOR_BUFFER_BIT,
class framebuffer_incomplete: public std::runtime_error
{
public:
- framebuffer_incomplete(FramebufferStatus);
+ framebuffer_incomplete(const std::string &);
virtual ~framebuffer_incomplete() throw() { }
};
std::vector<Attachment> attachments;
unsigned width;
unsigned height;
- mutable FramebufferStatus status;
+ mutable unsigned status;
mutable unsigned dirty;
Framebuffer(unsigned);
void resize(const WindowView &);
- /** Returns FRAMEBUFFER_COMPLETE if the framebuffer is complete and can be
- rendered to, or one of the error status codes otherwise. */
- FramebufferStatus get_status() const { return status; }
-
/** Ensures that the framebuffer is complete, throwing an exception if it
isn't. */
void require_complete() const;