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 SetClearColour (float p_r, float p_g, float p_b, float p_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 p_targets)
 Vide les tampons. Plus de détails...
 
C3D_API void Bind (FrameBufferTarget p_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 &p_buffer, Castor::Rectangle const &p_rect, Castor::FlagCombination< BufferComponent > const &p_components) const
 Blitte ce tampon dans celui donné Plus de détails...
 
C3D_API void StretchInto (FrameBuffer const &p_buffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, Castor::FlagCombination< BufferComponent > const &p_components, InterpolationMode p_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 p_attach) const
 Définit le tampon de dans lequel le dessin doit être effectué. Plus de détails...
 
C3D_API void Attach (AttachmentPoint p_point, uint8_t p_index, TextureAttachmentSPtr p_texture, TextureType p_target, int p_layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void Attach (AttachmentPoint p_point, TextureAttachmentSPtr p_texture, TextureType p_target, int p_layer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
C3D_API void Attach (AttachmentPoint 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 void Attach (AttachmentPoint 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 (AttachmentPoint 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) const =0
 Utilise les attaches données pour ce framebuffer, lors du prochain dessin. Plus de détails...
 
virtual C3D_API void SetReadBuffer (AttachmentPoint p_point, uint8_t p_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 p_format)=0
 Crée un tampon de rendu couleur. Plus de détails...
 
virtual C3D_API DepthStencilRenderBufferSPtr CreateDepthStencilRenderBuffer (Castor::PixelFormat 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 (TextureLayoutSPtr p_texture)=0
 Crée une attache à une texture. Plus de détails...
 
virtual C3D_API TextureAttachmentSPtr CreateAttachment (TextureLayoutSPtr p_texture, CubeMapFace p_face)=0
 Crée une attache à 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 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...
 

Fonctions membres protégées

C3D_API Castor::PixelFormat DoGetPixelFormat (AttachmentPoint p_point, uint8_t p_index)
 
virtual C3D_API void DoClear (BufferComponents p_targets)=0
 Vide les composantes de tampon données. Plus de détails...
 
virtual C3D_API void DoBind (FrameBufferTarget p_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 &p_buffer, Castor::Rectangle const &p_rect, Castor::FlagCombination< BufferComponent > const &p_components) const =0
 Blitte ce tampon dans celui donné Plus de détails...
 
virtual C3D_API void DoStretchInto (FrameBuffer const &p_buffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, Castor::FlagCombination< BufferComponent > const &p_components, InterpolationMode p_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 }
 

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 p_engine)
explicit

Constructeur.

Paramètres
[in]p_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  p_point,
uint8_t  p_index,
TextureAttachmentSPtr  p_texture,
TextureType  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 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  p_point,
TextureAttachmentSPtr  p_texture,
TextureType  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 TextureType::eThreeDimensions or TextureType::eTwoDimensionsArray

◆ Attach() [3/4]

C3D_API void Castor3D::FrameBuffer::Attach ( AttachmentPoint  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

◆ Attach() [4/4]

C3D_API void Castor3D::FrameBuffer::Attach ( AttachmentPoint  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

◆ Bind()

C3D_API void Castor3D::FrameBuffer::Bind ( FrameBufferTarget  p_target = FrameBufferTarget::eBoth) const

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

Paramètres
[in]p_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 &  p_buffer,
Castor::Rectangle const &  p_rect,
Castor::FlagCombination< BufferComponent > const &  p_components 
) const

Blitte ce tampon dans celui donné

Paramètres
[in]p_bufferLe tampon recevant celui-ci
[in]p_rectLe rectangle
[in]p_componentsOU logique de BufferComponent indiquant les buffers à copier

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

+ Voici le graphe des appelants de cette fonction :

◆ Cleanup()

C3D_API void Castor3D::FrameBuffer::Cleanup ( )

Nettoie les tampons de cache.

◆ Clear()

C3D_API void Castor3D::FrameBuffer::Clear ( BufferComponents  p_targets)

Vide les tampons.

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

◆ Create()

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 :

◆ CreateAttachment() [1/3]

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.

◆ CreateAttachment() [2/3]

virtual C3D_API TextureAttachmentSPtr Castor3D::FrameBuffer::CreateAttachment ( TextureLayoutSPtr  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.

◆ CreateAttachment() [3/3]

virtual C3D_API TextureAttachmentSPtr Castor3D::FrameBuffer::CreateAttachment ( TextureLayoutSPtr  p_texture,
CubeMapFace  p_face 
)
pure virtual

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

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

Implémenté dans Castor3D::BackBuffers.

◆ CreateColourRenderBuffer()

virtual C3D_API ColourRenderBufferSPtr Castor3D::FrameBuffer::CreateColourRenderBuffer ( Castor::PixelFormat  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 :

◆ CreateDepthStencilRenderBuffer()

virtual C3D_API DepthStencilRenderBufferSPtr Castor3D::FrameBuffer::CreateDepthStencilRenderBuffer ( Castor::PixelFormat  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 :

◆ DECLARE_VECTOR()

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

◆ Destroy()

virtual C3D_API void Castor3D::FrameBuffer::Destroy ( )
pure virtual

Fonction de destruction.

◆ 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  p_target) const
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

◆ DoBlitInto()

virtual C3D_API void Castor3D::FrameBuffer::DoBlitInto ( FrameBuffer const &  p_buffer,
Castor::Rectangle const &  p_rect,
Castor::FlagCombination< BufferComponent > const &  p_components 
) const
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 BufferComponent indiquant les buffers à copier

◆ DoClear()

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

Vide les composantes de tampon données.

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

◆ DoGetPixelFormat()

C3D_API Castor::PixelFormat Castor3D::FrameBuffer::DoGetPixelFormat ( AttachmentPoint  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.

◆ DoStretchInto()

virtual C3D_API void Castor3D::FrameBuffer::DoStretchInto ( FrameBuffer const &  p_buffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
Castor::FlagCombination< BufferComponent > const &  p_components,
InterpolationMode  p_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]p_bufferLe tampon recevant celui-ci.
[in]p_rectSrcLe rectangle source.
[in]p_rectDstLe rectangle destination.
[in]p_componentsOU logique de BufferComponent indiquant les buffers à copier.
[in]p_interpolationL'interpolation à appliquer si l'image est redimensionnée.

◆ DoUnbind()

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

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

◆ DownloadBuffer()

virtual C3D_API void Castor3D::FrameBuffer::DownloadBuffer ( Castor3D::AttachmentPoint  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 :

◆ GetAttachment()

C3D_API FrameBufferAttachmentSPtr Castor3D::FrameBuffer::GetAttachment ( AttachmentPoint  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é.

◆ Initialise()

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 :

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

+ Voici le graphe des appelants de cette fonction :

◆ Resize()

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

Redimensionne tous les tampons attachés.

Paramètres
[in]p_sizeLes nouvelles dimensions

◆ SetClearColour() [1/2]

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.

◆ SetClearColour() [2/2]

C3D_API void Castor3D::FrameBuffer::SetClearColour ( float  p_r,
float  p_g,
float  p_b,
float  p_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]p_r,p_g,p_b,p_aLes composantes de la couleur.

◆ SetDrawBuffer()

C3D_API void Castor3D::FrameBuffer::SetDrawBuffer ( FrameBufferAttachmentSPtr  p_attach) const

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

Paramètres
[in]p_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().

+ Voici le graphe des appelants de cette fonction :

◆ SetDrawBuffers() [2/2]

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

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

Paramètres
[in]p_attachesLes attaches.

◆ SetReadBuffer()

virtual C3D_API void Castor3D::FrameBuffer::SetReadBuffer ( AttachmentPoint  p_point,
uint8_t  p_index 
) const
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 :

◆ StretchInto()

C3D_API void Castor3D::FrameBuffer::StretchInto ( FrameBuffer const &  p_buffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
Castor::FlagCombination< BufferComponent > const &  p_components,
InterpolationMode  p_interpolation 
) const

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 BufferComponent indiquant les buffers à copier.
[in]p_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.


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