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

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

+ Graphe de collaboration de Castor3D::ShaderObject:

Classes

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

Fonctions membres publiques

C3D_API ShaderObject (ShaderProgram *p_parent, eSHADER_TYPE p_type)
 Constructeur. Plus de détails...
 
virtual C3D_API ~ShaderObject ()
 Destructeur. Plus de détails...
 
virtual C3D_API bool Create ()=0
 Crée le programme sur le GPU. Plus de détails...
 
virtual C3D_API void Destroy ()=0
 Détruit le programme sur le GPU. Plus de détails...
 
virtual C3D_API void Detach ()=0
 Détache ce shader de son programme. Plus de détails...
 
virtual C3D_API void AttachTo (ShaderProgram &p_program)=0
 Attache ce shader au programme donné Plus de détails...
 
C3D_API 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...
 
C3D_API bool HasFile () const
 Dit si le shader a un fichier source, quel que soit son modèle. Plus de détails...
 
C3D_API 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...
 
C3D_API bool HasSource () const
 Dit si le shader a un code source, quel que soit son modèle. Plus de détails...
 
C3D_API void Bind ()
 Active le shader. Plus de détails...
 
C3D_API void Unbind ()
 Désactive le shader. Plus de détails...
 
virtual C3D_API bool Compile ()
 Compile le shader. Plus de détails...
 
virtual C3D_API void AddFrameVariable (OneIntFrameVariableSPtr p_variable)
 Crée une variable uniform à donner aux ShaderObjects. Plus de détails...
 
C3D_API OneIntFrameVariableSPtr FindFrameVariable (Castor::String const &p_name) const
 Trouve une variable. Plus de détails...
 
virtual C3D_API void FlushFrameVariables ()
 Vide la liste de frame variables. Plus de détails...
 
FrameVariablePtrList & GetFrameVariables ()
 Récupère les variables de frame liées à ce shader. Plus de détails...
 
FrameVariablePtrList const & GetFrameVariables () const
 Récupère les variables de frame liées à ce shader. Plus de détails...
 
virtual bool HasParameter (Castor::String const &p_name)
 Dit si le shader compilé a le paramètre donné 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 p_topology)
 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 p_topology)
 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_count)
 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...
 
ShaderProgramGetParent () const
 Récupère le parent de l'objet. Plus de détails...
 
virtual void SetParameter (Castor::String const &p_name, Castor::Matrix4x4r const &p_value)
 Définit la valeur du paramètre. Plus de détails...
 
virtual void SetParameter (Castor::String const &p_name, Castor::Matrix3x3r const &p_value)
 Définit la valeur du paramètre. Plus de détails...
 

Fonctions membres protégées

C3D_API bool DoCheckErrors ()
 Vérifie les erreurs de compilation. Plus de détails...
 
virtual Castor::String DoRetrieveCompilerLog ()=0
 

Attributs protégés

ShaderProgramm_parent
 Le programme parent. Plus de détails...
 
eSHADER_TYPE m_type
 
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_loadedSource
 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_status
 
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

C3D_API Castor3D::ShaderObject::ShaderObject ( ShaderProgram p_parent,
eSHADER_TYPE  p_type 
)

Constructeur.

Paramètres
[in]p_parentprogramme parent
[in]p_typeType de shader
virtual C3D_API Castor3D::ShaderObject::~ShaderObject ( )
virtual

Destructeur.

Documentation des fonctions membres

virtual C3D_API void Castor3D::ShaderObject::AddFrameVariable ( OneIntFrameVariableSPtr  p_variable)
virtual

Crée une variable uniform à donner aux ShaderObjects.

Paramètres
[in]p_variableLa variable à donner
virtual C3D_API void Castor3D::ShaderObject::AttachTo ( ShaderProgram p_program)
pure virtual

Attache ce shader au programme donné

Paramètres
[in]p_programLe programme
C3D_API void Castor3D::ShaderObject::Bind ( )

Active le shader.

virtual C3D_API bool Castor3D::ShaderObject::Compile ( )
virtual

Compile le shader.

Renvoie
true en cas de succès
virtual C3D_API bool Castor3D::ShaderObject::Create ( )
pure virtual

Crée le programme sur le GPU.

virtual C3D_API void Castor3D::ShaderObject::Destroy ( )
pure virtual

Détruit le programme sur le GPU.

virtual C3D_API void Castor3D::ShaderObject::Detach ( )
pure virtual

Détache ce shader de son programme.

C3D_API bool Castor3D::ShaderObject::DoCheckErrors ( )
protected

Vérifie les erreurs de compilation.

Renvoie
true s'il n'y a pas d'erreurs.

Référencé par SetParameter().

+ Voici le graphe des appelants de cette fonction :

virtual Castor::String Castor3D::ShaderObject::DoRetrieveCompilerLog ( )
protectedpure virtual

Référencé par SetParameter().

+ Voici le graphe des appelants de cette fonction :

C3D_API OneIntFrameVariableSPtr Castor3D::ShaderObject::FindFrameVariable ( Castor::String const &  p_name) const

Trouve une variable.

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

Vide la liste de frame variables.

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

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

Renvoie
Le nom du fichier

Références m_arrayFiles, et m_eShaderModel.

Castor::Path const& Castor3D::ShaderObject::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

Références m_arrayFiles.

FrameVariablePtrList& Castor3D::ShaderObject::GetFrameVariables ( )
inline

Récupère les variables de frame liées à ce shader.

Renvoie
La liste

Références m_listFrameVariables.

FrameVariablePtrList const& Castor3D::ShaderObject::GetFrameVariables ( ) const
inline

Récupère les variables de frame liées à ce shader.

Renvoie
La liste

Références m_listFrameVariables.

eTOPOLOGY Castor3D::ShaderObject::GetInputType ( ) const
inline

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

Renvoie
Le type des primitives

Références m_eInputType.

Castor::String const& Castor3D::ShaderObject::GetLoadedSource ( ) const
inline

Récupère la source du shader compilé

Renvoie
Le code de la source

Références m_loadedSource.

eTOPOLOGY Castor3D::ShaderObject::GetOutputType ( ) const
inline

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

Renvoie
Le type des primitives

Références m_eOutputType.

uint8_t Castor3D::ShaderObject::GetOutputVtxCount ( ) const
inline

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

Renvoie
Le compte

Références m_uiOutputVtxCount.

ShaderProgram* Castor3D::ShaderObject::GetParent ( ) const
inline

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

Renvoie
Le parent

Références m_parent.

Castor::String const& Castor3D::ShaderObject::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

Références m_arraySources.

eSHADER_STATUS Castor3D::ShaderObject::GetStatus ( ) const
inline

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

Renvoie
Le statut

Références m_status.

Castor::String Castor3D::ShaderObject::GetStrType ( ) const
inline

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

Renvoie
Le nom du type

Références m_type.

eSHADER_TYPE Castor3D::ShaderObject::GetType ( ) const
inline

Récupère le type de cet objet.

Renvoie
Le type

Références m_type.

C3D_API bool Castor3D::ShaderObject::HasFile ( ) const

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

Renvoie
true si le shader a un fichier source
virtual bool Castor3D::ShaderObject::HasParameter ( Castor::String const &  p_name)
inlinevirtual

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

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

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

Renvoie
true si le shader a un code source
C3D_API void Castor3D::ShaderObject::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::ShaderObject::SetInputType ( eTOPOLOGY  p_topology)
inline

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

Paramètres
[in]p_topologyLe type des primitives en entrée

Références m_eInputType.

void Castor3D::ShaderObject::SetOutputType ( eTOPOLOGY  p_topology)
inline

Définit le type des primitives en sortie.

Paramètres
[in]p_topologyLe type des primitives

Références m_eOutputType.

void Castor3D::ShaderObject::SetOutputVtxCount ( uint8_t  p_count)
inline

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

Paramètres
[in]p_countLe compte

Références m_uiOutputVtxCount.

virtual void Castor3D::ShaderObject::SetParameter ( Castor::String const &  p_name,
Castor::Matrix4x4r const &  p_value 
)
inlinevirtual

Définit la valeur du paramètre.

Paramètres
[in]p_nameLe nom du paramètre
[in]p_valueLa valeur du paramètre
virtual void Castor3D::ShaderObject::SetParameter ( Castor::String const &  p_name,
Castor::Matrix3x3r const &  p_value 
)
inlinevirtual

Définit la valeur du paramètre.

Paramètres
[in]p_nameLe nom du paramètre
[in]p_valueLa valeur du paramètre

Références DoCheckErrors(), et DoRetrieveCompilerLog().

+ Voici le graphe d'appel pour cette fonction :

C3D_API void Castor3D::ShaderObject::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
C3D_API void Castor3D::ShaderObject::Unbind ( )

Désactive le shader.

Documentation des données membres

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

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

Référencé par GetCurrentFile(), et GetFile().

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

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

Le texte ASCII du shader chargé

Référencé par GetSource().

eTOPOLOGY Castor3D::ShaderObject::m_eInputType
protected

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

Référencé par GetInputType(), et SetInputType().

eTOPOLOGY Castor3D::ShaderObject::m_eOutputType
protected

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

Référencé par GetOutputType(), et SetOutputType().

eSHADER_MODEL Castor3D::ShaderObject::m_eShaderModel
protected

Le modèle de shader actuel.

Référencé par GetCurrentFile().

FrameVariablePtrList Castor3D::ShaderObject::m_listFrameVariables
protected

La liste des variables de frame.

Référencé par GetFrameVariables().

Castor::String Castor3D::ShaderObject::m_loadedSource
protected

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

Référencé par GetLoadedSource().

FrameVariablePtrStrMap Castor3D::ShaderObject::m_mapFrameVariables
protected

La liste des variables de frame.

ShaderProgram* Castor3D::ShaderObject::m_parent
protected

Le programme parent.

Le type de shader

Référencé par GetParent().

Castor::Path Castor3D::ShaderObject::m_pathLoadedFile
protected

Le statut de compilation du shader.

eSHADER_STATUS Castor3D::ShaderObject::m_status
protected

Référencé par GetStatus().

eSHADER_TYPE Castor3D::ShaderObject::m_type
protected

Référencé par GetStrType(), et GetType().

uint8_t Castor3D::ShaderObject::m_uiOutputVtxCount
protected

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

Référencé par GetOutputVtxCount(), et SetOutputVtxCount().


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