X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fframebuffer.h;h=92cb285bd842ae7a5f669fd28f47ecac88328820;hp=579d22f8f33c3993be7ee7f1d1f78d984a207267;hb=cfd4d36c2b6b6095ada3aef8082e5d409a233a21;hpb=08e19bc2b4eba572bc7699378cf55cd8772ac67e diff --git a/source/framebuffer.h b/source/framebuffer.h index 579d22f8..92cb285b 100644 --- a/source/framebuffer.h +++ b/source/framebuffer.h @@ -6,7 +6,7 @@ #include "gl.h" #include "texturecube.h" #include -#include +#include namespace Msp { namespace GL { @@ -14,6 +14,7 @@ namespace GL { class Renderbuffer; class Texture; class Texture2D; +class Texture3D; enum FramebufferAttachment { @@ -29,10 +30,13 @@ 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, - FRAMEBUFFER_INCOMPLETE_FORMATS = GL_FRAMEBUFFER_INCOMPLETE_FORMATS, + 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 }; @@ -44,20 +48,6 @@ enum BufferBits STENCIL_BUFFER_BIT = GL_STENCIL_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 -}; - class framebuffer_incomplete: public std::runtime_error { public: @@ -130,6 +120,7 @@ private: public: void attach(FramebufferAttachment attch, Renderbuffer &rbuf); void attach(FramebufferAttachment attch, Texture2D &tex, unsigned level = 0); + void attach(FramebufferAttachment attch, Texture3D &tex, unsigned layer, unsigned level = 0); void attach(FramebufferAttachment attch, TextureCube &tex, TextureCubeFace face, unsigned level = 0); void detach(FramebufferAttachment attch);