Castor3D
..
|
Classe de tampon d'image. Plus de détails...
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 } |
Classe de tampon d'image.
Constructeur.
[in] | engine | Le moteur |
|
virtual |
Destructeur.
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.
[in] | point | Le point d'attache |
[in] | index | L'index d'attache |
[in] | texture | La texture |
[in] | target | La dimension à laquelle la texture doit être attachée |
[in] | layer | La couche associée, si p_dimension vaut TextureType::eThreeDimensions or TextureType::eTwoDimensionsArray |
Référencé par castor3d::BackBuffers::isComplete().
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.
[in] | point | Le point d'attache |
[in] | texture | La texture |
[in] | target | La dimension à laquelle la texture doit être attachée |
[in] | layer | La couche associée, si p_dimension vaut TextureType::eThreeDimensions or TextureType::eTwoDimensionsArray |
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.
[in] | point | Le point d'attache |
[in] | index | L'index d'attache |
[in] | renderBuffer | Le tampon de rendu |
C3D_API void castor3d::FrameBuffer::attach | ( | AttachmentPoint | point, |
RenderBufferAttachmentSPtr | renderBuffer | ||
) |
Attache un tampon de rendu à ce tampon d'image, au point d'attache voulu.
[in] | point | Le point d'attache |
[in] | renderBuffer | Le tampon de rendu |
C3D_API void castor3d::FrameBuffer::bind | ( | FrameBufferTarget | target = FrameBufferTarget::eBoth | ) | const |
Fonction d'activation, pour dire au GPU qu'il est activé
[in] | target | La cible d'activation du tampon d'image |
Référencé par castor3d::BackBuffers::isComplete().
C3D_API void castor3d::FrameBuffer::blitInto | ( | FrameBuffer const & | buffer, |
castor::Rectangle const & | rect, | ||
BufferComponents const & | components | ||
) | const |
Blitte ce tampon dans celui donné
[in] | buffer | Le tampon recevant celui-ci |
[in] | rect | Le rectangle |
[in] | components | OU logique de BufferComponent indiquant les buffers à copier |
Référencé par castor3d::BackBuffers::isComplete().
|
pure virtual |
Nettoie les tampons de cache.
C3D_API void castor3d::FrameBuffer::clear | ( | BufferComponents | targets | ) | const |
Vide les tampons.
[in] | targets | Les tampons à vider (combinaison de BufferComponent). |
|
pure virtual |
Crée une attache à un tampon de rendu.
[in] | renderBuffer | Le tampon de rendu |
Implémenté dans castor3d::BackBuffers.
Référencé par isSRGB().
|
pure virtual |
Crée une attache à une texture.
[in] | texture | La texture |
Implémenté dans castor3d::BackBuffers.
|
pure virtual |
Crée une attache à un mipmap d'une texture.
[in] | texture | La texture. |
[in] | mipLevel | Le niveau du mipmap. |
Implémenté dans castor3d::BackBuffers.
|
pure virtual |
Crée une attache à une face d'une texture cube.
[in] | texture | La texture. |
[in] | face | La face. |
Implémenté dans castor3d::BackBuffers.
|
pure virtual |
Crée une attache à un mipmap d'une face d'une texture cube.
[in] | texture | La texture. |
[in] | face | La face. |
[in] | mipLevel | Le niveau du mipmap. |
Implémenté dans castor3d::BackBuffers.
|
pure virtual |
Crée un tampon de rendu couleur.
[in] | format | Le format de pixels du tampon |
Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().
|
pure virtual |
Crée un tampon de rendu profondeur/stencil.
[in] | format | Le format de pixels du tampon |
Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().
castor3d::FrameBuffer::DECLARE_VECTOR | ( | FrameBufferAttachmentSPtr | , |
Attach | |||
) |
C3D_API void castor3d::FrameBuffer::detach | ( | FrameBufferAttachmentSPtr | attach | ) |
Détache une atache de ce tampon d'image.
[in] | attach | L'attache. |
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] | target | La cible d'activation du tampon d'image |
Référencé par isSRGB().
|
protectedpure virtual |
Blitte ce tampon dans celui donné
[in] | buffer | Le tampon recevant celui-ci |
[in] | rect | Le rectangle destination |
[in] | components | OU logique de BufferComponent indiquant les buffers à copier |
Référencé par isSRGB().
|
protectedpure virtual |
Vide les composantes de tampon données.
[in] | targets | Les composantes, combinaison de BufferComponent. |
Référencé par isSRGB().
|
protected |
[in] | point | Le point d'attache. |
[in] | index | L'index d'attache. |
Référencé par isSRGB().
|
protectedpure virtual |
Blitte ce tampon dans celui donné.
[in] | buffer | Le tampon recevant celui-ci. |
[in] | rectSrc | Le rectangle source. |
[in] | rectDst | Le rectangle destination. |
[in] | components | OU logique de BufferComponent indiquant les buffers à copier. |
[in] | interpolation | L'interpolation à appliquer si l'image est redimensionnée. |
Référencé par isSRGB().
|
protectedpure virtual |
Fonction de désactivation, pour dire au GPU qu'il est désactivé
Référencé par isSRGB().
|
pure virtual |
Récupère les données du tampon de rendu.
[in] | point | Le point d'attache. |
[in] | index | L'index d'attache. |
[in] | buffer | Reçoit les données. |
Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().
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.
[in] | point | Le point d'attache. |
[in] | index | L'index d'attache. |
nullptr
si non trouvé.
|
pure virtual |
Initialise les tampons de cache de couleur de profondeur.
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(), et isSRGB().
|
inline |
Références C3D_API, createAttachment(), createColourRenderBuffer(), createDepthStencilRenderBuffer(), doBind(), doBlitInto(), doClear(), doGetPixelFormat(), doStretchInto(), doUnbind(), downloadBuffer(), isComplete(), m_sRGB, setDrawBuffers(), et setReadBuffer().
C3D_API void castor3d::FrameBuffer::resize | ( | castor::Size const & | size | ) |
Redimensionne tous les tampons attachés.
[in] | size | Les nouvelles dimensions |
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.
[in] | colour | La couleur. |
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.
[in] | r,g,b,a | Les composantes de la couleur. |
C3D_API void castor3d::FrameBuffer::setDrawBuffer | ( | FrameBufferAttachmentSPtr | attach | ) | const |
Définit le tampon de dans lequel le dessin doit être effectué.
[in] | attach | Le tampon. |
Référencé par castor3d::BackBuffers::isComplete().
C3D_API void castor3d::FrameBuffer::setDrawBuffers | ( | ) | const |
Définit les buffers dans lesquels le dessin doit être effectué
Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().
|
pure virtual |
Utilise les attaches données pour ce framebuffer, lors du prochain dessin.
[in] | attaches | Les attaches. |
|
pure virtual |
Définit le tampon de couleur source pour la lecture de pixels.
[in] | point | Le tampon de couleur |
[in] | index | L'index d'attache |
Référencé par castor3d::BackBuffers::isComplete(), et isSRGB().
|
inline |
Références m_sRGB.
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é.
[in] | buffer | Le tampon recevant celui-ci. |
[in] | rectSrc | Le rectangle source. |
[in] | rectDst | Le rectangle destination. |
[in] | components | OU logique de BufferComponent indiquant les buffers à copier. |
[in] | interpolation | L'interpolation à appliquer si l'image est redimensionnée. |
C3D_API void castor3d::FrameBuffer::unbind | ( | ) | const |
Fonction de désactivation, pour dire au GPU qu'il est désactivé
|
protected |
La composante alpha de la couleur de vidage.
|
protected |
Toutes les attaches.
|
protected |
La composante bleue de la couleur de vidage.
|
protected |
La composante verte de la couleur de vidage.
|
protected |
La composante rouge de la couleur de vidage.
|
protected |