X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fframebuffer.h;h=acb0d3ee918b5fa946549fc12484027fc9a26505;hb=ff8a8bfa114a690b7b25d9503bb5ed811d6aeca9;hp=f2fbfea40e19bca9577cd97a540d6bfcfb3b1673;hpb=6353307898cd397e2bcde13e2448a8a678a60004;p=libs%2Fgl.git diff --git a/source/core/framebuffer.h b/source/core/framebuffer.h index f2fbfea4..acb0d3ee 100644 --- a/source/core/framebuffer.h +++ b/source/core/framebuffer.h @@ -19,21 +19,6 @@ class Texture2DMultisample; 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, @@ -44,7 +29,7 @@ enum BufferBits class framebuffer_incomplete: public std::runtime_error { public: - framebuffer_incomplete(FramebufferStatus); + framebuffer_incomplete(const std::string &); virtual ~framebuffer_incomplete() throw() { } }; @@ -62,6 +47,9 @@ the GL_EXT_framebuffer_blit extension. */ class Framebuffer { + friend class Commands; + friend class PipelineState; + private: struct Attachment { @@ -79,7 +67,7 @@ private: std::vector attachments; unsigned width; unsigned height; - mutable FramebufferStatus status; + mutable unsigned status; mutable unsigned dirty; Framebuffer(unsigned); @@ -129,18 +117,12 @@ public: 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; void refresh() const { if(dirty) update(); } - unsigned get_id() const { return id; } - void set_debug_name(const std::string &); static Framebuffer &system();