Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

Shader Class Reference

Classe d'encapsulation de shaders. More...

#include <Shader.h>

Inherited by AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader.

List of all members.

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 TexturegetVariableTexture (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.


Detailed Description

Classe d'encapsulation de shaders.

Cette classe a deux buts :

L'encapsulation d'un shader se fait en derivant la classe Shader. Il est alors necessaire de :


Constructor & Destructor Documentation

Shader::Shader  )  [inline]
 

Constructeur de la classe Shader.

Le constructeur doit charger le shader en appelant loadShader(), puis loader les textures en appelant loadTextures().


Member Function Documentation

static CGprofile Shader::getFragmentProfile  )  [inline, static]
 

Fonction d'acces pour le profil Cg de 'fragment program'.

CGprogram Shader::getFragmentProgramID  )  [inline]
 

Fonction d'acces pour l'identifiant du Fragment Program du shader.

virtual unsigned int Shader::getNumVariableParameters  )  [pure virtual]
 

Fonction indiquant le nombre de parametres variables dans le shader.

Returns:
Nombre de parametres variables.
Non utilise.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader.

virtual unsigned int Shader::getNumVariableTextures  )  [pure virtual]
 

Fonction indiquant le nombre de textures variables.

Returns:
Nombre de textures variables.
Non utilise.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader.

virtual void* Shader::getVariableParameter unsigned int  index  )  [pure virtual]
 

Fonction permettant de recuperer un pointeur vers un parametre variable.

Parameters:
Index du parametre.
Returns:
Parametre demande.
Non utilise.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader.

virtual Texture* Shader::getVariableTexture int  index  )  [pure virtual]
 

Fonction permettant de recuperer un pointeur vers une texture variable.

Parameters:
Index de la texture.
Returns:
Texture demandee.
Non utilise.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader.

static CGprofile Shader::getVertexProfile  )  [inline, static]
 

Fonction d'acces pour le profil Cg de 'vertex program'.

CGprogram Shader::getVertexProgramID  )  [inline]
 

Fonction d'acces pour l'identifiant du Vertex Program du shader.

void Shader::initShaders  )  [static]
 

Fonction d'initialisation de Cg.

Cette fonction cree le contexte et les profils Cg.

virtual void Shader::loadShader  )  [private, pure virtual]
 

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.

virtual void Shader::loadTexToOgl  )  [pure virtual]
 

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.

virtual void Shader::loadTextures  )  [private, pure virtual]
 

Fonction de chargement des textures.

Cette fonction doit charger toutes les textures necessaires au shader.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, TestShader, and WaterShader.

virtual void Shader::registerParameters  )  [private, pure virtual]
 

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.

virtual void Shader::registerShader  )  [pure virtual]
 

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.

virtual void Shader::setVariableTexture int  index,
Texture tex
[pure virtual]
 

Fonction permettant de definir une texture variable.

Parameters:
index Index de la texture variable.
tex Texture a definir.
Non utilise.

Implemented in AtlasShader, GradientShader, LightMapShader, MultiTexturesShader, and WaterShader.

virtual void Shader::unloadTexFromOgl  )  [pure virtual]
 

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.

virtual void Shader::unregisterShader  )  [pure virtual]
 

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.


Member Data Documentation

CGcontext Shader::cgContext [static, protected]
 

Contexte Cg pour le systeme.

CGprofile Shader::cgFragmentProfile [static, protected]
 

Profile cg pour les fragment programs.

CGprogram Shader::cgFragmentProgram [protected]
 

Identifiant du fragment program.

CGprofile Shader::cgVertexProfile [static, protected]
 

Profile cg pour les vertex programs.

CGprogram Shader::cgVertexProgram [protected]
 

Identifiant du vertex program.

Texture** Shader::textures [protected]
 

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.


Generated on Thu Mar 24 12:53:49 2005 for Septant by  doxygen 1.4.1