VISH
0.2
|
Class interface to the OpenGL Framebuffer API. More...
#include </home/werner/origo/vish/ocean/GLvish/Framebuffer.hpp>
Class interface to the OpenGL Framebuffer API.
http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt
Application-created framebuffer objects (i.e., those with a non-zero name) differ from the default window-system-provided framebuffer in a few important ways. First and foremost, unlike the window-system-provided framebuffer, application-created-framebuffers have modifiable attachment points for each logical buffer in the framebuffer. Framebuffer-attachable images can be attached to and detached from these attachment points, which are described further in section 4.4.2. Also, the size and format of the images attached to application-created framebuffers are controlled entirely within the GL interface, and are not affected by window-system events, such as pixel format selection, window resizes, and display mode changes.
Additionally, when rendering to or reading from an application created-framebuffer object,
Wizt::Framebuffer::Framebuffer | ( | ) |
Call GenFramebuffer(1).
Constructor and all member functions MUST be called with a valid OpenGL context.
bool Wizt::Framebuffer::attachColorBuffer | ( | const MemCore::RefPtr< Renderbuffer > & | Rb, |
int | i = 0 |
||
) | [inline] |
Render to render buffer pointer.
void Wizt::Framebuffer::bind_for_reading | ( | ) | const |
Select this framebuffer for read operations from attached Renderbuffers().
Note that multisample renderbuffers cannot be read (if they are not bound to the screen) and need to be copied to a non-multisample framebuffer first.
bool Wizt::Framebuffer::Blit | ( | const MemCore::RefPtr< Framebuffer > & | Source, |
GLint | srcX0, | ||
GLint | srcY0, | ||
GLint | srcX1, | ||
GLint | srcY1, | ||
GLint | dstX0, | ||
GLint | dstY0, | ||
GLint | dstX1, | ||
GLint | dstY1, | ||
GLbitfield | mask, | ||
GLenum | filter | ||
) | const |
Copy framebuffer content from a source framebuffer to another one.
This operation affects the framebuffer bindings. http://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt
bool Wizt::Framebuffer::BlitScreen | ( | const MemCore::RefPtr< Framebuffer > & | Source, |
GLint | srcX0, | ||
GLint | srcY0, | ||
GLint | srcX1, | ||
GLint | srcY1, | ||
GLint | dstX0, | ||
GLint | dstY0, | ||
GLint | dstX1, | ||
GLint | dstY1, | ||
GLbitfield | mask, | ||
GLenum | filter | ||
) | [static] |
Copy framebuffer content to the screen.
After this operation, the source will be set as read framebuffer, the draw buffer will be set to the screen.
GLuint Wizt::Framebuffer::id | ( | ) | const [inline] |
Return the OpenGL ID.
This is usually not required since this class should provide a complete API.
MemCore::RefPtr<Renderbuffer> Wizt::Framebuffer::mkRenderBuffer | ( | GLenum | internalformat | ) | const [inline] |
Return a compatible renderbuffer object.
This only works if there was at least one Renderbuffer already attached to this Framebuffer.