X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=inline;f=source%2Fframebuffer.h;h=e33deda9218d9bf3afea690b44fc1e9dd6329bc1;hb=2be605933f62521bb22780256386a14b371c8b17;hp=514208d6db161fd3635f39538760bc6435160b94;hpb=3663bed18358a2399b2a8a8f7779d85e0ed81bd0;p=libs%2Fgl.git diff --git a/source/framebuffer.h b/source/framebuffer.h index 514208d6..e33deda9 100644 --- a/source/framebuffer.h +++ b/source/framebuffer.h @@ -1,16 +1,10 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_FRAMEBUFFER_H_ #define MSP_GL_FRAMEBUFFER_H_ #include #include "bindable.h" #include "gl.h" +#include "texturecube.h" namespace Msp { namespace GL { @@ -86,11 +80,12 @@ private: Renderbuffer *rbuf; Texture *tex; }; - int level; + unsigned level; + GLenum cube_face; Attachment(FramebufferAttachment); void set(Renderbuffer &); - void set(Texture &, int); + void set(Texture &, GLenum, unsigned); void clear(); }; @@ -105,12 +100,16 @@ 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, int level); + void attach(FramebufferAttachment attch, Texture2D &tex, unsigned level = 0); + void attach(FramebufferAttachment attch, TextureCube &tex, TextureCubeFace face, unsigned level = 0); void detach(FramebufferAttachment attch); /** @@ -121,6 +120,9 @@ public: 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; @@ -130,9 +132,6 @@ public: static Framebuffer &system(); private: unsigned get_attachment_index(FramebufferAttachment); - -public: - }; inline BufferBits operator|(BufferBits a, BufferBits b)