]> git.tdb.fi Git - libs/gl.git/blobdiff - source/framebuffer.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / framebuffer.h
diff --git a/source/framebuffer.h b/source/framebuffer.h
deleted file mode 100644 (file)
index e33deda..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-#ifndef MSP_GL_FRAMEBUFFER_H_
-#define MSP_GL_FRAMEBUFFER_H_
-
-#include <vector>
-#include "bindable.h"
-#include "gl.h"
-#include "texturecube.h"
-
-namespace Msp {
-namespace GL {
-
-class Renderbuffer;
-class Texture;
-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
-};
-
-enum BufferBits
-{
-       COLOR_BUFFER_BIT   = GL_COLOR_BUFFER_BIT,
-       DEPTH_BUFFER_BIT   = GL_DEPTH_BUFFER_BIT,
-       STENCIL_BUFFER_BIT = GL_STENCIL_BUFFER_BIT,
-       ACCUM_BUFFER_BIT   = GL_ACCUM_BUFFER_BIT
-};
-
-enum RWBuffer
-{
-       NO_BUFFER      = GL_NONE,
-       FRONT_LEFT     = GL_FRONT_LEFT,
-       FRONT_RIGHT    = GL_FRONT_RIGHT,
-       BACK_LEFT      = GL_BACK_LEFT,
-       BACK_RIGHT     = GL_BACK_RIGHT,
-       FRONT          = GL_FRONT,
-       BACK           = GL_BACK,
-       LEFT           = GL_LEFT,
-       RIGHT          = GL_RIGHT,
-       FRONT_AND_BACK = GL_FRONT_AND_BACK
-};
-
-/**
-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: public Bindable<Framebuffer>
-{
-private:
-       struct Attachment
-       {
-               FramebufferAttachment attachment;
-               GLenum type;
-               union
-               {
-                       Renderbuffer *rbuf;
-                       Texture *tex;
-               };
-               unsigned level;
-               GLenum cube_face;
-
-               Attachment(FramebufferAttachment);
-               void set(Renderbuffer &);
-               void set(Texture &, GLenum, unsigned);
-               void clear();
-       };
-
-       unsigned id;
-       std::vector<Attachment> attachments;
-       unsigned width;
-       unsigned height;
-       mutable unsigned dirty;
-
-       Framebuffer(unsigned);
-public:
-       Framebuffer();
-       ~Framebuffer();
-
-       unsigned get_width() const { return width; }
-       unsigned get_height() const { return height; }
-
-private:
-       void update_attachment(unsigned) const;
-       void check_size();
-public:
-       void attach(FramebufferAttachment attch, Renderbuffer &rbuf);
-       void attach(FramebufferAttachment attch, Texture2D &tex, unsigned level = 0);
-       void attach(FramebufferAttachment attch, TextureCube &tex, TextureCubeFace face, unsigned level = 0);
-       void detach(FramebufferAttachment attch);
-
-       /**
-       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;
-
-       void clear(BufferBits);
-       void blit_from(const Framebuffer &, int, int, int, int, int, int, int, int, BufferBits, bool);
-       void blit_from(const Framebuffer &, int, int, unsigned, unsigned, int, int, BufferBits);
-       void blit_from(const Framebuffer &, BufferBits, bool);
-
-       void bind() const;
-
-       static const Framebuffer *current();
-       static void unbind();
-
-       static Framebuffer &system();
-private:
-       unsigned get_attachment_index(FramebufferAttachment);
-};
-
-inline BufferBits operator|(BufferBits a, BufferBits b)
-{ return static_cast<BufferBits>(static_cast<int>(a)|static_cast<int>(b)); }
-
-} // namespace GL
-} // namespace Msp
-
-#endif