Castor3D  ..
Classes | Fonctions membres publiques | Attributs protégés | Amis | Liste de tous les membres
Référence de la classe castor3d::UniformBuffer

Buffer de variables de shader. Plus de détails...

+ Graphe d'héritage de castor3d::UniformBuffer:
+ Graphe de collaboration de castor3d::UniformBuffer:

Classes

class  TextWriter
 Loader de UniformBuffer. Plus de détails...
 

Fonctions membres publiques

 UniformBuffer (UniformBuffer const &)=delete
 
 UniformBuffer (UniformBuffer &&)=default
 
UniformBufferoperator= (UniformBuffer const &)=delete
 
UniformBufferoperator= (UniformBuffer &&)=default
 
C3D_API UniformBuffer (castor::String const &name, RenderSystem &renderSystem, uint32_t bindingPoint)
 Constructeur. Plus de détails...
 
virtual C3D_API ~UniformBuffer ()
 Destructeur. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie toutes les variables et le tampon GPU associé. Plus de détails...
 
C3D_API void update () const
 Met à jour le stockage GPU. Plus de détails...
 
C3D_API void bindTo (uint32_t index) const
 Définit le point d'attache du tampon. Plus de détails...
 
C3D_API uint32_t getBindingPoint () const
 
C3D_API UniformBufferBindingcreateBinding (ShaderProgram &program)
 Crée un binding entre ce tampon d'uniformes et le porgramme donné. Plus de détails...
 
C3D_API UniformBufferBindinggetBinding (ShaderProgram &program) const
 Récupère le binding pour le programme donné. Plus de détails...
 
C3D_API UniformSPtr createUniform (UniformType type, castor::String const &name, uint32_t occurences=1)
 Crée une variable du type demandé. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< typename UniformTypeTraits< Type >::type > createUniform (castor::String const &name, int occurences=1)
 Crée une variable. Plus de détails...
 
C3D_API void removeUniform (castor::String const &name)
 Supprime une variable de ce tampon. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< TUniform< Type > > getUniform (castor::String const &name) const
 Récupère une variable par son nom. Plus de détails...
 
GpuBuffergetStorage () const
 
UniformList::iterator begin ()
 
UniformList::const_iterator begin () const
 
UniformList::iterator end ()
 
UniformList::const_iterator end () const
 

Attributs protégés

UniformList m_listVariables
 
UniformMap m_mapVariables
 
castor::ByteArray m_buffer
 
GpuBufferSPtr m_storage
 
uint32_t m_offset { 0u }
 
UniformBufferBindingMap m_bindings
 
uint32_t m_bindingPoint { 0u }
 

Amis

class castor::TextWriter< castor3d::UniformBuffer >
 

Description détaillée

Buffer de variables de shader.

Auteur
Sylvain DOREMUS
Version
0.7.0.0
Date
19/04/2013
Remarques
Il stocke toutes les variables contenues dans un ShaderProgram ou un ShaderObject
Il est aussi responsable de la création des variables
Utilise les GPU buffers si supportés (OpenGL Uniform Buffer Objects, Direct3D Constants buffers)

Documentation des constructeurs et destructeur

◆ UniformBuffer() [1/3]

castor3d::UniformBuffer::UniformBuffer ( UniformBuffer const &  )
delete

◆ UniformBuffer() [2/3]

castor3d::UniformBuffer::UniformBuffer ( UniformBuffer &&  )
default

◆ UniformBuffer() [3/3]

C3D_API castor3d::UniformBuffer::UniformBuffer ( castor::String const &  name,
RenderSystem renderSystem,
uint32_t  bindingPoint 
)

Constructeur.

Paramètres
[in]nameLe nom du tampon.
[in]renderSystemLe render system.
[in]bindingPointLe point d'attache.

◆ ~UniformBuffer()

virtual C3D_API castor3d::UniformBuffer::~UniformBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ begin() [1/2]

UniformList::iterator castor3d::UniformBuffer::begin ( )
inline
Renvoie
L'itérateur sur le début de la liste de variables.

Références m_listVariables.

◆ begin() [2/2]

UniformList::const_iterator castor3d::UniformBuffer::begin ( ) const
inline
Renvoie
L'itérateur sur le début de la liste de variables.

Références m_listVariables.

◆ bindTo()

C3D_API void castor3d::UniformBuffer::bindTo ( uint32_t  index) const

Définit le point d'attache du tampon.

Paramètres
[in]indexLe point d'attache.

◆ cleanup()

C3D_API void castor3d::UniformBuffer::cleanup ( )

Nettoie toutes les variables et le tampon GPU associé.

◆ createBinding()

C3D_API UniformBufferBinding& castor3d::UniformBuffer::createBinding ( ShaderProgram program)

Crée un binding entre ce tampon d'uniformes et le porgramme donné.

Remarques
Si c'est le premier binding créé, le stokage GPU et les variables seront initialisées.
Paramètres
[in]programLe programme.
Renvoie
Le binding créé.

◆ createUniform() [1/2]

C3D_API UniformSPtr castor3d::UniformBuffer::createUniform ( UniformType  type,
castor::String const &  name,
uint32_t  occurences = 1 
)

Crée une variable du type demandé.

Paramètres
[in]typeLe type voulu.
[in]nameLe nom de la variable.
[in]occurencesLes dimensions du tableau.
Renvoie
La variable créée, nullptr en cas d'échec.

Référencé par createUniform().

+ Voici le graphe des appelants de cette fonction :

◆ createUniform() [2/2]

template<UniformType Type>
std::shared_ptr< typename UniformTypeTraits< Type >::type > castor3d::UniformBuffer::createUniform ( castor::String const &  name,
int  occurences = 1 
)
inline

Crée une variable.

Paramètres
[in]nameLe nom de la variable.
[in]occurencesLes dimensions du tableau.
Renvoie
La variable créée, nullptr en cas d'échec.

Références C3D_API, createUniform(), getUniform(), et removeUniform().

+ Voici le graphe d'appel pour cette fonction :

◆ end() [1/2]

UniformList::iterator castor3d::UniformBuffer::end ( )
inline
Renvoie
L'itérateur sur la fin de la liste de variables.

Références m_listVariables.

◆ end() [2/2]

UniformList::const_iterator castor3d::UniformBuffer::end ( ) const
inline
Renvoie
L'itérateur sur la fin de la liste de variables.

Références m_listVariables.

◆ getBinding()

C3D_API UniformBufferBinding& castor3d::UniformBuffer::getBinding ( ShaderProgram program) const

Récupère le binding pour le programme donné.

Paramètres
[in]programLe programme.
Renvoie
Le binding récupéré.

◆ getBindingPoint()

C3D_API uint32_t castor3d::UniformBuffer::getBindingPoint ( ) const
Renvoie
Le point d'attache du tampon.

◆ getStorage()

GpuBuffer& castor3d::UniformBuffer::getStorage ( ) const
inline
Renvoie
Le stockage GPU.

Références m_storage.

◆ getUniform()

template<UniformType Type>
std::shared_ptr< TUniform< Type > > castor3d::UniformBuffer::getUniform ( castor::String const &  name) const
inline

Récupère une variable par son nom.

Paramètres
[in]nameLe nom de la variable.
Renvoie
La variable récupérée, nullptr si non trouvée.

Référencé par createUniform().

+ Voici le graphe des appelants de cette fonction :

◆ operator=() [1/2]

UniformBuffer& castor3d::UniformBuffer::operator= ( UniformBuffer const &  )
delete

◆ operator=() [2/2]

UniformBuffer& castor3d::UniformBuffer::operator= ( UniformBuffer &&  )
default

◆ removeUniform()

C3D_API void castor3d::UniformBuffer::removeUniform ( castor::String const &  name)

Supprime une variable de ce tampon.

Paramètres
[in]nameLe nom de la variable.

Référencé par createUniform().

+ Voici le graphe des appelants de cette fonction :

◆ update()

C3D_API void castor3d::UniformBuffer::update ( ) const

Met à jour le stockage GPU.

Documentation des fonctions amies et associées

◆ castor::TextWriter< castor3d::UniformBuffer >

friend class castor::TextWriter< castor3d::UniformBuffer >
friend

Documentation des données membres

◆ m_bindingPoint

uint32_t castor3d::UniformBuffer::m_bindingPoint { 0u }
protected

Le point d'attache initial.

◆ m_bindings

UniformBufferBindingMap castor3d::UniformBuffer::m_bindings
protected

Les bindings par programme.

◆ m_buffer

castor::ByteArray castor3d::UniformBuffer::m_buffer
protected

Le tampon de données.

◆ m_listVariables

UniformList castor3d::UniformBuffer::m_listVariables
protected

La liste de variables.

Référencé par begin(), et end().

◆ m_mapVariables

UniformMap castor3d::UniformBuffer::m_mapVariables
protected

Les variables, triées par nom.

◆ m_offset

uint32_t castor3d::UniformBuffer::m_offset { 0u }
protected

Le décalage dans le tampon GPU.

◆ m_storage

GpuBufferSPtr castor3d::UniformBuffer::m_storage
protected

Le tampon GPU.

Référencé par getStorage().


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