representation d'un (read) framebuffer. More...
#include <TPFramebuffer.h>
Public Member Functions | |
GLReadFramebuffer () | |
constructeur. | |
GLReadFramebuffer (const int w, const int h, const unsigned int buffer_bits) | |
constructeur. cf GLRendertarget::GLRendertarget( ). | |
~GLReadFramebuffer () | |
destructeur. | |
int | attachTexture (const unsigned int buffer, GLTexture *texture) |
associe une texture au framebuffer. | |
int | validate () |
verifie la configuration du framebuffer. | |
int | bind () |
utilisation interne. active le framebuffer. | |
int | unbind () |
utilisation interne. desactive le framebuffer. | |
int | setReadbuffer (const unsigned int buffer, const unsigned int level=0) |
definit le buffer de lecture, cf BlitFramebuffer, par exemple. texture 2d. | |
int | setFaceReadbuffer (const GLenum face, const unsigned int buffer, const unsigned int level=0) |
definit le buffer de lecture, texture cube. | |
int | setLayerReadbuffer (const unsigned int layer, const unsigned int buffer, const unsigned int level=0) |
definit le buffer de lecture, texture 2d array. | |
int | attachTexture (const unsigned int state, const unsigned int buffer, GLTexture *texture) |
associe une texture au framebuffer. | |
int | createGLResource () |
creation de l'objet opengl. | |
int | releaseGLResource () |
destruction de l'objet opengl. | |
int | validate (const unsigned int state) |
verifie la configuration du framebuffer. | |
int | bind (const unsigned int state) |
active le framebuffer. | |
int | unbind (const unsigned int state) |
desactive le framebuffer. | |
GLuint | name () const |
renvoie le nom de l'objet opengl. | |
int | width () const |
renvoie la largeur du framebuffer. renvoie 0, si la largeur du framebuffer n'est pas definie. | |
int | height () const |
renvoie la hauteur du framebuffer. renvoie 0, si la hauteur du framebuffer n'est pas definie. | |
GLTexture * | texture (const unsigned int buffer) |
renvoie la texture associee a buffer (cf gk::COLOR0, gk::COLOR1, gk::DEPTH, etc.) | |
int | setBuffer (const unsigned int state, const unsigned int draw_buffer, const unsigned int buffer, const unsigned int level=0) |
associe une texture du framebuffer ('buffer', gk::COLOR0) a un drawbuffer ('draw_buffer', gk::DRAW0). texture2d classique. | |
int | setFaceBuffer (const unsigned int state, const GLenum face, const unsigned int draw_buffer, const unsigned int buffer, const unsigned int level=0) |
associe une face d'une texture cube au framebuffer. cf. GLTextureCube. | |
int | setLayerBuffer (const unsigned int state, const unsigned int layer, const unsigned int draw_buffer, const unsigned int buffer, const unsigned int level=0) |
associe un layer d'un texture2DArray au framebuffer. cf. GLTexture2DArray. | |
int | resetBuffer (const unsigned int state, const unsigned int draw_buffer) |
desactive un drawbuffer du framebuffer. | |
int | updateBufferMipmap (const unsigned int buffer, const unsigned int unit=0) |
met a jour les mipmaps de la texture attachee au framebuffer apres un rendu. | |
Protected Attributes | |
std::vector< GLTexture * > | m_textures |
std::vector< GLenum > | m_draw_buffers |
int | m_draw_buffers_count |
int | m_width |
int | m_height |
unsigned int | m_name |
representation d'un (read) framebuffer.
int gk::GLRendertarget::attachTexture | ( | const unsigned int | state, | |
const unsigned int | buffer, | |||
GLTexture * | texture | |||
) | [inherited] |
associe une texture au framebuffer.
buffer = gk::COLOR0 ou gk::DEPTH, etc. toutes les textures doivent avoir les memes dimensions.
attention: la texture n'est pas automatiquement associee a un draw buffer, utiliser
exemple d'utilisation :
gk::GLFramebuffer framebuffer; // cree un framebuffer "vide" framebuffer.attachTexture(gk::COLOR0, texture1); // associe une texture couleur au framebuffer framebuffer.setDrawbuffer(gk::DRAW0, gk::COLOR0); // associe la texture au draw buffer 0 framebuffer.attachTexture(gk::DEPTH, texture2); // associe une texture au z buffer. gk::setFramebuffer(&framebuffer); // active le framebuffer et les textures associees.
int gk::GLRendertarget::setBuffer | ( | const unsigned int | state, | |
const unsigned int | draw_buffer, | |||
const unsigned int | buffer, | |||
const unsigned int | level = 0 | |||
) | [inherited] |
associe une texture du framebuffer ('buffer', gk::COLOR0) a un drawbuffer ('draw_buffer', gk::DRAW0). texture2d classique.
exemple d'utilisation :
gk::GLFramebuffer framebuffer; framebuffer.attachTexture(gk::COLOR0, texture1); framebuffer.attachTexture(gk::COLOR2, texture2); framebuffer.attachTexture(gk::DEPTH, textured); framebuffer.setDrawbuffer(gk::DRAW0, gk::COLOR0); framebuffer.setDrawbuffer(gk::DRAW1, gk::COLOR2); framebuffer.setDrawbuffer(gk::DEPTH, gk::DEPTH); gk::setFramebuffer(&framebuffer);
exemple avec un shader :
gk::GLShaderProgram *program= ...; gk::GLFramebuffer framebuffer; framebuffer.attachTexture(gk::COLOR0, texture1); framebuffer.attachTexture(gk::COLOR2, texture2); framebuffer.attachTexture(gk::DEPTH, textured); framebuffer.setDrawbuffer(program->drawbuffer("color"), gk::COLOR0); framebuffer.setDrawbuffer(program->drawbuffer("normal"), gk::COLOR2); framebuffer.setDrawbuffer(gk::DEPTH, gk::DEPTH); gk::setFramebuffer(&framebuffer);
References gk::GLRendertarget::height(), gk::GLRendertarget::name(), gk::FramebufferState::setFramebuffer(), and gk::GLRendertarget::width().
Referenced by gk::GLFramebuffer::setDrawbuffer(), setReadbuffer(), and gk::GLFramebuffer::setReadbuffer().