Castor3D
..
|
Classe de tampon d'image. Plus de détails...
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... | |
Classe de tampon d'image.
C3D_API Castor3D::FrameBuffer::FrameBuffer | ( | Engine & | p_engine | ) |
Constructeur.
[in] | p_engine | Le moteur |
|
virtual |
Destructeur.
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.
[in] | p_point | Le point d'attache |
[in] | p_index | L'index d'attache |
[in] | p_texture | La texture |
[in] | p_target | La dimension à laquelle la texture doit être attachée |
[in] | p_layer | La couche associée, si p_dimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER |
true
si tout s'est bien passé Référencé par Castor3D::BackBuffers::IsComplete().
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.
[in] | p_point | Le point d'attache |
[in] | p_texture | La texture |
[in] | p_target | La dimension à laquelle la texture doit être attachée |
[in] | p_layer | La couche associée, si p_dimension vaut eTEXTURE_TARGET_3D or eTEXTURE_TARGET_LAYER |
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.
[in] | p_point | Le point d'attache |
[in] | p_index | L'index d'attache |
[in] | p_renderBuffer | Le tampon de rendu |
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.
[in] | p_point | Le point d'attache |
[in] | p_renderBuffer | Le tampon de rendu |
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é
[in] | p_target | La cible d'activation du tampon d'image |
[in] | p_mode | Le mode d'activation du tampon d'image |
true
si tout s'est bien passé Référencé par Castor3D::BackBuffers::IsComplete().
C3D_API bool Castor3D::FrameBuffer::BlitInto | ( | FrameBufferSPtr | p_buffer, |
Castor::Rectangle const & | p_rect, | ||
uint32_t | p_components | ||
) |
Blitte ce tampon dans celui donné
[in] | p_buffer | Le tampon recevant celui-ci |
[in] | p_rect | Le rectangle |
[in] | p_components | OU logique de eBUFFER_COMPONENT indiquant les buffers à copier |
true
si tout s'est bien passé Référencé par Castor3D::BackBuffers::IsComplete().
C3D_API void Castor3D::FrameBuffer::Cleanup | ( | ) |
Nettoie les tampons de cache.
C3D_API void Castor3D::FrameBuffer::Clear | ( | ) |
Vide les tampons.
|
pure virtual |
Fonction de création.
true
si tout s'est bien passé Référencé par Castor3D::BackBuffers::IsComplete().
|
pure virtual |
Crée une attache à un tampon de rendu.
[in] | p_renderBuffer | Le tampon de rendu |
Implémenté dans Castor3D::BackBuffers.
|
pure virtual |
Crée une attache à une texture.
[in] | p_texture | La texture |
Implémenté dans Castor3D::BackBuffers.
|
pure virtual |
Crée un tampon de rendu couleur.
[in] | p_format | Le fromat de pixels du tampon |
Référencé par Castor3D::BackBuffers::IsComplete().
|
pure virtual |
Crée un tampon de rendu profondeur/stencil.
[in] | p_format | Le fromat de pixels du tampon |
Référencé par Castor3D::BackBuffers::IsComplete().
Castor3D::FrameBuffer::DECLARE_VECTOR | ( | FrameBufferAttachmentSPtr | , |
Attach | |||
) |
|
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().
|
protectedpure virtual |
Fonction d'activation, pour dire au GPU qu'il est activé
[in] | p_target | La cible d'activation du tampon d'image |
true
si tout s'est bien passé Référencé par GetClearColour().
|
protectedpure virtual |
Blitte ce tampon dans celui donné
[in] | p_buffer | Le tampon recevant celui-ci |
[in] | p_rect | Le rectangle destination |
[in] | p_components | OU logique de eBUFFER_COMPONENT indiquant les buffers à copier |
true
si tout s'est bien passé Référencé par GetClearColour().
|
protectedpure virtual |
Vide les composantes de tampon données.
[in] | p_targets | Les composantes, combinaison de eBUFFER_COMPONENT. |
Référencé par GetClearColour().
|
protected |
[in] | p_point | Le point d'attache. |
[in] | p_index | L'index d'attache. |
Référencé par GetClearColour().
|
protected |
[in] | p_point | Le point d'attache. |
[in] | p_index | L'index d'attache. |
Référencé par GetClearColour().
|
protectedpure virtual |
Blitte ce tampon dans celui donné.
[in] | p_buffer | Le tampon recevant celui-ci. |
[in] | p_rectSrc | Le rectangle source. |
[in] | p_rectDst | Le rectangle destination. |
[in] | p_components | OU logique de eBUFFER_COMPONENT indiquant les buffers à copier. |
[in] | p_interpolation | L'interpolation à appliquer si l'image est redimensionnée. |
true
si tout s'est bien passé. Référencé par GetClearColour().
|
protectedpure virtual |
Fonction de désactivation, pour dire au GPU qu'il est désactivé
Référencé par GetClearColour().
|
pure virtual |
Récupère les données du tampon de rendu.
[in] | p_point | Le point d'attache. |
[in] | p_index | L'index d'attache. |
[in] | p_buffer | Reçoit les données. |
Référencé par Castor3D::BackBuffers::IsComplete().
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.
[in] | p_point | Le point d'attache. |
[in] | p_index | L'index d'attache. |
nullptr
si non trouvé.
|
inline |
Récupère la couleur de fond.
Références DoBind(), DoBlitInto(), DoClear(), DoGetPixelFormat(), DoGetSamplesCount(), DoStretchInto(), DoUnbind(), et m_clearColour.
C3D_API bool Castor3D::FrameBuffer::Initialise | ( | Castor::Size const & | p_size | ) |
Initialise les tampons de cache de couleur de profondeur.
[in] | p_size | La taille du tampon d'image. |
true
si tout s'est bien passé. Référencé par Castor3D::BackBuffers::IsComplete().
|
pure virtual |
Vérifies i le FBO est complet.
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().
C3D_API void Castor3D::FrameBuffer::Resize | ( | Castor::Size const & | p_size | ) |
Redimensionne tous les tampons attachés.
[in] | p_size | Les 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.
[in] | p_colour | La couleur. |
C3D_API void Castor3D::FrameBuffer::SetDrawBuffer | ( | TextureAttachmentSPtr | p_attach | ) |
Définit le tampon de couleur dans lequel le dessin doit être effectué
[in] | p_attach | Le tampon de couleur |
Référencé par Castor3D::BackBuffers::IsComplete().
C3D_API void Castor3D::FrameBuffer::SetDrawBuffer | ( | RenderBufferAttachmentSPtr | p_attach | ) |
Définit le tampon de couleur dans lequel le dessin doit être effectué
[in] | p_attach | Le tampon de couleur |
C3D_API void Castor3D::FrameBuffer::SetDrawBuffers | ( | ) |
Définit les buffers dans lesquels le dessin doit être effectué
Référencé par Castor3D::BackBuffers::IsComplete().
|
pure virtual |
Utilise les attaches données pour ce framebuffer, lors du prochain dessin.
[in] | p_attaches | Les attaches. |
|
pure virtual |
Définit le tampon de couleur source pour la lecture de pixels.
[in] | p_point | Le tampon de couleur |
[in] | p_index | L'index d'attache |
Référencé par Castor3D::BackBuffers::IsComplete().
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é.
[in] | p_buffer | Le tampon recevant celui-ci. |
[in] | p_rectSrc | Le rectangle source. |
[in] | p_rectDst | Le rectangle destination. |
[in] | p_components | OU logique de eBUFFER_COMPONENT indiquant les buffers à copier. |
[in] | p_interpolation | L'interpolation à appliquer si l'image est redimensionnée. |
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é
|
protected |
Toutes les attaches.
|
protected |
La couleur de fond.
Référencé par GetClearColour().