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 de collaboration de Castor3D::FrameVariableBuffer:

Fonctions membres publiques

 FrameVariableBuffer (Castor::String const &p_strName, RenderSystem *p_pRenderSystem)
 Constructeur. Plus de détails...
 
virtual ~FrameVariableBuffer ()
 Destructeur. Plus de détails...
 
FrameVariableSPtr CreateVariable (ShaderProgramBase &p_program, eFRAME_VARIABLE_TYPE p_eType, Castor::String const &p_strName, uint32_t p_uiNbOcc=1)
 Crée une variable du type demandé Plus de détails...
 
template<typename T >
bool GetVariable (Castor::String const &p_strName, std::shared_ptr< OneFrameVariable< T > > &p_pVariable) const
 Récupère une variable par son nom. Plus de détails...
 
template<typename T , uint32_t Count>
bool GetVariable (Castor::String const &p_strName, std::shared_ptr< PointFrameVariable< T, Count > > &p_pVariable) const
 Récupère une variable par son nom. Plus de détails...
 
template<typename T , uint32_t Rows, uint32_t Columns>
bool GetVariable (Castor::String const &p_strName, std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > &p_pVariable) const
 Récupère une variable par son nom. Plus de détails...
 
bool Initialise (ShaderProgramBase &p_pProgram)
 Initialise toutes les variables et le tampon GPU associé Plus de détails...
 
void Cleanup ()
 Nettoie toutes les variables et le tampon GPU associé Plus de détails...
 
bool Bind ()
 Active toutes les variables, au travers du tampon GPU si supporté (OpenGL UBO, Direct3D Constants buffers) Plus de détails...
 
void Unbind ()
 Désactive toutes les variables. Plus de détails...
 

Fonctions membres protégées

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

Attributs protégés

uint32_t m_uiIndex
 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...
 
RenderSystemm_pRenderSystem
 Le render system. Plus de détails...
 
Castor::String m_strName
 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

Castor3D::FrameVariableBuffer::FrameVariableBuffer ( Castor::String const &  p_strName,
RenderSystem p_pRenderSystem 
)

Constructeur.

Paramètres
[in]p_pProgramLe programme
[in]p_strNameLe nom du tampon
[in]p_pRenderSystemLe render system
virtual Castor3D::FrameVariableBuffer::~FrameVariableBuffer ( )
virtual

Destructeur.

Documentation des fonctions membres

bool Castor3D::FrameVariableBuffer::Bind ( )

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

Paramètres
[in]p_pProgramLe programme
Renvoie
false if any problem occured
void Castor3D::FrameVariableBuffer::Cleanup ( )

Nettoie toutes les variables et le tampon GPU associé

FrameVariableSPtr Castor3D::FrameVariableBuffer::CreateVariable ( ShaderProgramBase p_program,
eFRAME_VARIABLE_TYPE  p_eType,
Castor::String const &  p_strName,
uint32_t  p_uiNbOcc = 1 
)

Crée une variable du type demandé

Paramètres
[in]p_eTypeLe type voulu
[in]p_strNameLe nom de la variable
[in]p_uiNbOccLes dimensions du tableau
Renvoie
La variable créée, nullptr en cas d'échec
virtual bool Castor3D::FrameVariableBuffer::DoBind ( )
protectedpure virtual

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

Paramètres
[in]p_pProgramLe programme
Renvoie
false if any problem occured
virtual void Castor3D::FrameVariableBuffer::DoCleanup ( )
protectedpure virtual

Nettoie toutes les variables et le tampon GPU associé

virtual FrameVariableSPtr Castor3D::FrameVariableBuffer::DoCreateVariable ( ShaderProgramBase p_pProgram,
eFRAME_VARIABLE_TYPE  p_eType,
Castor::String const &  p_strName,
uint32_t  p_uiNbOcc = 1 
)
protectedpure virtual

Crée une variable du type demandé

Paramètres
[in]p_eTypeLe type voulu
[in]p_strNameLe nom de la variable
[in]p_uiNbOccLes dimensions du tableau
Renvoie
La variable créée, nullptr en cas d'échec
virtual bool Castor3D::FrameVariableBuffer::DoInitialise ( ShaderProgramBase p_pProgram)
protectedpure virtual

Initialise toutes les variables et le tampon GPU associé

Paramètres
[in]p_pProgramLe programme
Renvoie
false if any problem occured
virtual void Castor3D::FrameVariableBuffer::DoUnbind ( )
protectedpure virtual

Désactive toutes les variables.

Paramètres
[in]p_pProgramLe programme
template<typename T >
bool Castor3D::FrameVariableBuffer::GetVariable ( Castor::String const &  p_strName,
std::shared_ptr< OneFrameVariable< T > > &  p_pVariable 
) const

Récupère une variable par son nom.

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

Récupère une variable par son nom.

Paramètres
[in]p_strNameLe nom de la variable
[out]p_pVariableReç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>
bool Castor3D::FrameVariableBuffer::GetVariable ( Castor::String const &  p_strName,
std::shared_ptr< MatrixFrameVariable< T, Rows, Columns > > &  p_pVariable 
) const

Récupère une variable par son nom.

Paramètres
[in]p_strNameLe nom de la variable
[out]p_pVariableReçoit la variable récupérée, nullptr en cas d'échec
Renvoie
false en cas d'échec
bool Castor3D::FrameVariableBuffer::Initialise ( ShaderProgramBase p_pProgram)

Initialise toutes les variables et le tampon GPU associé

Paramètres
[in]p_pProgramLe programme
Renvoie
false if any problem occured
void Castor3D::FrameVariableBuffer::Unbind ( )

Désactive toutes les variables.

Documentation des données membres

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

Le tampon de données.

FrameVariablePtrList Castor3D::FrameVariableBuffer::m_listInitialised
protected

La liste de variables initialisées.

FrameVariablePtrList Castor3D::FrameVariableBuffer::m_listVariables
protected

La liste de variables.

FrameVariablePtrStrMap Castor3D::FrameVariableBuffer::m_mapVariables
protected

Les variables, triées par nom.

RenderSystem* Castor3D::FrameVariableBuffer::m_pRenderSystem
protected

Le render system.

Castor::String Castor3D::FrameVariableBuffer::m_strName
protected

Le nom du tampon.

uint32_t Castor3D::FrameVariableBuffer::m_uiIndex
protected

L'index du tampon.

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 :