gk::GLRendertarget Class Reference

utilisation interne. representation d'un framebuffer. More...

#include <TPFramebuffer.h>

Inheritance diagram for gk::GLRendertarget:
gk::GLResource gk::GLFramebuffer gk::GLReadFramebuffer

List of all members.

Public Member Functions

 GLRendertarget ()
 constructeur par defaut.
int attachTexture (const GLenum target, const unsigned int buffer, GLTexture2D *texture, const int level=0)
 associe une texture existante au framebuffer.
int attachTexture (const GLenum target, const unsigned int buffer, GLDepthTexture *texture, const int level=0)
int attachTexture (const GLenum target, const unsigned int buffer, GLTexture2DArray *texture, const int layer, const int level=0)
int attachTexture (const GLenum target, const unsigned int buffer, GLTextureCube *texture, const GLenum face, const int level=0)
 GLRendertarget (const GLenum target, const int w, const int h, const unsigned int buffer_bits)
 constructeur : cree les textures et les associe au framebuffer. buffer_bits= gk::COLOR0_BIT | gk::DEPTH_BIT, par exemple.
virtual ~GLRendertarget ()
 destructeur.
int createGLResource ()
 creation de l'objet opengl.
int releaseGLResource ()
 destruction de l'objet opengl.
int validate (const GLenum target)
 verifie la configuration du framebuffer.
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.
GLTexturetexture (const unsigned int buffer)
 renvoie la texture associee a buffer (cf gk::COLOR0, gk::COLOR1, gk::DEPTH, etc.)
GLDepthTexturezbuffer ()
 renvoie le zbuffer
const std::vector< GLenum > & drawBuffers () const
 renvoie les draw buffers opengl / textures attachees (cf. glDrawBuffers() et GL_COLOR_ATTACHMENT0, etc.).
GLuint name () const
 operator GLuint () const

Protected Member Functions

template<typename Texture >
int attach_buffer (const unsigned int buffer, Texture *texture)

Protected Attributes

std::vector< GLTexture * > m_textures
std::vector< GLenum > m_draw_buffers
int m_width
int m_height
GLuint m_name

Detailed Description

utilisation interne. representation d'un framebuffer.


Constructor & Destructor Documentation

gk::GLRendertarget::GLRendertarget ( const GLenum  target,
const int  w,
const int  h,
const unsigned int  buffer_bits 
)

constructeur : cree les textures et les associe au framebuffer. buffer_bits= gk::COLOR0_BIT | gk::DEPTH_BIT, par exemple.

exemple d'utilisation :

    gk::GLFramebuffer framebuffer(512, 512, gk::COLOR0_BIT | gk::DEPTH_BIT);    // cree un framebuffer + une texture couleur + une texture profondeur
    gk::GLTexture *color= framebuffer.texture(gk::COLOR0);  // pour recuperer la texture associee au framebuffer.

References gk::GLTexture::createGLResource(), and gk::GLTexture::target().


Member Function Documentation

int gk::GLRendertarget::attachTexture ( const GLenum  target,
const unsigned int  buffer,
GLTexture2D texture,
const int  level = 0 
)

associe une texture existante au framebuffer.

buffer = gk::COLOR0, etc. ou gk::DEPTH. toutes les textures doivent avoir les memes dimensions.

References gk::GLTexture::target().

const std::vector<GLenum>& gk::GLRendertarget::drawBuffers (  )  const [inline]

renvoie les draw buffers opengl / textures attachees (cf. glDrawBuffers() et GL_COLOR_ATTACHMENT0, etc.).

    const std::vector<GLenum>& buffers= framebuffer->drawBuffers();
    glDrawbuffers((GLsizei) buffers.size(), &buffers.front());

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Friends
Generated on Mon Jan 9 15:57:18 2012 for gKitGL by  doxygen 1.6.3