Castor3D  ..
Fonctions membres publiques | Fonctions membres protégées | Attributs protégés | Attributs protégés statiques | Liste de tous les membres
Référence de la classe Castor3D::FrameVariableBufferabstract

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

+ Graphe d'héritage de Castor3D::FrameVariableBuffer:
+ Graphe de collaboration de Castor3D::FrameVariableBuffer:

Fonctions membres publiques

C3D_API FrameVariableBuffer (Castor::String const &p_name, RenderSystem &p_renderSystem)
 Constructeur. Plus de détails...
 
virtual C3D_API ~FrameVariableBuffer ()
 Destructeur. Plus de détails...
 
C3D_API bool Initialise (ShaderProgram &p_program)
 Initialise toutes les variables et le tampon GPU associé Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie toutes les variables et le tampon GPU associé Plus de détails...
 
C3D_API bool Bind (uint32_t p_index)
 Active toutes les variables, au travers du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers) Plus de détails...
 
C3D_API void Unbind (uint32_t p_index)
 Désactive toutes les variables. Plus de détails...
 
C3D_API FrameVariableSPtr CreateVariable (ShaderProgram &p_program, eFRAME_VARIABLE_TYPE p_type, Castor::String const &p_name, uint32_t p_occurences=1)
 Crée une variable du type demandé Plus de détails...
 
C3D_API void RemoveVariable (Castor::String const &p_name)
 Supprime une variable de ce tampon. Plus de détails...
 
template<typename T >
std::shared_ptr< OneFrameVariable< T > > GetVariable (Castor::String const &p_name, std::shared_ptr< OneFrameVariable< T > > &p_variable) const
 Récupère une variable par son nom. Plus de détails...
 
template<typename T , uint32_t Count>
std::shared_ptr< PointFrameVariable< T, Count > > GetVariable (Castor::String const &p_name, std::shared_ptr< PointFrameVariable< T, Count > > &p_variable) const
 Récupère une variable par son nom. Plus de détails...
 
template<typename T , uint32_t Rows, uint32_t Columns>
std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > GetVariable (Castor::String const &p_name, std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > &p_variable) const
 Récupère une variable par son nom. Plus de détails...
 
Castor::String const & GetName () const
 Récupère le nom du buffer de variables. Plus de détails...
 
FrameVariablePtrList::iterator begin ()
 Récupère un itérateur sur le début de la liste de variables. Plus de détails...
 
FrameVariablePtrList::const_iterator begin () const
 Récupère un itérateur sur le début de la liste de variables. Plus de détails...
 
FrameVariablePtrList::iterator end ()
 Récupère un itérateur sur la fin de la liste de variables. Plus de détails...
 
FrameVariablePtrList::const_iterator end () const
 Récupère un itérateur sur la fin de la liste de variables. Plus de détails...
 

Fonctions membres protégées

virtual C3D_API FrameVariableSPtr DoCreateVariable (ShaderProgram *p_program, eFRAME_VARIABLE_TYPE p_type, Castor::String const &p_name, uint32_t p_occurences=1)=0
 Crée une variable du type demandé Plus de détails...
 
virtual C3D_API bool DoInitialise (ShaderProgram *p_program)=0
 Initialise toutes les variables et le tampon GPU associé Plus de détails...
 
virtual C3D_API void DoCleanup ()=0
 Nettoie toutes les variables et le tampon GPU associé Plus de détails...
 
virtual C3D_API bool DoBind (uint32_t p_index)=0
 Active toutes les variables, au traves du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers) Plus de détails...
 
virtual C3D_API void DoUnbind (uint32_t p_index)=0
 Désactive toutes les variables. Plus de détails...
 

Attributs protégés

uint32_t m_index
 L'index du tampon. Plus de détails...
 
FrameVariablePtrList m_listVariables
 La liste de variables. Plus de détails...
 
FrameVariablePtrList m_listInitialised
 La liste de variables initialisées. Plus de détails...
 
FrameVariablePtrStrMap m_mapVariables
 Les variables, triées par nom. Plus de détails...
 
Castor::String m_name
 Le nom du tampon. Plus de détails...
 
Castor::ByteArray m_buffer
 Le tampon de données. Plus de détails...
 

Attributs protégés statiques

static uint32_t sm_uiCount
 Le compte des tampons. Plus de détails...
 

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

C3D_API Castor3D::FrameVariableBuffer::FrameVariableBuffer ( Castor::String const &  p_name,
RenderSystem p_renderSystem 
)

Constructeur.

Paramètres
[in]p_nameLe nom du tampon
[in]p_renderSystemLe render system
virtual C3D_API Castor3D::FrameVariableBuffer::~FrameVariableBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

FrameVariablePtrList::iterator Castor3D::FrameVariableBuffer::begin ( )
inline

Récupère un itérateur sur le début de la liste de variables.

Renvoie
L'itérateur

Références m_listVariables.

FrameVariablePtrList::const_iterator Castor3D::FrameVariableBuffer::begin ( ) const
inline

Récupère un itérateur sur le début de la liste de variables.

Renvoie
L'itérateur

Références m_listVariables.

C3D_API bool Castor3D::FrameVariableBuffer::Bind ( uint32_t  p_index)

Active toutes les variables, au travers du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers)

Paramètres
[in]p_indexL'index du tampon GPU
Renvoie
false en cas de problème
C3D_API void Castor3D::FrameVariableBuffer::Cleanup ( )

Nettoie toutes les variables et le tampon GPU associé

C3D_API FrameVariableSPtr Castor3D::FrameVariableBuffer::CreateVariable ( ShaderProgram p_program,
eFRAME_VARIABLE_TYPE  p_type,
Castor::String const &  p_name,
uint32_t  p_occurences = 1 
)

Crée une variable du type demandé

Paramètres
[in]p_programLe programme
[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
virtual C3D_API bool Castor3D::FrameVariableBuffer::DoBind ( uint32_t  p_index)
protectedpure virtual

Active toutes les variables, au traves du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers)

Paramètres
[in]p_indexL'index du tampon GPU
Renvoie
false if any problem occured

Référencé par end().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API void Castor3D::FrameVariableBuffer::DoCleanup ( )
protectedpure virtual

Nettoie toutes les variables et le tampon GPU associé

Référencé par end().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API FrameVariableSPtr Castor3D::FrameVariableBuffer::DoCreateVariable ( ShaderProgram p_program,
eFRAME_VARIABLE_TYPE  p_type,
Castor::String const &  p_name,
uint32_t  p_occurences = 1 
)
protectedpure virtual

Crée une variable du type demandé

Paramètres
[in]p_programLe programme
[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 end().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API bool Castor3D::FrameVariableBuffer::DoInitialise ( ShaderProgram p_program)
protectedpure virtual

Initialise toutes les variables et le tampon GPU associé

Paramètres
[in]p_programLe programme
Renvoie
false if any problem occured

Référencé par end().

+ Voici le graphe des appelants de cette fonction :

virtual C3D_API void Castor3D::FrameVariableBuffer::DoUnbind ( uint32_t  p_index)
protectedpure virtual

Désactive toutes les variables.

Paramètres
[in]p_indexL'index du tampon GPU

Référencé par end().

+ Voici le graphe des appelants de cette fonction :

FrameVariablePtrList::iterator Castor3D::FrameVariableBuffer::end ( )
inline

Récupère un itérateur sur la fin de la liste de variables.

Renvoie
L'itérateur

Références m_listVariables.

FrameVariablePtrList::const_iterator Castor3D::FrameVariableBuffer::end ( ) const
inline

Récupère un itérateur sur la fin de la liste de variables.

Renvoie
L'itérateur

Références DoBind(), DoCleanup(), DoCreateVariable(), DoInitialise(), DoUnbind(), et m_listVariables.

+ Voici le graphe d'appel pour cette fonction :

Castor::String const& Castor3D::FrameVariableBuffer::GetName ( ) const
inline

Récupère le nom du buffer de variables.

Renvoie
Le nom

Références m_name.

template<typename T >
std::shared_ptr< OneFrameVariable< T > > Castor3D::FrameVariableBuffer::GetVariable ( Castor::String const &  p_name,
std::shared_ptr< OneFrameVariable< T > > &  p_variable 
) const

Récupère une variable par son nom.

Paramètres
[in]p_nameLe nom de la variable
[out]p_variableReçoit la variable récupérée, nullptr en cas d'échec
Renvoie
false en cas d'échec
template<typename T , uint32_t Count>
std::shared_ptr< PointFrameVariable< T, Count > > Castor3D::FrameVariableBuffer::GetVariable ( Castor::String const &  p_name,
std::shared_ptr< PointFrameVariable< T, Count > > &  p_variable 
) const

Récupère une variable par son nom.

Paramètres
[in]p_nameLe nom de la variable
[out]p_variableReçoit la variable récupérée, nullptr en cas d'échec
Renvoie
false en cas d'échec
template<typename T , uint32_t Rows, uint32_t Columns>
std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > Castor3D::FrameVariableBuffer::GetVariable ( Castor::String const &  p_name,
std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > &  p_variable 
) const

Récupère une variable par son nom.

Paramètres
[in]p_nameLe nom de la variable
[out]p_variableReçoit la variable récupérée, nullptr en cas d'échec
Renvoie
false en cas d'échec
C3D_API bool Castor3D::FrameVariableBuffer::Initialise ( ShaderProgram p_program)

Initialise toutes les variables et le tampon GPU associé

Paramètres
[in]p_programLe programme
Renvoie
false if any problem occured
C3D_API void Castor3D::FrameVariableBuffer::RemoveVariable ( Castor::String const &  p_name)

Supprime une variable de ce tampon.

Paramètres
[in]p_nameLe nom de la variable
C3D_API void Castor3D::FrameVariableBuffer::Unbind ( uint32_t  p_index)

Désactive toutes les variables.

Paramètres
[in]p_indexL'index du tampon GPU

Documentation des données membres

Castor::ByteArray Castor3D::FrameVariableBuffer::m_buffer
protected

Le tampon de données.

uint32_t Castor3D::FrameVariableBuffer::m_index
protected

L'index du tampon.

FrameVariablePtrList Castor3D::FrameVariableBuffer::m_listInitialised
protected

La liste de variables initialisées.

FrameVariablePtrList Castor3D::FrameVariableBuffer::m_listVariables
protected

La liste de variables.

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

FrameVariablePtrStrMap Castor3D::FrameVariableBuffer::m_mapVariables
protected

Les variables, triées par nom.

Castor::String Castor3D::FrameVariableBuffer::m_name
protected

Le nom du tampon.

Référencé par GetName().

uint32_t Castor3D::FrameVariableBuffer::sm_uiCount
staticprotected

Le compte des tampons.


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