Castor3D
..
|
Buffer de variables de shader. Plus de détails...
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... | |
Buffer de variables de shader.
C3D_API Castor3D::FrameVariableBuffer::FrameVariableBuffer | ( | Castor::String const & | p_name, |
RenderSystem & | p_renderSystem | ||
) |
Constructeur.
[in] | p_name | Le nom du tampon |
[in] | p_renderSystem | Le render system |
|
virtual |
Destructeur.
|
inline |
Récupère un itérateur sur le début de la liste de variables.
Références m_listVariables.
|
inline |
Récupère un itérateur sur le début de la liste de variables.
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)
[in] | p_index | L'index du tampon GPU |
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é
[in] | p_program | Le programme |
[in] | p_type | Le type voulu |
[in] | p_name | Le nom de la variable |
[in] | p_occurences | Les dimensions du tableau |
|
protectedpure virtual |
Active toutes les variables, au traves du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers)
[in] | p_index | L'index du tampon GPU |
false
if any problem occured Référencé par end().
|
protectedpure virtual |
Nettoie toutes les variables et le tampon GPU associé
Référencé par end().
|
protectedpure virtual |
Crée une variable du type demandé
[in] | p_program | Le programme |
[in] | p_type | Le type voulu |
[in] | p_name | Le nom de la variable |
[in] | p_occurences | Les dimensions du tableau |
Référencé par end().
|
protectedpure virtual |
Initialise toutes les variables et le tampon GPU associé
[in] | p_program | Le programme |
false
if any problem occured Référencé par end().
|
protectedpure virtual |
Désactive toutes les variables.
[in] | p_index | L'index du tampon GPU |
Référencé par end().
|
inline |
Récupère un itérateur sur la fin de la liste de variables.
Références m_listVariables.
|
inline |
Récupère un itérateur sur la fin de la liste de variables.
Références DoBind(), DoCleanup(), DoCreateVariable(), DoInitialise(), DoUnbind(), et m_listVariables.
|
inline |
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.
[in] | p_name | Le nom de la variable |
[out] | p_variable | Reçoit la variable récupérée, nullptr en cas d'échec |
false
en cas d'échec 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.
[in] | p_name | Le nom de la variable |
[out] | p_variable | Reçoit la variable récupérée, nullptr en cas d'échec |
false
en cas d'échec 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.
[in] | p_name | Le nom de la variable |
[out] | p_variable | Reçoit la variable récupérée, nullptr en cas d'échec |
false
en cas d'échec C3D_API bool Castor3D::FrameVariableBuffer::Initialise | ( | ShaderProgram & | p_program | ) |
Initialise toutes les variables et le tampon GPU associé
[in] | p_program | Le programme |
false
if any problem occured C3D_API void Castor3D::FrameVariableBuffer::RemoveVariable | ( | Castor::String const & | p_name | ) |
Supprime une variable de ce tampon.
[in] | p_name | Le nom de la variable |
C3D_API void Castor3D::FrameVariableBuffer::Unbind | ( | uint32_t | p_index | ) |
Désactive toutes les variables.
[in] | p_index | L'index du tampon GPU |
|
protected |
Le tampon de données.
|
protected |
L'index du tampon.
|
protected |
La liste de variables initialisées.
|
protected |
|
protected |
Les variables, triées par nom.
|
protected |
Le nom du tampon.
Référencé par GetName().
|
staticprotected |
Le compte des tampons.