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 de collaboration de Castor3D::FrameBuffer:

Fonctions membres publiques

 FrameBuffer (Engine *p_pEngine)
 Constructeur [in] p_pEngine Le moteur. Plus de détails...
 
virtual ~FrameBuffer ()
 Destructeur. Plus de détails...
 
virtual bool Create (int p_iSamplesCount)=0
 Fonction de création. Plus de détails...
 
virtual void Destroy ()=0
 Fonction de destruction. Plus de détails...
 
bool Bind (eFRAMEBUFFER_MODE p_eMode=eFRAMEBUFFER_MODE_AUTOMATIC, eFRAMEBUFFER_TARGET p_eTarget=eFRAMEBUFFER_TARGET_BOTH)
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
void Unbind ()
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
bool BlitInto (FrameBufferSPtr p_pBuffer, Castor::Rectangle const &p_rectSrcDst, uint32_t p_uiComponents)
 Blitte ce tampon dans celui donné Plus de détails...
 
bool StretchInto (FrameBufferSPtr p_pBuffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, uint32_t p_uiComponents, eINTERPOLATION_MODE p_eInterpolation)
 Blitte ce tampon dans celui donné Plus de détails...
 
virtual void RenderToBuffer (FrameBufferSPtr p_pBuffer, Castor::Size const &p_sizeDst, uint32_t p_uiComponents, DepthStencilStateSPtr p_pDepthStencilState, RasteriserStateSPtr p_pRasteriserState)
 Rend ce tampon dans les composantes choisies d'un autre tampon. Plus de détails...
 
bool SetDrawBuffer (eATTACHMENT_POINT p_eAttach)
 Définit le tampon de couleur dans lequel le dessin doit être effectué Plus de détails...
 
template<uint32_t N>
bool SetDrawBuffers (eATTACHMENT_POINT p_eAttach[N])
 Définit les buffers de couleur dans lesquel le dessin doit être effectué Plus de détails...
 
bool SetDrawBuffers (std::vector< eATTACHMENT_POINT > const &p_arrayAttaches)
 Définit les buffers de couleur dans lesquel le dessin doit être effectué Plus de détails...
 
virtual bool SetDrawBuffers (uint32_t p_uiSize, eATTACHMENT_POINT const *p_eAttach)=0
 Définit les buffers de couleur dans lesquel le dessin doit être effectué Plus de détails...
 
virtual bool SetDrawBuffers ()=0
 Définit les buffers dans lesquels le dessin doit être effectué Plus de détails...
 
virtual bool SetReadBuffer (eATTACHMENT_POINT p_eAttach)=0
 Définit le tampon de couleur source pour la lecture de pixels. Plus de détails...
 
virtual ColourRenderBufferSPtr CreateColourRenderBuffer (Castor::ePIXEL_FORMAT p_ePixelFormat)=0
 Crée un tampon de rendu couleur. Plus de détails...
 
virtual
DepthStencilRenderBufferSPtr 
CreateDepthStencilRenderBuffer (Castor::ePIXEL_FORMAT p_ePixelFormat)=0
 Crée un tampon de rendu profondeur/stencil. Plus de détails...
 
void Attach (RenderBufferAttachmentRPtr p_pAttach)
 Attache un tampon de rendu à ce tampon d'image. Plus de détails...
 
void Detach (RenderBufferAttachmentRPtr p_pAttach)
 Détache un tampon de rendu de ce tampon d'image. Plus de détails...
 
void Attach (TextureAttachmentRPtr p_pAttach)
 Attache une texture à ce tampon d'image. Plus de détails...
 
void Detach (TextureAttachmentRPtr p_pAttach)
 Détache une texture de ce tampon d'image. Plus de détails...
 
bool Attach (eATTACHMENT_POINT p_eAttachment, DynamicTextureSPtr p_pTexture, eTEXTURE_TARGET p_eTarget, int p_iLayer=0)
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
bool Attach (eATTACHMENT_POINT p_eAttachment, RenderBufferSPtr p_pRenderBuffer)
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
void DetachAll ()
 Détache tous les objets attachés Plus de détails...
 
virtual void Resize (Castor::Size const &p_size)
 Redimensionne tous les tampons attachés Plus de détails...
 
virtual bool IsComplete ()=0
 Vérifies i le FBO est complet. Plus de détails...
 

Fonctions membres protégées

virtual bool DoBind (eFRAMEBUFFER_TARGET p_eTarget)=0
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
virtual void DoUnbind ()=0
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
virtual void DoAttach (RenderBufferAttachmentRPtr p_pAttach)=0
 Attache un tampon de rendu à ce tampon d'image. Plus de détails...
 
virtual void DoDetach (RenderBufferAttachmentRPtr p_pAttach)=0
 Détache un tampon de rendu de ce tampon d'image. Plus de détails...
 
virtual void DoAttach (TextureAttachmentRPtr p_pAttach)=0
 Attache un texture à ce tampon d'image. Plus de détails...
 
virtual void DoDetach (TextureAttachmentRPtr p_pAttach)=0
 Détache une texture de ce tampon d'image. Plus de détails...
 
virtual bool DoAttach (eATTACHMENT_POINT p_eAttachment, DynamicTextureSPtr p_pTexture, eTEXTURE_TARGET p_eTarget, int p_iLayer=0)=0
 Attache une texture à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
virtual bool DoAttach (eATTACHMENT_POINT p_eAttachment, RenderBufferSPtr p_pRenderBuffer)=0
 Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu. Plus de détails...
 
virtual void DoDetachAll ()=0
 Détache tous les objets attachés Plus de détails...
 
virtual bool DoStretchInto (FrameBufferSPtr p_pBuffer, Castor::Rectangle const &p_rectSrc, Castor::Rectangle const &p_rectDst, uint32_t p_uiComponents, eINTERPOLATION_MODE p_eInterpolation)=0
 Blitte ce tampon dans celui donné Plus de détails...
 
 DECLARE_MAP (eATTACHMENT_POINT, RenderBufferSPtr, RboAttach)
 
 DECLARE_MAP (eATTACHMENT_POINT, DynamicTextureSPtr, TexAttach)
 
 DECLARE_VECTOR (eATTACHMENT_POINT, Attach)
 

Attributs protégés

RboAttachMap m_mapRbo
 Map des tampons de rendu attachés Plus de détails...
 
TexAttachMap m_mapTex
 Map des textures attachées. Plus de détails...
 
Enginem_pEngine
 Le moteur. Plus de détails...
 
AttachArray m_arrayAttaches
 Toutes les attaches. 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

Castor3D::FrameBuffer::FrameBuffer ( Engine p_pEngine)

Constructeur [in] p_pEngine Le moteur.

virtual Castor3D::FrameBuffer::~FrameBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

void Castor3D::FrameBuffer::Attach ( RenderBufferAttachmentRPtr  p_pAttach)

Attache un tampon de rendu à ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
void Castor3D::FrameBuffer::Attach ( TextureAttachmentRPtr  p_pAttach)

Attache une texture à ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_eAttachment,
DynamicTextureSPtr  p_pTexture,
eTEXTURE_TARGET  p_eTarget,
int  p_iLayer = 0 
)

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

Paramètres
[in]p_eAttachmentLe point d'attache
[in]p_pTextureLa texture
[in]p_eTargetLa dimension à laquelle la texture doit être attachée
[in]p_iLayerLa couche associée, si p_eDimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER
Renvoie
true si tout s'est bien passé
bool Castor3D::FrameBuffer::Attach ( eATTACHMENT_POINT  p_eAttachment,
RenderBufferSPtr  p_pRenderBuffer 
)

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

Paramètres
[in]p_eAttachmentLe point d'attache
[in]p_pRenderBufferLe tampon de rendu
Renvoie
true si tout s'est bien passé
bool Castor3D::FrameBuffer::Bind ( eFRAMEBUFFER_MODE  p_eMode = eFRAMEBUFFER_MODE_AUTOMATIC,
eFRAMEBUFFER_TARGET  p_eTarget = eFRAMEBUFFER_TARGET_BOTH 
)

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

Paramètres
[in]p_eTargetLa cible d'activation du tampon d'image
[in]p_eModeLe mode d'activation du tampon d'image
Renvoie
true si tout s'est bien passé
bool Castor3D::FrameBuffer::BlitInto ( FrameBufferSPtr  p_pBuffer,
Castor::Rectangle const &  p_rectSrcDst,
uint32_t  p_uiComponents 
)

Blitte ce tampon dans celui donné

Paramètres
[in]p_pBufferLe tampon recevant celui-ci
[in]p_rectSrcDstLe rectangle
[in]p_uiComponentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::Create ( int  p_iSamplesCount)
pure virtual

Fonction de création.

Paramètres
[in]p_iSamplesCountNombre de samples, si le tampon d'image doit supporter le multisampling
Renvoie
true si tout s'est bien passé
virtual ColourRenderBufferSPtr Castor3D::FrameBuffer::CreateColourRenderBuffer ( Castor::ePIXEL_FORMAT  p_ePixelFormat)
pure virtual

Crée un tampon de rendu couleur.

Paramètres
[in]p_ePixelFormatLe fromat de pixels du tampon
virtual DepthStencilRenderBufferSPtr Castor3D::FrameBuffer::CreateDepthStencilRenderBuffer ( Castor::ePIXEL_FORMAT  p_ePixelFormat)
pure virtual

Crée un tampon de rendu profondeur/stencil.

Paramètres
[in]p_ePixelFormatLe fromat de pixels du tampon
Castor3D::FrameBuffer::DECLARE_MAP ( eATTACHMENT_POINT  ,
RenderBufferSPtr  ,
RboAttach   
)
protected
Castor3D::FrameBuffer::DECLARE_MAP ( eATTACHMENT_POINT  ,
DynamicTextureSPtr  ,
TexAttach   
)
protected
Castor3D::FrameBuffer::DECLARE_VECTOR ( eATTACHMENT_POINT  ,
Attach   
)
protected
virtual void Castor3D::FrameBuffer::Destroy ( )
pure virtual

Fonction de destruction.

void Castor3D::FrameBuffer::Detach ( RenderBufferAttachmentRPtr  p_pAttach)

Détache un tampon de rendu de ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
void Castor3D::FrameBuffer::Detach ( TextureAttachmentRPtr  p_pAttach)

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

Paramètres
[in]p_pAttachL'attache
void Castor3D::FrameBuffer::DetachAll ( )

Détache tous les objets attachés

virtual void Castor3D::FrameBuffer::DoAttach ( RenderBufferAttachmentRPtr  p_pAttach)
protectedpure virtual

Attache un tampon de rendu à ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
virtual void Castor3D::FrameBuffer::DoAttach ( TextureAttachmentRPtr  p_pAttach)
protectedpure virtual

Attache un texture à ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
virtual bool Castor3D::FrameBuffer::DoAttach ( eATTACHMENT_POINT  p_eAttachment,
DynamicTextureSPtr  p_pTexture,
eTEXTURE_TARGET  p_eTarget,
int  p_iLayer = 0 
)
protectedpure virtual

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

Paramètres
[in]p_eAttachmentLe point d'attache
[in]p_pTextureLa texture
[in]p_eTargetLa dimension à laquelle la texture doit être attachée
[in]p_iLayerLa couche associée, si p_eDimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::DoAttach ( eATTACHMENT_POINT  p_eAttachment,
RenderBufferSPtr  p_pRenderBuffer 
)
protectedpure virtual

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

Paramètres
[in]p_eAttachmentLe point d'attache
[in]p_pRenderBufferLe tampon de rendu
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::DoBind ( eFRAMEBUFFER_TARGET  p_eTarget)
protectedpure virtual

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

Paramètres
[in]p_eTargetLa cible d'activation du tampon d'image
Renvoie
true si tout s'est bien passé
virtual void Castor3D::FrameBuffer::DoDetach ( RenderBufferAttachmentRPtr  p_pAttach)
protectedpure virtual

Détache un tampon de rendu de ce tampon d'image.

Paramètres
[in]p_pAttachL'attache
virtual void Castor3D::FrameBuffer::DoDetach ( TextureAttachmentRPtr  p_pAttach)
protectedpure virtual

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

Paramètres
[in]p_pAttachL'attache
virtual void Castor3D::FrameBuffer::DoDetachAll ( )
protectedpure virtual

Détache tous les objets attachés

virtual bool Castor3D::FrameBuffer::DoStretchInto ( FrameBufferSPtr  p_pBuffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
uint32_t  p_uiComponents,
eINTERPOLATION_MODE  p_eInterpolation 
)
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_pBufferLe tampon recevant celui-ci
[in]p_rectSrcLe rectangle source
[in]p_rectDstLe rectangle destination
[in]p_uiComponentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier
[in]p_eInterpolationL'interpolation à appliquer si l'image est redimensionnée
Renvoie
true si tout s'est bien passé
virtual void Castor3D::FrameBuffer::DoUnbind ( )
protectedpure virtual

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

virtual bool Castor3D::FrameBuffer::IsComplete ( )
pure virtual

Vérifies i le FBO est complet.

Renvoie
false si le tampon est en erreur ou s'il manque une attache.
virtual void Castor3D::FrameBuffer::RenderToBuffer ( FrameBufferSPtr  p_pBuffer,
Castor::Size const &  p_sizeDst,
uint32_t  p_uiComponents,
DepthStencilStateSPtr  p_pDepthStencilState,
RasteriserStateSPtr  p_pRasteriserState 
)
virtual

Rend ce tampon dans les composantes choisies d'un autre tampon.

Paramètres
[in]p_pBufferLe tampon recevant le rendu
[in]p_sizeDstLes dimensions de la destination
[in]p_uiComponentsOU logique de eBUFFER_COMPONENT indiquant les composantes du tampon destination
virtual void Castor3D::FrameBuffer::Resize ( Castor::Size const &  p_size)
virtual

Redimensionne tous les tampons attachés

Paramètres
[in]p_sizeLes nouvelles dimensions
bool Castor3D::FrameBuffer::SetDrawBuffer ( eATTACHMENT_POINT  p_eAttach)
inline

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

Paramètres
[in]p_eAttachLe tampon de couleur
Renvoie
true si tout s'est bien passé
template<uint32_t N>
bool Castor3D::FrameBuffer::SetDrawBuffers ( eATTACHMENT_POINT  p_eAttach[N])
inline

Définit les buffers de couleur dans lesquel le dessin doit être effectué

Paramètres
[in]p_uiSizeLe nombre de buffers
[in]p_eAttachLes buffers de couleur
Renvoie
true si tout s'est bien passé
bool Castor3D::FrameBuffer::SetDrawBuffers ( std::vector< eATTACHMENT_POINT > const &  p_arrayAttaches)
inline

Définit les buffers de couleur dans lesquel le dessin doit être effectué

Paramètres
[in]p_arrayAttachesLes buffers de couleur
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::SetDrawBuffers ( uint32_t  p_uiSize,
eATTACHMENT_POINT const *  p_eAttach 
)
pure virtual

Définit les buffers de couleur dans lesquel le dessin doit être effectué

Paramètres
[in]p_uiSizeLe nombre de buffers
[in]p_eAttachLes buffers de couleur
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::SetDrawBuffers ( )
pure virtual

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

Remarques
Tous les buffers attachés sont sélectionnés
Renvoie
true si tout s'est bien passé
virtual bool Castor3D::FrameBuffer::SetReadBuffer ( eATTACHMENT_POINT  p_eAttach)
pure virtual

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

Paramètres
[in]p_eAttachLe tampon de couleur
Renvoie
true si tout s'est bien passé
bool Castor3D::FrameBuffer::StretchInto ( FrameBufferSPtr  p_pBuffer,
Castor::Rectangle const &  p_rectSrc,
Castor::Rectangle const &  p_rectDst,
uint32_t  p_uiComponents,
eINTERPOLATION_MODE  p_eInterpolation 
)

Blitte ce tampon dans celui donné

Remarques
L'interpolation pour un tampon stencil ou profondeur doit être eINTERPOLATION_MODE_NEAREST
Paramètres
[in]p_pBufferLe tampon recevant celui-ci
[in]p_rectSrcLe rectangle source
[in]p_rectDstLe rectangle destination
[in]p_uiComponentsOU logique de eBUFFER_COMPONENT indiquant les buffers à copier
[in]p_eInterpolationL'interpolation à appliquer si l'image est redimensionnée
Renvoie
true si tout s'est bien passé
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_arrayAttaches
protected

Toutes les attaches.

RboAttachMap Castor3D::FrameBuffer::m_mapRbo
protected

Map des tampons de rendu attachés

TexAttachMap Castor3D::FrameBuffer::m_mapTex
protected

Map des textures attachées.

Engine* Castor3D::FrameBuffer::m_pEngine
protected

Le moteur.


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