Castor3D
..
|
Classe de base pour les shaders. Plus de détails...
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... | |
ShaderProgram * | GetParent () 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 | |
ShaderProgram * | m_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... | |
Classe de base pour les shaders.
C3D_API Castor3D::ShaderObject::ShaderObject | ( | ShaderProgram * | p_parent, |
eSHADER_TYPE | p_type | ||
) |
Constructeur.
[in] | p_parent | programme parent |
[in] | p_type | Type de shader |
|
virtual |
Destructeur.
|
virtual |
Crée une variable uniform à donner aux ShaderObjects.
[in] | p_variable | La variable à donner |
|
pure virtual |
Attache ce shader au programme donné
[in] | p_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.
|
pure virtual |
Détruit le programme sur le GPU.
|
pure virtual |
Détache ce shader de son programme.
|
protected |
Vérifie les erreurs de compilation.
true
s'il n'y a pas d'erreurs. Référencé par SetParameter().
|
protectedpure virtual |
C3D_API OneIntFrameVariableSPtr Castor3D::ShaderObject::FindFrameVariable | ( | Castor::String const & | p_name | ) | const |
Trouve une variable.
|
virtual |
Vide la liste de frame variables.
|
inline |
Récupère le fichier du shader pour le modèle courant.
Références m_arrayFiles, et m_eShaderModel.
|
inline |
Récupère le fichier du shader pour le modèle donné
[in] | p_eModel | Le modèle de shader |
Références m_arrayFiles.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Récupère la source du shader pour le modèle donné
[in] | p_eModel | Le modèle de shader |
Références m_arraySources.
|
inline |
|
inline |
|
inline |
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
|
inlinevirtual |
Dit si le shader compilé a le paramètre donné
[in] | p_name | Le nom du paramètre |
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.
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é
[in] | p_eModel | Le modèle de shader |
[in] | p_pathFile | Le nom du fichier |
|
inline |
Définit le type des primitives en entrée.
[in] | p_topology | Le type des primitives en entrée |
Références m_eInputType.
|
inline |
Définit le type des primitives en sortie.
[in] | p_topology | Le type des primitives |
Références m_eOutputType.
|
inline |
Définit le nombre de vertices générés.
[in] | p_count | Le compte |
Références m_uiOutputVtxCount.
|
inlinevirtual |
Définit la valeur du paramètre.
[in] | p_name | Le nom du paramètre |
[in] | p_value | La valeur du paramètre |
|
inlinevirtual |
Définit la valeur du paramètre.
[in] | p_name | Le nom du paramètre |
[in] | p_value | La valeur du paramètre |
Références DoCheckErrors(), et DoRetrieveCompilerLog().
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é
[in] | p_eModel | Le modèle de shader |
[in] | p_strSource | 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 GetCurrentFile(), et GetFile().
|
protected |
Tableau des codes sources, triés par modèle de shader.
Le texte ASCII du shader chargé
Référencé par GetSource().
|
protected |
Le type de primitives en entrée (pour les geometry shaders)
Référencé par GetInputType(), et SetInputType().
|
protected |
Le type de primitives en sortie (pour les geometry shaders)
Référencé par GetOutputType(), et SetOutputType().
|
protected |
Le modèle de shader actuel.
Référencé par GetCurrentFile().
|
protected |
La liste des variables de frame.
Référencé par GetFrameVariables().
|
protected |
Le chemin d'accès au fichier contenant le source du shader.
Référencé par GetLoadedSource().
|
protected |
La liste des variables de frame.
|
protected |
|
protected |
Le statut de compilation du shader.
|
protected |
Référencé par GetStatus().
|
protected |
Référencé par GetStrType(), et GetType().
|
protected |
Le nombre de vertex générés (pour les geometry shaders)
Référencé par GetOutputVtxCount(), et SetOutputVtxCount().