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 &p_engine)
 Constructeur. Plus de détails...
 
virtual C3D_API ~FrameBuffer ()
 Destructeur. Plus de détails...
 
C3D_API bool Initialise (Castor::Size const &p_size)
 Initialise les tampons de cache de couleur de profondeur. Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie les tampons de cache. Plus de détails...
 
C3D_API void SetClearColour (Castor::Colour const &p_colour)
 Définit la couleur utilisée quand Clear est appelée sur le tampon couleur. Plus de détails...
 
C3D_API void Clear ()
 Vide les tampons. Plus de détails...
 
C3D_API bool Bind (eFRAMEBUFFER_MODE p_mode=eFRAMEBUFFER_MODE_AUTOMATIC, eFRAMEBUFFER_TARGET p_target=eFRAMEBUFFER_TARGET_BOTH)
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
C3D_API void Unbind ()
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
C3D_API bool BlitInto (FrameBufferSPtr p_buffer, Castor::Rectangle const &p_rect, uint32_t p_components)
 Blitte ce tampon dans celui donné Plus de détails...
 
C3D_API bool StretchInto (FrameBufferSPtr p_buffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, uint32_t p_components, eINTERPOLATION_MODE p_interpolation)
 Stretche ce tampon dans celui donné. Plus de détails...
 
C3D_API void SetDrawBuffers ()
 Définit les buffers dans lesquels le dessin doit être effectué Plus de détails...
 
C3D_API void SetDrawBuffer (TextureAttachmentSPtr p_attach)
 Définit le tampon de couleur dans lequel le dessin doit être effectué Plus de détails...
 
C3D_API void SetDrawBuffer (RenderBufferAttachmentSPtr p_attach)
 Définit le tampon de couleur dans lequel le dessin doit être effectué Plus de détails...
 
C3D_API bool Attach (eATTACHMENT_POINT p_point, uint8_t p_index, TextureAttachmentSPtr p_texture, eTEXTURE_TARGET p_target, int p_layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API bool Attach (eATTACHMENT_POINT p_point, TextureAttachmentSPtr p_texture, eTEXTURE_TARGET p_target, int p_layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API bool Attach (eATTACHMENT_POINT p_point, uint8_t p_index, RenderBufferAttachmentSPtr p_renderBuffer)
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API bool Attach (eATTACHMENT_POINT p_point, RenderBufferAttachmentSPtr p_renderBuffer)
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API FrameBufferAttachmentSPtr GetAttachment (eATTACHMENT_POINT p_point, uint8_t p_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 &p_size)
 Redimensionne tous les tampons attachés. Plus de détails...
 
virtual C3D_API bool Create ()=0
 Fonction de création. Plus de détails...
 
virtual C3D_API void Destroy ()=0
 Fonction de destruction. Plus de détails...
 
virtual C3D_API void SetDrawBuffers (AttachArray const &p_attaches)=0
 Utilise les attaches données pour ce framebuffer, lors du prochain dessin. Plus de détails...
 
virtual C3D_API void SetReadBuffer (eATTACHMENT_POINT p_point, uint8_t p_index)=0
 Définit le tampon de couleur source pour la lecture de pixels. Plus de détails...
 
virtual C3D_API ColourRenderBufferSPtr CreateColourRenderBuffer (Castor::ePIXEL_FORMAT p_format)=0
 Crée un tampon de rendu couleur. Plus de détails...
 
virtual C3D_API DepthStencilRenderBufferSPtr CreateDepthStencilRenderBuffer (Castor::ePIXEL_FORMAT p_format)=0
 Crée un tampon de rendu profondeur/stencil. Plus de détails...
 
virtual C3D_API RenderBufferAttachmentSPtr CreateAttachment (RenderBufferSPtr p_renderBuffer)=0
 Crée une attache à un tampon de rendu. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr CreateAttachment (DynamicTextureSPtr p_texture)=0
 Crée une attache à une texture. 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 bool DownloadBuffer (Castor3D::eATTACHMENT_POINT p_point, uint8_t p_index, Castor::PxBufferBaseSPtr p_buffer)=0
 Récupère les données du tampon de rendu. Plus de détails...
 
Castor::Colour GetClearColour () const
 Récupère la couleur de fond. Plus de détails...
 

Fonctions membres protégées

C3D_API uint32_t DoGetSamplesCount (eATTACHMENT_POINT p_point, uint8_t p_index)
 
C3D_API Castor::ePIXEL_FORMAT DoGetPixelFormat (eATTACHMENT_POINT p_point, uint8_t p_index)
 
virtual C3D_API void DoClear (uint32_t p_targets)=0
 Vide les composantes de tampon données. Plus de détails...
 
virtual C3D_API bool DoBind (eFRAMEBUFFER_TARGET p_target)=0
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
virtual C3D_API void DoUnbind ()=0
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
virtual C3D_API bool DoBlitInto (FrameBufferSPtr p_buffer, Castor::Rectangle const &p_rect, uint32_t p_components)=0
 Blitte ce tampon dans celui donné Plus de détails...
 
virtual C3D_API bool DoStretchInto (FrameBufferSPtr p_buffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, uint32_t p_components, eINTERPOLATION_MODE p_interpolation)=0
 Blitte ce tampon dans celui donné. Plus de détails...
 

Attributs protégés

AttachArray m_attaches
 Toutes les attaches. Plus de détails...
 
Castor::Colour m_clearColour
 La couleur de fond. Plus de détails...
 

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

C3D_API Castor3D::FrameBuffer::FrameBuffer ( Engine p_engine)

Constructeur.

Paramètres
[in]p_engineLe moteur
virtual C3D_API Castor3D::FrameBuffer::~FrameBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

C3D_API bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_point,
uint8_t  p_index,
TextureAttachmentSPtr  p_texture,
eTEXTURE_TARGET  p_target,
int  p_layer = 0 
)

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

Paramètres
[in]p_pointLe point d'attache
[in]p_indexL'index d'attache
[in]p_textureLa texture
[in]p_targetLa dimension à laquelle la texture doit être attachée
[in]p_layerLa couche associée, si p_dimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER
Renvoie
true si tout s'est bien passé

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_point,
TextureAttachmentSPtr  p_texture,
eTEXTURE_TARGET  p_target,
int  p_layer = 0 
)

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

Paramètres
[in]p_pointLe point d'attache
[in]p_textureLa texture
[in]p_targetLa dimension à laquelle la texture doit être attachée
[in]p_layerLa couche associée, si p_dimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER
Renvoie
true si tout s'est bien passé
C3D_API bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_point,
uint8_t  p_index,
RenderBufferAttachmentSPtr  p_renderBuffer 
)

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

Paramètres
[in]p_pointLe point d'attache
[in]p_indexL'index d'attache
[in]p_renderBufferLe tampon de rendu
Renvoie
true si tout s'est bien passé
C3D_API bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_point,
RenderBufferAttachmentSPtr  p_renderBuffer 
)

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

Paramètres
[in]p_pointLe point d'attache
[in]p_renderBufferLe tampon de rendu
Renvoie
true si tout s'est bien passé
C3D_API bool Castor3D::FrameBuffer::Bind ( eFRAMEBUFFER_MODE  p_mode = eFRAMEBUFFER_MODE_AUTOMATIC,
eFRAMEBUFFER_TARGET  p_target = eFRAMEBUFFER_TARGET_BOTH 
)

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

Paramètres
[in]p_targetLa cible d'activation du tampon d'image
[in]p_modeLe mode d'activation du tampon d'image
Renvoie
true si tout s'est bien passé

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API bool Castor3D::FrameBuffer::BlitInto ( FrameBufferSPtr  p_buffer,
Castor::Rectangle const &  p_rect,
uint32_t  p_components 
)

Blitte ce tampon dans celui donné

Paramètres
[in]p_bufferLe tampon recevant celui-ci
[in]p_rectLe rectangle
[in]p_componentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier
Renvoie
true si tout s'est bien passé

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API void Castor3D::FrameBuffer::Cleanup ( )

Nettoie les tampons de cache.

C3D_API void Castor3D::FrameBuffer::Clear ( )

Vide les tampons.

virtual C3D_API bool Castor3D::FrameBuffer::Create ( )
pure virtual

Fonction de création.

Renvoie
true si tout s'est bien passé

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API RenderBufferAttachmentSPtr Castor3D::FrameBuffer::CreateAttachment ( RenderBufferSPtr  p_renderBuffer)
pure virtual

Crée une attache à un tampon de rendu.

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

Implémenté dans Castor3D::BackBuffers.

virtual C3D_API TextureAttachmentSPtr Castor3D::FrameBuffer::CreateAttachment ( DynamicTextureSPtr  p_texture)
pure virtual

Crée une attache à une texture.

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

Implémenté dans Castor3D::BackBuffers.

virtual C3D_API ColourRenderBufferSPtr Castor3D::FrameBuffer::CreateColourRenderBuffer ( Castor::ePIXEL_FORMAT  p_format)
pure virtual

Crée un tampon de rendu couleur.

Paramètres
[in]p_formatLe fromat de pixels du tampon

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API DepthStencilRenderBufferSPtr Castor3D::FrameBuffer::CreateDepthStencilRenderBuffer ( Castor::ePIXEL_FORMAT  p_format)
pure virtual

Crée un tampon de rendu profondeur/stencil.

Paramètres
[in]p_formatLe fromat de pixels du tampon

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

Castor3D::FrameBuffer::DECLARE_VECTOR ( FrameBufferAttachmentSPtr  ,
Attach   
)
virtual C3D_API void Castor3D::FrameBuffer::Destroy ( )
pure virtual

Fonction de destruction.

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 :

virtual C3D_API bool Castor3D::FrameBuffer::DoBind ( eFRAMEBUFFER_TARGET  p_target)
protectedpure virtual

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

Paramètres
[in]p_targetLa cible d'activation du tampon d'image
Renvoie
true si tout s'est bien passé

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API bool Castor3D::FrameBuffer::DoBlitInto ( FrameBufferSPtr  p_buffer,
Castor::Rectangle const &  p_rect,
uint32_t  p_components 
)
protectedpure virtual

Blitte ce tampon dans celui donné

Paramètres
[in]p_bufferLe tampon recevant celui-ci
[in]p_rectLe rectangle destination
[in]p_componentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier
Renvoie
true si tout s'est bien passé

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API void Castor3D::FrameBuffer::DoClear ( uint32_t  p_targets)
protectedpure virtual

Vide les composantes de tampon données.

Paramètres
[in]p_targetsLes composantes, combinaison de eBUFFER_COMPONENT.

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

C3D_API Castor::ePIXEL_FORMAT Castor3D::FrameBuffer::DoGetPixelFormat ( eATTACHMENT_POINT  p_point,
uint8_t  p_index 
)
protected
Paramètres
[in]p_pointLe point d'attache.
[in]p_indexL'index d'attache.
Renvoie
Le format des pixels pour l'attache.

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

C3D_API uint32_t Castor3D::FrameBuffer::DoGetSamplesCount ( eATTACHMENT_POINT  p_point,
uint8_t  p_index 
)
protected
Paramètres
[in]p_pointLe point d'attache.
[in]p_indexL'index d'attache.
Renvoie
Le nombre d'échantillons pour l'attache.

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API bool Castor3D::FrameBuffer::DoStretchInto ( FrameBufferSPtr  p_buffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
uint32_t  p_components,
eINTERPOLATION_MODE  p_interpolation 
)
protectedpure virtual

Blitte ce tampon dans celui donné.

Remarques
L'interpolation pour un tampon stencil ou profondeur doit être eINTERPOLATION_MODE_NEAREST.
Paramètres
[in]p_bufferLe tampon recevant celui-ci.
[in]p_rectSrcLe rectangle source.
[in]p_rectDstLe rectangle destination.
[in]p_componentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier.
[in]p_interpolationL'interpolation à appliquer si l'image est redimensionnée.
Renvoie
true si tout s'est bien passé.

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API void Castor3D::FrameBuffer::DoUnbind ( )
protectedpure virtual

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

Référencé par GetClearColour().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API bool Castor3D::FrameBuffer::DownloadBuffer ( Castor3D::eATTACHMENT_POINT  p_point,
uint8_t  p_index,
Castor::PxBufferBaseSPtr  p_buffer 
)
pure virtual

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

Paramètres
[in]p_pointLe point d'attache.
[in]p_indexL'index d'attache.
[in]p_bufferReçoit les données.

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API FrameBufferAttachmentSPtr Castor3D::FrameBuffer::GetAttachment ( eATTACHMENT_POINT  p_point,
uint8_t  p_index 
)

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

Paramètres
[in]p_pointLe point d'attache.
[in]p_indexL'index d'attache.
Renvoie
L'attache, nullptr si non trouvé.
Castor::Colour Castor3D::FrameBuffer::GetClearColour ( ) const
inline

Récupère la couleur de fond.

Références DoBind(), DoBlitInto(), DoClear(), DoGetPixelFormat(), DoGetSamplesCount(), DoStretchInto(), DoUnbind(), et m_clearColour.

+ Voici le graphe d'appel pour cette fonction :

C3D_API bool Castor3D::FrameBuffer::Initialise ( Castor::Size const &  p_size)

Initialise les tampons de cache de couleur de profondeur.

Paramètres
[in]p_sizeLa taille du tampon d'image.
Renvoie
true si tout s'est bien passé.

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

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().

+ Voici le graphe des appelants de cette fonction :

C3D_API void Castor3D::FrameBuffer::Resize ( Castor::Size const &  p_size)

Redimensionne tous les tampons attachés.

Paramètres
[in]p_sizeLes nouvelles dimensions
C3D_API void Castor3D::FrameBuffer::SetClearColour ( Castor::Colour const &  p_colour)

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

Paramètres
[in]p_colourLa couleur.
C3D_API void Castor3D::FrameBuffer::SetDrawBuffer ( TextureAttachmentSPtr  p_attach)

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

Paramètres
[in]p_attachLe tampon de couleur

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API void Castor3D::FrameBuffer::SetDrawBuffer ( RenderBufferAttachmentSPtr  p_attach)

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

Paramètres
[in]p_attachLe tampon de couleur
C3D_API void Castor3D::FrameBuffer::SetDrawBuffers ( )

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().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API void Castor3D::FrameBuffer::SetDrawBuffers ( AttachArray const &  p_attaches)
pure virtual

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

Paramètres
[in]p_attachesLes attaches.
virtual C3D_API void Castor3D::FrameBuffer::SetReadBuffer ( eATTACHMENT_POINT  p_point,
uint8_t  p_index 
)
pure virtual

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

Paramètres
[in]p_pointLe tampon de couleur
[in]p_indexL'index d'attache

Référencé par Castor3D::BackBuffers::IsComplete().

+ Voici le graphe des appelants de cette fonction :

C3D_API bool Castor3D::FrameBuffer::StretchInto ( FrameBufferSPtr  p_buffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
uint32_t  p_components,
eINTERPOLATION_MODE  p_interpolation 
)

Stretche ce tampon dans celui donné.

Paramètres
[in]p_bufferLe tampon recevant celui-ci.
[in]p_rectSrcLe rectangle source.
[in]p_rectDstLe rectangle destination.
[in]p_componentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier.
[in]p_interpolationL'interpolation à appliquer si l'image est redimensionnée.
Renvoie
true si tout s'est bien passé.
C3D_API void Castor3D::FrameBuffer::Unbind ( )

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

Documentation des données membres

AttachArray Castor3D::FrameBuffer::m_attaches
protected

Toutes les attaches.

Castor::Colour Castor3D::FrameBuffer::m_clearColour
protected

La couleur de fond.

Référencé par GetClearColour().


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