Castor3D  ..
Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::FrameBufferabstract

Classe de tampon d'image. Plus de détails...

+ Graphe d'héritage de castor3d::FrameBuffer:
+ Graphe de collaboration de castor3d::FrameBuffer:

Fonctions membres publiques

 DECLARE_VECTOR (FrameBufferAttachmentSPtr, Attach)
 
C3D_API FrameBuffer (Engine &engine)
 Constructeur. Plus de détails...
 
virtual C3D_API ~FrameBuffer ()
 Destructeur. Plus de détails...
 
virtual C3D_API bool initialise ()=0
 Initialise les tampons de cache de couleur de profondeur. Plus de détails...
 
virtual C3D_API void cleanup ()=0
 Nettoie les tampons de cache. Plus de détails...
 
C3D_API void setClearColour (castor::RgbaColour const &colour)
 Définit la couleur utilisée quand Clear est appelée sur le tampon couleur. Plus de détails...
 
C3D_API void setClearColour (float r, float g, float b, float a)
 Définit la couleur utilisée quand Clear est appelée sur le tampon couleur. Plus de détails...
 
C3D_API void clear (BufferComponents targets) const
 Vide les tampons. Plus de détails...
 
C3D_API void bind (FrameBufferTarget target=FrameBufferTarget::eBoth) const
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
C3D_API void unbind () const
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
C3D_API void blitInto (FrameBuffer const &buffer, castor::Rectangle const &rect, BufferComponents const &components) const
 Blitte ce tampon dans celui donné Plus de détails...
 
C3D_API void stretchInto (FrameBuffer const &buffer, castor::Rectangle const &rectSrc, castor::Rectangle const &rectDst, BufferComponents const &components, InterpolationMode interpolation) const
 Stretche ce tampon dans celui donné. Plus de détails...
 
C3D_API void setDrawBuffers () const
 Définit les buffers dans lesquels le dessin doit être effectué Plus de détails...
 
C3D_API void setDrawBuffer (FrameBufferAttachmentSPtr attach) const
 Définit le tampon de dans lequel le dessin doit être effectué. Plus de détails...
 
C3D_API void attach (AttachmentPoint point, uint8_t index, TextureAttachmentSPtr texture, TextureType target, int layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void attach (AttachmentPoint point, TextureAttachmentSPtr texture, TextureType target, int layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void attach (AttachmentPoint point, uint8_t index, RenderBufferAttachmentSPtr renderBuffer)
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void attach (AttachmentPoint point, RenderBufferAttachmentSPtr renderBuffer)
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void detach (FrameBufferAttachmentSPtr attach)
 Détache une atache de ce tampon d'image. Plus de détails...
 
C3D_API FrameBufferAttachmentSPtr getAttachment (AttachmentPoint point, uint8_t index)
 Récupère un tampon attaché au point et à l'index d'attache donnés. Plus de détails...
 
C3D_API void detachAll ()
 Détache tous les objets attachés. Plus de détails...
 
C3D_API void resize (castor::Size const &size)
 Redimensionne tous les tampons attachés. Plus de détails...
 
void setSRGB (bool value)
 
bool isSRGB () const
 
virtual C3D_API void setDrawBuffers (AttachArray const &attaches) const =0
 Utilise les attaches données pour ce framebuffer, lors du prochain dessin. Plus de détails...
 
virtual C3D_API void setReadBuffer (AttachmentPoint point, uint8_t index) const =0
 Définit le tampon de couleur source pour la lecture de pixels. Plus de détails...
 
virtual C3D_API ColourRenderBufferSPtr createColourRenderBuffer (castor::PixelFormat format) const =0
 Crée un tampon de rendu couleur. Plus de détails...
 
virtual C3D_API DepthStencilRenderBufferSPtr createDepthStencilRenderBuffer (castor::PixelFormat format) const =0
 Crée un tampon de rendu profondeur/stencil. Plus de détails...
 
virtual C3D_API RenderBufferAttachmentSPtr createAttachment (RenderBufferSPtr renderBuffer) const =0
 Crée une attache à un tampon de rendu. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr createAttachment (TextureLayoutSPtr texture) const =0
 Crée une attache à une texture. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr createAttachment (TextureLayoutSPtr texture, uint32_t mipLevel) const =0
 Crée une attache à un mipmap d'une texture. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr createAttachment (TextureLayoutSPtr texture, CubeMapFace face) const =0
 Crée une attache à une face d'une texture cube. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr createAttachment (TextureLayoutSPtr texture, CubeMapFace face, uint32_t mipLevel) const =0
 Crée une attache à un mipmap d'une face d'une texture cube. Plus de détails...
 
virtual C3D_API bool isComplete () const =0
 Vérifies i le FBO est complet. Plus de détails...
 
virtual C3D_API void downloadBuffer (castor3d::AttachmentPoint point, uint8_t index, castor::PxBufferBaseSPtr buffer) const =0
 Récupère les données du tampon de rendu. Plus de détails...
 

Fonctions membres protégées

C3D_API castor::PixelFormat doGetPixelFormat (AttachmentPoint point, uint8_t index) const
 
virtual C3D_API void doClear (BufferComponents targets) const =0
 Vide les composantes de tampon données. Plus de détails...
 
virtual C3D_API void doBind (FrameBufferTarget target) const =0
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
virtual C3D_API void doUnbind () const =0
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
virtual C3D_API void doBlitInto (FrameBuffer const &buffer, castor::Rectangle const &rect, BufferComponents const &components) const =0
 Blitte ce tampon dans celui donné Plus de détails...
 
virtual C3D_API void doStretchInto (FrameBuffer const &buffer, castor::Rectangle const &rectSrc, castor::Rectangle const &rectDst, BufferComponents const &components, InterpolationMode interpolation) const =0
 Blitte ce tampon dans celui donné. Plus de détails...
 

Attributs protégés

AttachArray m_attaches
 
float m_redClear { 0.0f }
 
float m_greenClear { 0.0f }
 
float m_blueClear { 0.0f }
 
float m_alphaClear { 1.0f }
 
bool m_sRGB { false }
 

Description détaillée

Classe de tampon d'image.

Auteur
Sylvain DOREMUS
Version
0.7.0.0
Date
12/11/2012
Remarques
Un tampon d'image est là où une cible de rendu fait son rendu

Documentation des constructeurs et destructeur

◆ FrameBuffer()

C3D_API castor3d::FrameBuffer::FrameBuffer ( Engine engine)
explicit

Constructeur.

Paramètres
[in]engineLe moteur

◆ ~FrameBuffer()

virtual C3D_API castor3d::FrameBuffer::~FrameBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ attach() [1/4]

C3D_API void castor3d::FrameBuffer::attach ( AttachmentPoint  point,
uint8_t  index,
TextureAttachmentSPtr  texture,
TextureType  target,
int  layer = 0 
)

Attache une texture à ce tampon d'image, au point d'attache voulu.

Paramètres
[in]pointLe point d'attache
[in]indexL'index d'attache
[in]textureLa texture
[in]targetLa dimension à laquelle la texture doit être attachée
[in]layerLa couche associée, si p_dimension vaut TextureType::eThreeDimensions or TextureType::eTwoDimensionsArray

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ attach() [2/4]

C3D_API void castor3d::FrameBuffer::attach ( AttachmentPoint  point,
TextureAttachmentSPtr  texture,
TextureType  target,
int  layer = 0 
)

Attache une texture à ce tampon d'image, au point d'attache voulu.

Paramètres
[in]pointLe point d'attache
[in]textureLa texture
[in]targetLa dimension à laquelle la texture doit être attachée
[in]layerLa couche associée, si p_dimension vaut TextureType::eThreeDimensions or TextureType::eTwoDimensionsArray

◆ attach() [3/4]

C3D_API void castor3d::FrameBuffer::attach ( AttachmentPoint  point,
uint8_t  index,
RenderBufferAttachmentSPtr  renderBuffer 
)

Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu.

Paramètres
[in]pointLe point d'attache
[in]indexL'index d'attache
[in]renderBufferLe tampon de rendu

◆ attach() [4/4]

C3D_API void castor3d::FrameBuffer::attach ( AttachmentPoint  point,
RenderBufferAttachmentSPtr  renderBuffer 
)

Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu.

Paramètres
[in]pointLe point d'attache
[in]renderBufferLe tampon de rendu

◆ bind()

C3D_API void castor3d::FrameBuffer::bind ( FrameBufferTarget  target = FrameBufferTarget::eBoth) const

Fonction d'activation, pour dire au GPU qu'il est activé

Paramètres
[in]targetLa cible d'activation du tampon d'image

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ blitInto()

C3D_API void castor3d::FrameBuffer::blitInto ( FrameBuffer const &  buffer,
castor::Rectangle const &  rect,
BufferComponents const &  components 
) const

Blitte ce tampon dans celui donné

Paramètres
[in]bufferLe tampon recevant celui-ci
[in]rectLe rectangle
[in]componentsOU logique de BufferComponent indiquant les buffers à copier

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ cleanup()

virtual C3D_API void castor3d::FrameBuffer::cleanup ( )
pure virtual

Nettoie les tampons de cache.

◆ clear()

C3D_API void castor3d::FrameBuffer::clear ( BufferComponents  targets) const

Vide les tampons.

Paramètres
[in]targetsLes tampons à vider (combinaison de BufferComponent).

◆ createAttachment() [1/5]

virtual C3D_API RenderBufferAttachmentSPtr castor3d::FrameBuffer::createAttachment ( RenderBufferSPtr  renderBuffer) const
pure virtual

Crée une attache à un tampon de rendu.

Paramètres
[in]renderBufferLe tampon de rendu
Renvoie
L'attache créée

Implémenté dans castor3d::BackBuffers.

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ createAttachment() [2/5]

virtual C3D_API TextureAttachmentSPtr castor3d::FrameBuffer::createAttachment ( TextureLayoutSPtr  texture) const
pure virtual

Crée une attache à une texture.

Paramètres
[in]textureLa texture
Renvoie
L'attache créée

Implémenté dans castor3d::BackBuffers.

◆ createAttachment() [3/5]

virtual C3D_API TextureAttachmentSPtr castor3d::FrameBuffer::createAttachment ( TextureLayoutSPtr  texture,
uint32_t  mipLevel 
) const
pure virtual

Crée une attache à un mipmap d'une texture.

Paramètres
[in]textureLa texture.
[in]mipLevelLe niveau du mipmap.
Renvoie
L'attache créée

Implémenté dans castor3d::BackBuffers.

◆ createAttachment() [4/5]

virtual C3D_API TextureAttachmentSPtr castor3d::FrameBuffer::createAttachment ( TextureLayoutSPtr  texture,
CubeMapFace  face 
) const
pure virtual

Crée une attache à une face d'une texture cube.

Paramètres
[in]textureLa texture.
[in]faceLa face.
Renvoie
L'attache créée

Implémenté dans castor3d::BackBuffers.

◆ createAttachment() [5/5]

virtual C3D_API TextureAttachmentSPtr castor3d::FrameBuffer::createAttachment ( TextureLayoutSPtr  texture,
CubeMapFace  face,
uint32_t  mipLevel 
) const
pure virtual

Crée une attache à un mipmap d'une face d'une texture cube.

Paramètres
[in]textureLa texture.
[in]faceLa face.
[in]mipLevelLe niveau du mipmap.
Renvoie
L'attache créée

Implémenté dans castor3d::BackBuffers.

◆ createColourRenderBuffer()

virtual C3D_API ColourRenderBufferSPtr castor3d::FrameBuffer::createColourRenderBuffer ( castor::PixelFormat  format) const
pure virtual

Crée un tampon de rendu couleur.

Paramètres
[in]formatLe format de pixels du tampon

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ createDepthStencilRenderBuffer()

virtual C3D_API DepthStencilRenderBufferSPtr castor3d::FrameBuffer::createDepthStencilRenderBuffer ( castor::PixelFormat  format) const
pure virtual

Crée un tampon de rendu profondeur/stencil.

Paramètres
[in]formatLe format de pixels du tampon

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ DECLARE_VECTOR()

castor3d::FrameBuffer::DECLARE_VECTOR ( FrameBufferAttachmentSPtr  ,
Attach   
)

◆ detach()

C3D_API void castor3d::FrameBuffer::detach ( FrameBufferAttachmentSPtr  attach)

Détache une atache de ce tampon d'image.

Paramètres
[in]attachL'attache.

◆ detachAll()

C3D_API void castor3d::FrameBuffer::detachAll ( )

Détache tous les objets attachés.

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ doBind()

virtual C3D_API void castor3d::FrameBuffer::doBind ( FrameBufferTarget  target) const
protectedpure virtual

Fonction d'activation, pour dire au GPU qu'il est activé

Paramètres
[in]targetLa cible d'activation du tampon d'image

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ doBlitInto()

virtual C3D_API void castor3d::FrameBuffer::doBlitInto ( FrameBuffer const &  buffer,
castor::Rectangle const &  rect,
BufferComponents const &  components 
) const
protectedpure virtual

Blitte ce tampon dans celui donné

Paramètres
[in]bufferLe tampon recevant celui-ci
[in]rectLe rectangle destination
[in]componentsOU logique de BufferComponent indiquant les buffers à copier

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ doClear()

virtual C3D_API void castor3d::FrameBuffer::doClear ( BufferComponents  targets) const
protectedpure virtual

Vide les composantes de tampon données.

Paramètres
[in]targetsLes composantes, combinaison de BufferComponent.

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ doGetPixelFormat()

C3D_API castor::PixelFormat castor3d::FrameBuffer::doGetPixelFormat ( AttachmentPoint  point,
uint8_t  index 
) const
protected
Paramètres
[in]pointLe point d'attache.
[in]indexL'index d'attache.
Renvoie
Le format des pixels pour l'attache.

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ doStretchInto()

virtual C3D_API void castor3d::FrameBuffer::doStretchInto ( FrameBuffer const &  buffer,
castor::Rectangle const &  rectSrc,
castor::Rectangle const &  rectDst,
BufferComponents const &  components,
InterpolationMode  interpolation 
) const
protectedpure virtual

Blitte ce tampon dans celui donné.

Remarques
L'interpolation pour un tampon stencil ou profondeur doit être InterpolationMode::eNearest.
Paramètres
[in]bufferLe tampon recevant celui-ci.
[in]rectSrcLe rectangle source.
[in]rectDstLe rectangle destination.
[in]componentsOU logique de BufferComponent indiquant les buffers à copier.
[in]interpolationL'interpolation à appliquer si l'image est redimensionnée.

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ doUnbind()

virtual C3D_API void castor3d::FrameBuffer::doUnbind ( ) const
protectedpure virtual

Fonction de désactivation, pour dire au GPU qu'il est désactivé

Référencé par isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ downloadBuffer()

virtual C3D_API void castor3d::FrameBuffer::downloadBuffer ( castor3d::AttachmentPoint  point,
uint8_t  index,
castor::PxBufferBaseSPtr  buffer 
) const
pure virtual

Récupère les données du tampon de rendu.

Paramètres
[in]pointLe point d'attache.
[in]indexL'index d'attache.
[in]bufferReçoit les données.

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ getAttachment()

C3D_API FrameBufferAttachmentSPtr castor3d::FrameBuffer::getAttachment ( AttachmentPoint  point,
uint8_t  index 
)

Récupère un tampon attaché au point et à l'index d'attache donnés.

Paramètres
[in]pointLe point d'attache.
[in]indexL'index d'attache.
Renvoie
L'attache, nullptr si non trouvé.

◆ initialise()

virtual C3D_API bool castor3d::FrameBuffer::initialise ( )
pure virtual

Initialise les tampons de cache de couleur de profondeur.

Renvoie
true si tout s'est bien passé.

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ isComplete()

virtual C3D_API bool castor3d::FrameBuffer::isComplete ( ) const
pure virtual

Vérifies i le FBO est complet.

Renvoie
false si le tampon est en erreur ou s'il manque une attache.

Implémenté dans castor3d::BackBuffers.

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ isSRGB()

bool castor3d::FrameBuffer::isSRGB ( ) const
inline

◆ resize()

C3D_API void castor3d::FrameBuffer::resize ( castor::Size const &  size)

Redimensionne tous les tampons attachés.

Paramètres
[in]sizeLes nouvelles dimensions

◆ setClearColour() [1/2]

C3D_API void castor3d::FrameBuffer::setClearColour ( castor::RgbaColour const &  colour)

Définit la couleur utilisée quand Clear est appelée sur le tampon couleur.

Paramètres
[in]colourLa couleur.

◆ setClearColour() [2/2]

C3D_API void castor3d::FrameBuffer::setClearColour ( float  r,
float  g,
float  b,
float  a 
)

Définit la couleur utilisée quand Clear est appelée sur le tampon couleur.

Remarques
Cette version accepte des composantes non normalisées.
Paramètres
[in]r,g,b,aLes composantes de la couleur.

◆ setDrawBuffer()

C3D_API void castor3d::FrameBuffer::setDrawBuffer ( FrameBufferAttachmentSPtr  attach) const

Définit le tampon de dans lequel le dessin doit être effectué.

Paramètres
[in]attachLe tampon.

Référencé par castor3d::BackBuffers::isComplete().

+ Voici le graphe des appelants de cette fonction :

◆ setDrawBuffers() [1/2]

C3D_API void castor3d::FrameBuffer::setDrawBuffers ( ) const

Définit les buffers dans lesquels le dessin doit être effectué

Remarques
Tous les buffers attachés sont sélectionnés

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ setDrawBuffers() [2/2]

virtual C3D_API void castor3d::FrameBuffer::setDrawBuffers ( AttachArray const &  attaches) const
pure virtual

Utilise les attaches données pour ce framebuffer, lors du prochain dessin.

Paramètres
[in]attachesLes attaches.

◆ setReadBuffer()

virtual C3D_API void castor3d::FrameBuffer::setReadBuffer ( AttachmentPoint  point,
uint8_t  index 
) const
pure virtual

Définit le tampon de couleur source pour la lecture de pixels.

Paramètres
[in]pointLe tampon de couleur
[in]indexL'index d'attache

Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().

+ Voici le graphe des appelants de cette fonction :

◆ setSRGB()

void castor3d::FrameBuffer::setSRGB ( bool  value)
inline

Références m_sRGB.

◆ stretchInto()

C3D_API void castor3d::FrameBuffer::stretchInto ( FrameBuffer const &  buffer,
castor::Rectangle const &  rectSrc,
castor::Rectangle const &  rectDst,
BufferComponents const &  components,
InterpolationMode  interpolation 
) const

Stretche ce tampon dans celui donné.

Paramètres
[in]bufferLe tampon recevant celui-ci.
[in]rectSrcLe rectangle source.
[in]rectDstLe rectangle destination.
[in]componentsOU logique de BufferComponent indiquant les buffers à copier.
[in]interpolationL'interpolation à appliquer si l'image est redimensionnée.

◆ unbind()

C3D_API void castor3d::FrameBuffer::unbind ( ) const

Fonction de désactivation, pour dire au GPU qu'il est désactivé

Documentation des données membres

◆ m_alphaClear

float castor3d::FrameBuffer::m_alphaClear { 1.0f }
protected

La composante alpha de la couleur de vidage.

◆ m_attaches

AttachArray castor3d::FrameBuffer::m_attaches
protected

Toutes les attaches.

◆ m_blueClear

float castor3d::FrameBuffer::m_blueClear { 0.0f }
protected

La composante bleue de la couleur de vidage.

◆ m_greenClear

float castor3d::FrameBuffer::m_greenClear { 0.0f }
protected

La composante verte de la couleur de vidage.

◆ m_redClear

float castor3d::FrameBuffer::m_redClear { 0.0f }
protected

La composante rouge de la couleur de vidage.

◆ m_sRGB

bool castor3d::FrameBuffer::m_sRGB { false }
protected

Dit que le tampon d'images utilise l'espace de couleurs sRGB.

Référencé par isSRGB(), et setSRGB().


La documentation de cette classe a été générée à partir du fichier suivant :