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 &parent, ShaderType 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 &program)=0
 Attache ce shader au programme donné Plus de détails...
 
C3D_API void setFile (castor::Path const &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 (castor::String const &source)
 Définit la source du shader pour le modèle donné Plus de détails...
 
C3D_API void setSource (glsl::Shader const &source)
 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...
 
C3D_API PushUniformSPtr createUniform (UniformType type, castor::String const &name, int nbOcc=1)
 Crée une variable. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< TPushUniform< Type > > createUniform (castor::String const &name, int nbOcc=1)
 Crée une variable. Plus de détails...
 
C3D_API PushUniformSPtr findUniform (UniformType type, castor::String const &name) const
 Trouve une variable. Plus de détails...
 
template<UniformType Type>
std::shared_ptr< TPushUniform< Type > > findUniform (castor::String const &name) const
 Cherche une variable. Plus de détails...
 
C3D_API void flushUniforms ()
 Vide la liste de frame variables. Plus de détails...
 
PushUniformList & getUniforms ()
 
PushUniformList const & getUniforms () const
 
castor::String const & getSource () const
 
castor::Path const & getFile () const
 Récupère le fichier du shader. Plus de détails...
 
castor::String getStrType () const
 
ShaderType getType () const
 
void setInputType (Topology topology)
 Définit le type des primitives en entrée. Plus de détails...
 
Topology getInputType () const
 
void setOutputType (Topology topology)
 Définit le type des primitives en sortie. Plus de détails...
 
Topology getOutputType () const
 
void setOutputVtxCount (uint8_t count)
 Définit le nombre de vertices générés. Plus de détails...
 
uint8_t getOutputVtxCount () const
 
ShaderStatus getStatus () const
 Récupère le statut de compilation de l'objet. Plus de détails...
 
ShaderProgram const & getParent () const
 Récupère le parent de l'objet. Plus de détails...
 

Fonctions membres protégées

C3D_API void doAddUniform (PushUniformSPtr variable)
 Crée une variable uniform à donner aux ShaderObjects. Plus de détails...
 
C3D_API bool doCheckErrors ()
 Vérifie les erreurs de compilation. Plus de détails...
 
virtual castor::String doRetrieveCompilerLog ()=0
 
virtual PushUniformSPtr doCreateUniform (UniformType type, int nbOccurences)=0
 Crée une variable de frame texture. Plus de détails...
 

Attributs protégés

ShaderType m_type
 
ShaderProgramm_parent
 
ShaderStatus m_status { ShaderStatus::eNotCompiled }
 
Topology m_inputType { Topology::eTriangles }
 
Topology m_outputType { Topology::eTriangles }
 
uint8_t m_outputVtxCount { 3 }
 
castor::Path m_file
 
glsl::Shader m_source
 
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 parent,
ShaderType  type 
)

Constructeur.

Paramètres
[in]parentprogramme parent
[in]typeType de shader

◆ ~ShaderObject()

virtual C3D_API castor3d::ShaderObject::~ShaderObject ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ attachTo()

virtual C3D_API void castor3d::ShaderObject::attachTo ( ShaderProgram program)
pure virtual

Attache ce shader au programme donné

Paramètres
[in]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.

◆ createUniform() [1/2]

C3D_API PushUniformSPtr castor3d::ShaderObject::createUniform ( UniformType  type,
castor::String const &  name,
int  nbOcc = 1 
)

Crée une variable.

Paramètres
[in]typeLe type de variable.
[in]nameLe nom de la variable.
[in]nbOccLes dimensions du tableau.
Renvoie
La variable créée, nullptr en cas d'échec.

Référencé par createUniform().

+ Voici le graphe des appelants de cette fonction :

◆ createUniform() [2/2]

template<UniformType Type>
std::shared_ptr< TPushUniform< Type > > castor3d::ShaderObject::createUniform ( castor::String const &  name,
int  nbOcc = 1 
)
inline

Crée une variable.

Paramètres
[in]nameLe nom de la variable.
[in]nbOccLes dimensions du tableau.
Renvoie
La variable créée, nullptr en cas d'échec.

Références C3D_API, createUniform(), et findUniform().

+ Voici le graphe d'appel pour cette fonction :

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

◆ doAddUniform()

C3D_API void castor3d::ShaderObject::doAddUniform ( PushUniformSPtr  variable)
protected

Crée une variable uniform à donner aux ShaderObjects.

Paramètres
[in]variableLa variable à donner

Référencé par getParent().

+ Voici le graphe des appelants de cette fonction :

◆ 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 :

◆ doCreateUniform()

virtual PushUniformSPtr castor3d::ShaderObject::doCreateUniform ( UniformType  type,
int  nbOccurences 
)
protectedpure virtual

Crée une variable de frame texture.

Paramètres
[in]typeLe type de variable.
[in]nbOccurencesLes dimensions du tableau.
Renvoie
La variable créée, nullptr en cas d'échec.

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() [1/2]

C3D_API PushUniformSPtr castor3d::ShaderObject::findUniform ( UniformType  type,
castor::String const &  name 
) const

Trouve une variable.

Paramètres
[in]typeLe type de variable.
[in]nameLe nom de la variable.
Renvoie
La variable trouvée, nullptr en cas d'échec.

Référencé par createUniform(), et findUniform().

+ Voici le graphe des appelants de cette fonction :

◆ findUniform() [2/2]

template<UniformType Type>
std::shared_ptr< TPushUniform< Type > > castor3d::ShaderObject::findUniform ( castor::String const &  name) const
inline

Cherche une variable.

Paramètres
[in]nameLe nom de la variable.
Renvoie
La variable trouvé, nullptr en cas d'échec.

Références C3D_API, findUniform(), et flushUniforms().

+ Voici le graphe d'appel pour cette fonction :

◆ flushUniforms()

C3D_API void castor3d::ShaderObject::flushUniforms ( )

Vide la liste de frame variables.

Référencé par findUniform().

+ Voici le graphe des appelants de cette fonction :

◆ getFile()

castor::Path const& castor3d::ShaderObject::getFile ( ) const
inline

Récupère le fichier du shader.

Renvoie
Le nom du fichier

Références m_file.

◆ getInputType()

Topology castor3d::ShaderObject::getInputType ( ) const
inline
Renvoie
Le type des primitives en entrée.

Références m_inputType.

◆ getOutputType()

Topology castor3d::ShaderObject::getOutputType ( ) const
inline
Renvoie
Le type des primitives en sortie.

Références m_outputType.

◆ getOutputVtxCount()

uint8_t castor3d::ShaderObject::getOutputVtxCount ( ) const
inline
Renvoie
Le nombre de sommets générés.

Références m_outputVtxCount.

◆ getParent()

ShaderProgram const& castor3d::ShaderObject::getParent ( ) const
inline

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

Renvoie
Le parent

Références C3D_API, doAddUniform(), doCheckErrors(), doCreateUniform(), doRetrieveCompilerLog(), et m_parent.

+ Voici le graphe d'appel pour cette fonction :

◆ getSource()

castor::String const& castor3d::ShaderObject::getSource ( ) const
inline
Renvoie
Le code source du shader compilé.

Références m_source.

◆ 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
Renvoie
Le nom du type de shader.

Références m_type.

◆ getType()

ShaderType castor3d::ShaderObject::getType ( ) const
inline
Renvoie
Le type de shader.

Références m_type.

◆ getUniforms() [1/2]

PushUniformList& castor3d::ShaderObject::getUniforms ( )
inline
Renvoie
Les variables de frame liées à ce shader.

Références m_listUniforms.

◆ getUniforms() [2/2]

PushUniformList const& castor3d::ShaderObject::getUniforms ( ) const
inline
Renvoie
Les variables de frame liées à ce shader.

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 ( castor::Path const &  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]pathFileLe nom du fichier

◆ setInputType()

void castor3d::ShaderObject::setInputType ( Topology  topology)
inline

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

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

Références m_inputType.

◆ setOutputType()

void castor3d::ShaderObject::setOutputType ( Topology  topology)
inline

Définit le type des primitives en sortie.

Paramètres
[in]topologyLe type des primitives

Références m_outputType.

◆ setOutputVtxCount()

void castor3d::ShaderObject::setOutputVtxCount ( uint8_t  count)
inline

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

Paramètres
[in]countLe compte

Références m_outputVtxCount.

◆ setSource() [1/2]

C3D_API void castor3d::ShaderObject::setSource ( castor::String const &  source)

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]sourceLe code de la source

◆ setSource() [2/2]

C3D_API void castor3d::ShaderObject::setSource ( glsl::Shader const &  source)

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]sourceLe code de la source

◆ unbind()

C3D_API void castor3d::ShaderObject::unbind ( )

Désactive le shader.

Documentation des données membres

◆ m_file

castor::Path castor3d::ShaderObject::m_file
protected

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

Référencé par getFile().

◆ m_inputType

Topology castor3d::ShaderObject::m_inputType { Topology::eTriangles }
protected

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

Référencé par getInputType(), et setInputType().

◆ m_listUniforms

PushUniformList castor3d::ShaderObject::m_listUniforms
protected

La liste des variables de frame.

Référencé par getUniforms().

◆ m_mapUniforms

PushUniformMap castor3d::ShaderObject::m_mapUniforms
protected

La liste des variables de frame.

◆ m_outputType

Topology castor3d::ShaderObject::m_outputType { Topology::eTriangles }
protected

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

Référencé par getOutputType(), et setOutputType().

◆ m_outputVtxCount

uint8_t castor3d::ShaderObject::m_outputVtxCount { 3 }
protected

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

Référencé par getOutputVtxCount(), et setOutputVtxCount().

◆ m_parent

ShaderProgram& castor3d::ShaderObject::m_parent
protected

Le programme parent. Le statut de compilation du shader.

Référencé par getParent().

◆ m_source

glsl::Shader castor3d::ShaderObject::m_source
protected

Les informations du shader.

Référencé par getSource().

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


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