#include <Shader.h>
Inherited by AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader.
Public Member Functions | |
Shader () | |
Constructeur de la classe Shader. | |
virtual void | registerShader ()=0 |
Fonction d'enregistrement du Shader aupres du ShaderCenter. | |
virtual void | unregisterShader ()=0 |
Fonction de desenregistrement du Shader aupres du ShaderCenter. | |
CGprogram | getVertexProgramID () |
Fonction d'acces pour l'identifiant du Vertex Program du shader. | |
CGprogram | getFragmentProgramID () |
Fonction d'acces pour l'identifiant du Fragment Program du shader. | |
virtual unsigned int | getNumVariableParameters ()=0 |
Fonction indiquant le nombre de parametres variables dans le shader. | |
virtual void * | getVariableParameter (unsigned int index)=0 |
Fonction permettant de recuperer un pointeur vers un parametre variable. | |
virtual unsigned int | getNumVariableTextures ()=0 |
Fonction indiquant le nombre de textures variables. | |
virtual void | setVariableTexture (int index, Texture *tex)=0 |
Fonction permettant de definir une texture variable. | |
virtual Texture * | getVariableTexture (int index)=0 |
Fonction permettant de recuperer un pointeur vers une texture variable. | |
virtual void | loadTexToOgl ()=0 |
Fonction permettant de charger toutes les textures sur la carte graphique. | |
virtual void | unloadTexFromOgl ()=0 |
Fonction permettant de decharger toutes les textures sur la carte graphique. | |
Static Public Member Functions | |
static void | initShaders () |
Fonction d'initialisation de Cg. | |
static CGprofile | getVertexProfile () |
Fonction d'acces pour le profil Cg de 'vertex program'. | |
static CGprofile | getFragmentProfile () |
Fonction d'acces pour le profil Cg de 'fragment program'. | |
Protected Attributes | |
CGprogram | cgVertexProgram |
Identifiant du vertex program. | |
CGprogram | cgFragmentProgram |
Identifiant du fragment program. | |
Texture ** | textures |
Liste des textures associees au shader. | |
Static Protected Attributes | |
static CGcontext | cgContext |
Contexte Cg pour le systeme. | |
static CGprofile | cgVertexProfile |
Profile cg pour les vertex programs. | |
static CGprofile | cgFragmentProfile |
Profile cg pour les fragment programs. | |
Private Member Functions | |
virtual void | loadTextures ()=0 |
Fonction de chargement des textures. | |
virtual void | registerParameters ()=0 |
Fonction d'enregistrement des parametres. | |
virtual void | loadShader ()=0 |
Fonction de chargement du shader. |
Cette classe a deux buts :
L'encapsulation d'un shader se fait en derivant la classe Shader. Il est alors necessaire de :
|
Constructeur de la classe Shader. Le constructeur doit charger le shader en appelant loadShader(), puis loader les textures en appelant loadTextures(). |
|
Fonction d'acces pour le profil Cg de 'fragment program'.
|
|
Fonction d'acces pour l'identifiant du Fragment Program du shader.
|
|
Fonction indiquant le nombre de parametres variables dans le shader.
Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction indiquant le nombre de textures variables.
Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction permettant de recuperer un pointeur vers un parametre variable.
Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction permettant de recuperer un pointeur vers une texture variable.
Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction d'acces pour le profil Cg de 'vertex program'.
|
|
Fonction d'acces pour l'identifiant du Vertex Program du shader.
|
|
Fonction d'initialisation de Cg. Cette fonction cree le contexte et les profils Cg. |
|
Fonction de chargement du shader. Cette fonction doit charger le vertex program et le fragment program du shader et les loader dans la carte graphique. Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader. |
|
Fonction permettant de charger toutes les textures sur la carte graphique. Cette fonction permet de charger toutes les textures definies dans le shader dans la carte graphique, si elles ne sont pas deja chargees. Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction de chargement des textures. Cette fonction doit charger toutes les textures necessaires au shader. Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader. |
|
Fonction d'enregistrement des parametres. Cette fonction doit enregistrer tous les parametres necessaires au shader aupres du ShaderCenter. Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader. |
|
Fonction d'enregistrement du Shader aupres du ShaderCenter. Cette fonction, definie dans les sous-classes de Shader, doit enregistrer le shader aupres du ShaderCenter, ainsi que les textures associees et les parametres (en appelant registerParameters()). Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader. |
|
Fonction permettant de definir une texture variable.
Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction permettant de decharger toutes les textures sur la carte graphique. Cette fonction permet de decharger toutes les textures definies dans le shader dans la carte graphique, si elles ne sont pas deja dechargees. Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader. |
|
Fonction de desenregistrement du Shader aupres du ShaderCenter. Cette fonction doit desenregistrer le shader, ses textures et parametres associes aupres du ShaderCenter. (Non implementee) Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader. |
|
Contexte Cg pour le systeme.
|
|
Profile cg pour les fragment programs.
|
|
Identifiant du fragment program.
|
|
Profile cg pour les vertex programs.
|
|
Identifiant du vertex program.
|
|
Liste des textures associees au shader. Liste devant contenir toutes les textures associees au shader. Cette liste doit etre alloue dans la classe fille a la taille souhaitee, puis remplie avec les textures chargees. |