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

Classe de base pour les shaders. Plus de détails...

+ Graphe de collaboration de Castor3D::ShaderObjectBase:

Classes

class  BinaryParser
 Loader de ShaderObjectBase. Plus de détails...
 
class  TextLoader
 Loader de ShaderObjectBase. Plus de détails...
 

Fonctions membres publiques

 ShaderObjectBase (ShaderProgramBase *p_pParent, eSHADER_TYPE p_eType)
 Constructeur. Plus de détails...
 
virtual ~ShaderObjectBase ()
 Destructeur. Plus de détails...
 
void SetFile (eSHADER_MODEL p_eModel, Castor::Path const &p_pathFile)
 Définit le fichier du shader pour le modèle donné Plus de détails...
 
void SetSource (eSHADER_MODEL p_eModel, Castor::String const &p_strSource)
 Définit la source du shader pour le modèle donné Plus de détails...
 
bool HasSource ()
 Dit si le shader a un code source, quel que soit son modèle. Plus de détails...
 
virtual void Bind ()
 Active le shader. Plus de détails...
 
virtual void Unbind ()
 Désactive le shader. Plus de détails...
 
virtual bool Compile ()
 Compile le shader. Plus de détails...
 
virtual void CreateProgram ()=0
 Crée le programme sur le GPU. Plus de détails...
 
virtual void DestroyProgram ()=0
 Détruit le programme sur le GPU. Plus de détails...
 
virtual void AddFrameVariable (OneTextureFrameVariableSPtr p_pVariable)
 Crée une variable uniform à donner aux ShaderObjects. Plus de détails...
 
FrameVariablePtrStrMapConstIt GetFrameVariablesBegin () const
 Récupère un itérateur constant sur le début de la liste de frame variables. Plus de détails...
 
FrameVariablePtrStrMapIt GetFrameVariablesBegin ()
 Récupère un itérateur sur le début de la liste de frame variables. Plus de détails...
 
FrameVariablePtrStrMapConstIt GetFrameVariablesEnd () const
 Récupère un itérateur constant sur la fin de la liste de frame variables. Plus de détails...
 
FrameVariablePtrStrMapIt GetFrameVariablesEnd ()
 Récupère un itérateur sur la fin de la liste de frame variables. Plus de détails...
 
OneTextureFrameVariableSPtr FindFrameVariable (Castor::String const &p_strName) const
 Trouve une variable. Plus de détails...
 
virtual void FlushFrameVariables ()
 Vide la liste de frame variables. Plus de détails...
 
virtual void SetEntryPoint (Castor::String const &p_strName)=0
 Définit le point d'entrée pour ls langages en ayant besoin. Plus de détails...
 
virtual Castor::String GetEntryPoint () const =0
 Récupère le point d'entrée. Plus de détails...
 
virtual bool HasParameter (Castor::String const &CU_PARAM_UNUSED(p_strName))
 Dit si le shader compilé a le paramètre donné Plus de détails...
 
virtual void SetParameter (Castor::String const &CU_PARAM_UNUSED(p_strName), Castor::Matrix4x4r const &CU_PARAM_UNUSED(p_mtxValue))
 Définit la valeur du paramètre. Plus de détails...
 
virtual void SetParameter (Castor::String const &CU_PARAM_UNUSED(p_strName), Castor::Matrix3x3r const &CU_PARAM_UNUSED(p_mtxValue))
 Définit la valeur du paramètre. Plus de détails...
 
Castor::String const & GetSource (eSHADER_MODEL p_eModel) const
 Récupère la source du shader pour le modèle donné Plus de détails...
 
Castor::String const & GetLoadedSource () const
 Récupère la source du shader compilé Plus de détails...
 
Castor::Path const & GetFile (eSHADER_MODEL p_eModel) const
 Récupère le fichier du shader pour le modèle donné Plus de détails...
 
Castor::Path const & GetCurrentFile () const
 Récupère le fichier du shader pour le modèle courant. Plus de détails...
 
Castor::String GetStrType () const
 Récupère le nom du type de cet objet. Plus de détails...
 
eSHADER_TYPE GetType () const
 Récupère le type de cet objet. Plus de détails...
 
void SetInputType (eTOPOLOGY val)
 Définit le type des primitives en entrée. Plus de détails...
 
eTOPOLOGY GetInputType () const
 Récupère le type des primitives en entrée. Plus de détails...
 
void SetOutputType (eTOPOLOGY val)
 Définit le type des primitives en sortie. Plus de détails...
 
eTOPOLOGY GetOutputType () const
 Récupère le type des primitives en sortie. Plus de détails...
 
void SetOutputVtxCount (uint8_t p_uiCount)
 Définit le nombre de vertices générés. Plus de détails...
 
uint8_t GetOutputVtxCount () const
 Récupère le nombre de vertices générés. Plus de détails...
 
eSHADER_STATUS GetStatus () const
 Récupère le statut de compilation de l'objet. Plus de détails...
 
ShaderProgramBaseGetParent () const
 Récupère le parent de l'objet. Plus de détails...
 

Attributs protégés

ShaderProgramBasem_pParent
 Le programme parent. Plus de détails...
 
eSHADER_TYPE m_eType
 
std::array< Castor::Path,
eSHADER_MODEL_COUNT > 
m_arrayFiles
 Tableau des chemins de fichiers, triés par modèle de shader. Plus de détails...
 
std::array< Castor::String,
eSHADER_MODEL_COUNT > 
m_arraySources
 Tableau des codes sources, triés par modèle de shader. Plus de détails...
 
Castor::String m_strLoadedSource
 Le chemin d'accès au fichier contenant le source du shader. Plus de détails...
 
Castor::Path m_pathLoadedFile
 Le statut de compilation du shader. Plus de détails...
 
eSHADER_STATUS m_eStatus
 
FrameVariablePtrStrMap m_mapFrameVariables
 La liste des variables de frame. Plus de détails...
 
FrameVariablePtrList m_listFrameVariables
 La liste des variables de frame. Plus de détails...
 
eTOPOLOGY m_eInputType
 Le type de primitives en entrée (pour les geometry shaders) Plus de détails...
 
eTOPOLOGY m_eOutputType
 Le type de primitives en sortie (pour les geometry shaders) Plus de détails...
 
uint8_t m_uiOutputVtxCount
 Le nombre de vertex générés (pour les geometry shaders) Plus de détails...
 
eSHADER_MODEL m_eShaderModel
 Le modèle de shader actuel. Plus de détails...
 

Description détaillée

Classe de base pour les shaders.

Auteur
Sylvain DOREMUS
Version
0.6.1.0
Date
03/01/2011
Remarques
Utilisée pour exposer les fonctions communes aux différents langages de shader

Documentation des constructeurs et destructeur

Castor3D::ShaderObjectBase::ShaderObjectBase ( ShaderProgramBase p_pParent,
eSHADER_TYPE  p_eType 
)

Constructeur.

Paramètres
[in]p_pParentprogramme parent
[in]p_eTypeType de shader
virtual Castor3D::ShaderObjectBase::~ShaderObjectBase ( )
virtual

Destructeur.

Documentation des fonctions membres

virtual void Castor3D::ShaderObjectBase::AddFrameVariable ( OneTextureFrameVariableSPtr  p_pVariable)
virtual

Crée une variable uniform à donner aux ShaderObjects.

Paramètres
[in]p_pVariableLa variable à donner
virtual void Castor3D::ShaderObjectBase::Bind ( )
virtual

Active le shader.

virtual bool Castor3D::ShaderObjectBase::Compile ( )
virtual

Compile le shader.

Renvoie
true en cas de succès
virtual void Castor3D::ShaderObjectBase::CreateProgram ( )
pure virtual

Crée le programme sur le GPU.

virtual void Castor3D::ShaderObjectBase::DestroyProgram ( )
pure virtual

Détruit le programme sur le GPU.

OneTextureFrameVariableSPtr Castor3D::ShaderObjectBase::FindFrameVariable ( Castor::String const &  p_strName) const

Trouve une variable.

Renvoie
La variable trouvé, nullptr en cas d'échec
virtual void Castor3D::ShaderObjectBase::FlushFrameVariables ( )
virtual

Vide la liste de frame variables.

Castor::Path const& Castor3D::ShaderObjectBase::GetCurrentFile ( ) const
inline

Récupère le fichier du shader pour le modèle courant.

Renvoie
Le nom du fichier
virtual Castor::String Castor3D::ShaderObjectBase::GetEntryPoint ( ) const
pure virtual

Récupère le point d'entrée.

Renvoie
Le point d'entrée
Castor::Path const& Castor3D::ShaderObjectBase::GetFile ( eSHADER_MODEL  p_eModel) const
inline

Récupère le fichier du shader pour le modèle donné

Paramètres
[in]p_eModelLe modèle de shader
Renvoie
Le nom du fichier
FrameVariablePtrStrMapConstIt Castor3D::ShaderObjectBase::GetFrameVariablesBegin ( ) const
inline

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

Renvoie
L'itérateur
FrameVariablePtrStrMapIt Castor3D::ShaderObjectBase::GetFrameVariablesBegin ( )
inline

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

Renvoie
L'itérateur
FrameVariablePtrStrMapConstIt Castor3D::ShaderObjectBase::GetFrameVariablesEnd ( ) const
inline

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

Renvoie
L'itérateur
FrameVariablePtrStrMapIt Castor3D::ShaderObjectBase::GetFrameVariablesEnd ( )
inline

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

Renvoie
L'itérateur
eTOPOLOGY Castor3D::ShaderObjectBase::GetInputType ( ) const
inline

Récupère le type des primitives en entrée.

Renvoie
Le type des primitives
Castor::String const& Castor3D::ShaderObjectBase::GetLoadedSource ( ) const
inline

Récupère la source du shader compilé

Renvoie
Le code de la source
eTOPOLOGY Castor3D::ShaderObjectBase::GetOutputType ( ) const
inline

Récupère le type des primitives en sortie.

Renvoie
Le type des primitives
uint8_t Castor3D::ShaderObjectBase::GetOutputVtxCount ( ) const
inline

Récupère le nombre de vertices générés.

Renvoie
Le compte
ShaderProgramBase* Castor3D::ShaderObjectBase::GetParent ( ) const
inline

Récupère le parent de l'objet.

Renvoie
Le parent
Castor::String const& Castor3D::ShaderObjectBase::GetSource ( eSHADER_MODEL  p_eModel) const
inline

Récupère la source du shader pour le modèle donné

Paramètres
[in]p_eModelLe modèle de shader
Renvoie
Le code de la source
eSHADER_STATUS Castor3D::ShaderObjectBase::GetStatus ( ) const
inline

Récupère le statut de compilation de l'objet.

Renvoie
Le statut
Castor::String Castor3D::ShaderObjectBase::GetStrType ( ) const
inline

Récupère le nom du type de cet objet.

Renvoie
Le nom du type
eSHADER_TYPE Castor3D::ShaderObjectBase::GetType ( ) const
inline

Récupère le type de cet objet.

Renvoie
Le type
virtual bool Castor3D::ShaderObjectBase::HasParameter ( Castor::String const &  CU_PARAM_UNUSEDp_strName)
inlinevirtual

Dit si le shader compilé a le paramètre donné

Paramètres
[in]p_strNameLe nom du paramètre
Renvoie
true si le paramètre a été trouvé
bool Castor3D::ShaderObjectBase::HasSource ( )

Dit si le shader a un code source, quel que soit son modèle.

Renvoie
true si le shader a un code source
virtual void Castor3D::ShaderObjectBase::SetEntryPoint ( Castor::String const &  p_strName)
pure virtual

Définit le point d'entrée pour ls langages en ayant besoin.

Paramètres
[in]p_strNameLe point d'entrée
void Castor3D::ShaderObjectBase::SetFile ( eSHADER_MODEL  p_eModel,
Castor::Path const &  p_pathFile 
)

Définit le fichier du shader pour le modèle donné

Remarques
Le fichier chargé sera celui du plus haut profil supporté
Paramètres
[in]p_eModelLe modèle de shader
[in]p_pathFileLe nom du fichier
void Castor3D::ShaderObjectBase::SetInputType ( eTOPOLOGY  val)
inline

Définit le type des primitives en entrée.

Paramètres
[in]p_ePrimitiveTypeLe type des primitives en entrée
void Castor3D::ShaderObjectBase::SetOutputType ( eTOPOLOGY  val)
inline

Définit le type des primitives en sortie.

Paramètres
[in]p_ePrimitiveTypeLe type des primitives
void Castor3D::ShaderObjectBase::SetOutputVtxCount ( uint8_t  p_uiCount)
inline

Définit le nombre de vertices générés.

Paramètres
[in]p_uiCountLe compte
virtual void Castor3D::ShaderObjectBase::SetParameter ( Castor::String const &  CU_PARAM_UNUSEDp_strName,
Castor::Matrix4x4r const &  CU_PARAM_UNUSEDp_mtxValue 
)
inlinevirtual

Définit la valeur du paramètre.

Paramètres
[in]p_strNameLe nom du paramètre
[in]p_mtxValueLa valeur du paramètre
virtual void Castor3D::ShaderObjectBase::SetParameter ( Castor::String const &  CU_PARAM_UNUSEDp_strName,
Castor::Matrix3x3r const &  CU_PARAM_UNUSEDp_mtxValue 
)
inlinevirtual

Définit la valeur du paramètre.

Paramètres
[in]p_strNameLe nom du paramètre
[in]p_mtxValueLa valeur du paramètre
void Castor3D::ShaderObjectBase::SetSource ( eSHADER_MODEL  p_eModel,
Castor::String const &  p_strSource 
)

Définit la source du shader pour le modèle donné

Remarques
La source chargée sera celle du plus haut profil supporté
Paramètres
[in]p_eModelLe modèle de shader
[in]p_strSourceLe code de la source
virtual void Castor3D::ShaderObjectBase::Unbind ( )
virtual

Désactive le shader.

Documentation des données membres

std::array< Castor::Path, eSHADER_MODEL_COUNT > Castor3D::ShaderObjectBase::m_arrayFiles
protected

Tableau des chemins de fichiers, triés par modèle de shader.

std::array< Castor::String, eSHADER_MODEL_COUNT > Castor3D::ShaderObjectBase::m_arraySources
protected

Tableau des codes sources, triés par modèle de shader.

Le texte ASCII du shader chargé

eTOPOLOGY Castor3D::ShaderObjectBase::m_eInputType
protected

Le type de primitives en entrée (pour les geometry shaders)

eTOPOLOGY Castor3D::ShaderObjectBase::m_eOutputType
protected

Le type de primitives en sortie (pour les geometry shaders)

eSHADER_MODEL Castor3D::ShaderObjectBase::m_eShaderModel
protected

Le modèle de shader actuel.

eSHADER_STATUS Castor3D::ShaderObjectBase::m_eStatus
protected
eSHADER_TYPE Castor3D::ShaderObjectBase::m_eType
protected
FrameVariablePtrList Castor3D::ShaderObjectBase::m_listFrameVariables
protected

La liste des variables de frame.

FrameVariablePtrStrMap Castor3D::ShaderObjectBase::m_mapFrameVariables
protected

La liste des variables de frame.

Castor::Path Castor3D::ShaderObjectBase::m_pathLoadedFile
protected

Le statut de compilation du shader.

ShaderProgramBase* Castor3D::ShaderObjectBase::m_pParent
protected

Le programme parent.

Le type de shader

Castor::String Castor3D::ShaderObjectBase::m_strLoadedSource
protected

Le chemin d'accès au fichier contenant le source du shader.

uint8_t Castor3D::ShaderObjectBase::m_uiOutputVtxCount
protected

Le nombre de vertex générés (pour les geometry shaders)


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