Castor3D
..
|
Classe de base pour les shaders. Plus de détails...
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 |
ShaderProgram & | m_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 |
Classe de base pour les shaders.
C3D_API castor3d::ShaderObject::ShaderObject | ( | ShaderProgram & | parent, |
ShaderType | type | ||
) |
Constructeur.
[in] | parent | programme parent |
[in] | type | Type de shader |
|
virtual |
Destructeur.
|
pure virtual |
Attache ce shader au programme donné
[in] | program | Le programme |
C3D_API void castor3d::ShaderObject::bind | ( | ) |
Active le shader.
|
virtual |
Compile le shader.
true
en cas de succès
|
pure virtual |
Crée le programme sur le GPU.
C3D_API PushUniformSPtr castor3d::ShaderObject::createUniform | ( | UniformType | type, |
castor::String const & | name, | ||
int | nbOcc = 1 |
||
) |
Crée une variable.
[in] | type | Le type de variable. |
[in] | name | Le nom de la variable. |
[in] | nbOcc | Les dimensions du tableau. |
Référencé par createUniform().
|
inline |
Crée une variable.
[in] | name | Le nom de la variable. |
[in] | nbOcc | Les dimensions du tableau. |
Références C3D_API, createUniform(), et findUniform().
|
pure virtual |
Détruit le programme sur le GPU.
|
pure virtual |
Détache ce shader de son programme.
|
protected |
Crée une variable uniform à donner aux ShaderObjects.
[in] | variable | La variable à donner |
Référencé par getParent().
|
protected |
Vérifie les erreurs de compilation.
true
s'il n'y a pas d'erreurs. Référencé par getParent().
|
protectedpure virtual |
Crée une variable de frame texture.
[in] | type | Le type de variable. |
[in] | nbOccurences | Les dimensions du tableau. |
Référencé par getParent().
|
protectedpure virtual |
C3D_API PushUniformSPtr castor3d::ShaderObject::findUniform | ( | UniformType | type, |
castor::String const & | name | ||
) | const |
Trouve une variable.
[in] | type | Le type de variable. |
[in] | name | Le nom de la variable. |
Référencé par createUniform(), et findUniform().
|
inline |
Cherche une variable.
[in] | name | Le nom de la variable. |
Références C3D_API, findUniform(), et flushUniforms().
C3D_API void castor3d::ShaderObject::flushUniforms | ( | ) |
Vide la liste de frame variables.
Référencé par findUniform().
|
inline |
|
inline |
Références m_inputType.
|
inline |
Références m_outputType.
|
inline |
Références m_outputVtxCount.
|
inline |
Récupère le parent de l'objet.
Références C3D_API, doAddUniform(), doCheckErrors(), doCreateUniform(), doRetrieveCompilerLog(), et m_parent.
|
inline |
Références m_source.
|
inline |
|
inline |
Références m_type.
|
inline |
Références m_type.
|
inline |
Références m_listUniforms.
|
inline |
Références m_listUniforms.
C3D_API bool castor3d::ShaderObject::hasFile | ( | ) | const |
Dit si le shader a un fichier source, quel que soit son modèle.
true
si le shader a un fichier source C3D_API bool castor3d::ShaderObject::hasSource | ( | ) | const |
Dit si le shader a un code source, quel que soit son modèle.
true
si le shader a un code source C3D_API void castor3d::ShaderObject::setFile | ( | castor::Path const & | pathFile | ) |
Définit le fichier du shader pour le modèle donné
[in] | pathFile | Le nom du fichier |
|
inline |
Définit le type des primitives en entrée.
[in] | topology | Le type des primitives en entrée |
Références m_inputType.
|
inline |
Définit le type des primitives en sortie.
[in] | topology | Le type des primitives |
Références m_outputType.
|
inline |
C3D_API void castor3d::ShaderObject::setSource | ( | castor::String const & | source | ) |
Définit la source du shader pour le modèle donné
[in] | source | Le code de la source |
C3D_API void castor3d::ShaderObject::setSource | ( | glsl::Shader const & | source | ) |
Définit la source du shader pour le modèle donné
[in] | source | Le code de la source |
C3D_API void castor3d::ShaderObject::unbind | ( | ) |
Désactive le shader.
|
protected |
Tableau des chemins de fichiers, triés par modèle de shader.
Référencé par getFile().
|
protected |
Le type de primitives en entrée (pour les geometry shaders).
Référencé par getInputType(), et setInputType().
|
protected |
La liste des variables de frame.
Référencé par getUniforms().
|
protected |
La liste des variables de frame.
|
protected |
Le type de primitives en sortie (pour les geometry shaders).
Référencé par getOutputType(), et setOutputType().
|
protected |
Le nombre de vertex générés (pour les geometry shaders).
Référencé par getOutputVtxCount(), et setOutputVtxCount().
|
protected |
Le programme parent. Le statut de compilation du shader.
Référencé par getParent().
|
protected |
Les informations du shader.
Référencé par getSource().
|
protected |
Référencé par getStatus().
|
protected |
< Le type de shader.
Référencé par getStrType(), et getType().