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  TextWriter
 Loader de ShaderObject. Plus de détails...
 

Fonctions membres publiques

C3D_API ShaderObject (ShaderProgram *p_parent, ShaderType 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 (ShaderModel 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 (ShaderModel 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 AddUniform (PushUniformSPtr p_variable)
 Crée une variable uniform à donner aux ShaderObjects. Plus de détails...
 
C3D_API PushUniformSPtr FindUniform (Castor::String const &p_name) const
 Trouve une variable. Plus de détails...
 
virtual C3D_API void FlushUniforms ()
 Vide la liste de frame variables. Plus de détails...
 
PushUniformList & GetUniforms ()
 Récupère les variables de frame liées à ce shader. Plus de détails...
 
PushUniformList const & GetUniforms () const
 Récupère les variables de frame liées à ce shader. Plus de détails...
 
Castor::String const & GetSource (ShaderModel 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 (ShaderModel 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...
 
ShaderType GetType () const
 Récupère le type de cet objet. Plus de détails...
 
void SetInputType (Topology p_topology)
 Définit le type des primitives en entrée. Plus de détails...
 
Topology GetInputType () const
 Récupère le type des primitives en entrée. Plus de détails...
 
void SetOutputType (Topology p_topology)
 Définit le type des primitives en sortie. Plus de détails...
 
Topology 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...
 
ShaderStatus 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...
 

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

ShaderType m_type
 
ShaderProgramm_parent { nullptr }
 
ShaderStatus m_status { ShaderStatus::eNotCompiled }
 
Topology m_eInputType { Topology::eTriangles }
 
Topology m_eOutputType { Topology::eTriangles }
 
uint8_t m_uiOutputVtxCount { 3 }
 
ShaderModel m_eShaderModel { ShaderModel::eModel1 }
 
std::array< Castor::Path, size_t(ShaderModel::eCount) > m_arrayFiles
 
std::array< Castor::String, size_t(ShaderModel::eCount) > m_arraySources
 
Castor::String m_loadedSource
 
Castor::Path m_pathLoadedFile
 
PushUniformMap m_mapUniforms
 
PushUniformList m_listUniforms
 

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

◆ ShaderObject()

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

Constructeur.

Paramètres
[in]p_parentprogramme parent
[in]p_typeType de shader

◆ ~ShaderObject()

virtual C3D_API Castor3D::ShaderObject::~ShaderObject ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ AddUniform()

virtual C3D_API void Castor3D::ShaderObject::AddUniform ( PushUniformSPtr  p_variable)
virtual

Crée une variable uniform à donner aux ShaderObjects.

Paramètres
[in]p_variableLa variable à donner

◆ AttachTo()

virtual C3D_API void Castor3D::ShaderObject::AttachTo ( ShaderProgram p_program)
pure virtual

Attache ce shader au programme donné

Paramètres
[in]p_programLe programme

◆ Bind()

C3D_API void Castor3D::ShaderObject::Bind ( )

Active le shader.

◆ Compile()

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

Compile le shader.

Renvoie
true en cas de succès

◆ Create()

virtual C3D_API bool Castor3D::ShaderObject::Create ( )
pure virtual

Crée le programme sur le GPU.

◆ Destroy()

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

Détruit le programme sur le GPU.

◆ Detach()

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

Détache ce shader de son programme.

◆ DoCheckErrors()

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 GetParent().

+ Voici le graphe des appelants de cette fonction :

◆ DoRetrieveCompilerLog()

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

Référencé par GetParent().

+ Voici le graphe des appelants de cette fonction :

◆ FindUniform()

C3D_API PushUniformSPtr Castor3D::ShaderObject::FindUniform ( Castor::String const &  p_name) const

Trouve une variable.

Renvoie
La variable trouvé, nullptr en cas d'échec

◆ FlushUniforms()

virtual C3D_API void Castor3D::ShaderObject::FlushUniforms ( )
virtual

Vide la liste de frame variables.

◆ GetCurrentFile()

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.

◆ GetFile()

Castor::Path const& Castor3D::ShaderObject::GetFile ( ShaderModel  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.

◆ GetInputType()

Topology 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.

◆ GetLoadedSource()

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.

◆ GetOutputType()

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

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

Renvoie
Le type des primitives

Références m_eOutputType.

◆ GetOutputVtxCount()

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.

◆ GetParent()

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

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

Renvoie
Le parent

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

+ Voici le graphe d'appel pour cette fonction :

◆ GetSource()

Castor::String const& Castor3D::ShaderObject::GetSource ( ShaderModel  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.

◆ GetStatus()

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

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

Renvoie
Le statut

Références m_status.

◆ GetStrType()

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.

◆ GetType()

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

Récupère le type de cet objet.

Renvoie
Le type

Références m_type.

◆ GetUniforms() [1/2]

PushUniformList& Castor3D::ShaderObject::GetUniforms ( )
inline

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

Renvoie
La liste

Références m_listUniforms.

◆ GetUniforms() [2/2]

PushUniformList const& Castor3D::ShaderObject::GetUniforms ( ) const
inline

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

Renvoie
La liste

Références m_listUniforms.

◆ HasFile()

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

◆ HasSource()

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

◆ SetFile()

C3D_API void Castor3D::ShaderObject::SetFile ( ShaderModel  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

◆ SetInputType()

void Castor3D::ShaderObject::SetInputType ( Topology  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.

◆ SetOutputType()

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

Définit le type des primitives en sortie.

Paramètres
[in]p_topologyLe type des primitives

Références m_eOutputType.

◆ SetOutputVtxCount()

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.

◆ SetSource()

C3D_API void Castor3D::ShaderObject::SetSource ( ShaderModel  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

◆ Unbind()

C3D_API void Castor3D::ShaderObject::Unbind ( )

Désactive le shader.

Documentation des données membres

◆ m_arrayFiles

std::array< Castor::Path, size_t( ShaderModel::eCount ) > Castor3D::ShaderObject::m_arrayFiles
protected

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

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

◆ m_arraySources

std::array< Castor::String, size_t( ShaderModel::eCount ) > 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().

◆ m_eInputType

Topology Castor3D::ShaderObject::m_eInputType { Topology::eTriangles }
protected

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

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

◆ m_eOutputType

Topology Castor3D::ShaderObject::m_eOutputType { Topology::eTriangles }
protected

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

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

◆ m_eShaderModel

ShaderModel Castor3D::ShaderObject::m_eShaderModel { ShaderModel::eModel1 }
protected

Le modèle de shader actuel.

Référencé par GetCurrentFile().

◆ m_listUniforms

PushUniformList Castor3D::ShaderObject::m_listUniforms
protected

La liste des variables de frame.

Référencé par GetUniforms().

◆ m_loadedSource

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

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

Référencé par GetLoadedSource().

◆ m_mapUniforms

PushUniformMap Castor3D::ShaderObject::m_mapUniforms
protected

La liste des variables de frame.

◆ m_parent

ShaderProgram* Castor3D::ShaderObject::m_parent { nullptr }
protected

Le programme parent. Le statut de compilation du shader.

Référencé par GetParent().

◆ m_pathLoadedFile

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

◆ m_status

ShaderStatus Castor3D::ShaderObject::m_status { ShaderStatus::eNotCompiled }
protected

Référencé par GetStatus().

◆ m_type

ShaderType Castor3D::ShaderObject::m_type
protected

< Le type de shader.

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

◆ m_uiOutputVtxCount

uint8_t Castor3D::ShaderObject::m_uiOutputVtxCount { 3 }
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 :