Castor3D  ..
Classes | Fonctions membres publiques | Fonctions membres publiques statiques | 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 &p_name, RenderSystem &p_renderSystem)
 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 ()
 Met à jour le stockage GPU. Plus de détails...
 
C3D_API UniformBufferBindingCreateBinding (ShaderProgram &p_program)
 Crée un binding entre ce tampon d'uniformes et le porgramme donné. Plus de détails...
 
C3D_API UniformBufferBindingGetBinding (ShaderProgram &p_program) const
 Récupère le binding pour le programme donné. Plus de détails...
 
C3D_API UniformSPtr CreateUniform (UniformType p_type, Castor::String const &p_name, uint32_t p_occurences=1)
 Crée une variable du type demandé. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< typename uniform_type< Type >::type > CreateUniform (Castor::String const &p_name, int p_occurences=1)
 Crée une variable. Plus de détails...
 
C3D_API void RemoveUniform (Castor::String const &p_name)
 Supprime une variable de ce tampon. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< TUniform< Type > > GetUniform (Castor::String const &p_name) const
 Récupère une variable par son nom. Plus de détails...
 
GpuBuffer< uint8_t > & GetStorage () const
 
UniformList::iterator begin ()
 
UniformList::const_iterator begin () const
 
UniformList::iterator end ()
 
UniformList::const_iterator end () const
 

Fonctions membres publiques statiques

static C3D_API void FillMatrixBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives aux matrices. Plus de détails...
 
static C3D_API void FillModelMatrixBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives aux matrices modèle. Plus de détails...
 
static C3D_API void FillSceneBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives à la scène. Plus de détails...
 
static C3D_API void FillPassBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives à la passe. Plus de détails...
 
static C3D_API void FillModelBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives au modèle. Plus de détails...
 
static C3D_API void FillSkinningBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives aux animations de skinning. Plus de détails...
 
static C3D_API void FillMorphingBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives aux animations de morphing. Plus de détails...
 
static C3D_API void FillBillboardBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives au billboard. Plus de détails...
 
static C3D_API void FillOverlayBuffer (UniformBuffer &p_ubo)
 Remplit un UBO avec les variable relatives aux incrustations. Plus de détails...
 

Attributs protégés

UniformList m_listVariables
 
UniformMap m_mapVariables
 
Castor::ByteArray m_buffer
 
std::unique_ptr< GpuBuffer< uint8_t > > m_storage
 
UniformBufferBindingMap m_bindings
 

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 &  p_name,
RenderSystem p_renderSystem 
)

Constructeur.

Paramètres
[in]p_nameLe nom du tampon.
[in]p_renderSystemLe render system.

◆ ~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.

◆ Cleanup()

C3D_API void Castor3D::UniformBuffer::Cleanup ( )

Nettoie toutes les variables et le tampon GPU associé.

◆ CreateBinding()

C3D_API UniformBufferBinding& Castor3D::UniformBuffer::CreateBinding ( ShaderProgram p_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]p_programLe programme.
Renvoie
Le binding créé.

◆ CreateUniform() [1/2]

C3D_API UniformSPtr Castor3D::UniformBuffer::CreateUniform ( UniformType  p_type,
Castor::String const &  p_name,
uint32_t  p_occurences = 1 
)

Crée une variable du type demandé.

Paramètres
[in]p_typeLe type voulu.
[in]p_nameLe nom de la variable.
[in]p_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 uniform_type< Type >::type > Castor3D::UniformBuffer::CreateUniform ( Castor::String const &  p_name,
int  p_occurences = 1 
)
inline

Crée une variable.

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

Références C3D_API, CreateUniform(), FillBillboardBuffer(), FillMatrixBuffer(), FillModelBuffer(), FillModelMatrixBuffer(), FillMorphingBuffer(), FillOverlayBuffer(), FillPassBuffer(), FillSceneBuffer(), FillSkinningBuffer(), 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.

◆ FillBillboardBuffer()

static C3D_API void Castor3D::UniformBuffer::FillBillboardBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives au billboard.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillMatrixBuffer()

static C3D_API void Castor3D::UniformBuffer::FillMatrixBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives aux matrices.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillModelBuffer()

static C3D_API void Castor3D::UniformBuffer::FillModelBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives au modèle.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillModelMatrixBuffer()

static C3D_API void Castor3D::UniformBuffer::FillModelMatrixBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives aux matrices modèle.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillMorphingBuffer()

static C3D_API void Castor3D::UniformBuffer::FillMorphingBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives aux animations de morphing.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillOverlayBuffer()

static C3D_API void Castor3D::UniformBuffer::FillOverlayBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives aux incrustations.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillPassBuffer()

static C3D_API void Castor3D::UniformBuffer::FillPassBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives à la passe.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillSceneBuffer()

static C3D_API void Castor3D::UniformBuffer::FillSceneBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives à la scène.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ FillSkinningBuffer()

static C3D_API void Castor3D::UniformBuffer::FillSkinningBuffer ( UniformBuffer p_ubo)
static

Remplit un UBO avec les variable relatives aux animations de skinning.

Paramètres
[in]p_uboL'UBO à remplir.

Référencé par CreateUniform().

+ Voici le graphe des appelants de cette fonction :

◆ GetBinding()

C3D_API UniformBufferBinding& Castor3D::UniformBuffer::GetBinding ( ShaderProgram p_program) const

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

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

◆ GetStorage()

GpuBuffer< uint8_t >& 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 &  p_name) const
inline

Récupère une variable par son nom.

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

Supprime une variable de ce tampon.

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

Met à jour le stockage GPU.

Référencé par Castor3D::DoBindPass(), et Castor3D::DoRenderNodeNoPass().

+ Voici le graphe des appelants de cette fonction :

Documentation des fonctions amies et associées

◆ Castor::TextWriter< Castor3D::UniformBuffer >

friend class Castor::TextWriter< Castor3D::UniformBuffer >
friend

Documentation des données membres

◆ 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_storage

std::unique_ptr< GpuBuffer< uint8_t > > 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 :