libmoldeo (Moldeo 1.0 Core)  1.0
libmoldeo is the group of objects and functions that executes the basic operations of Moldeo 1.0 Platform.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
moShaderManager Class Reference

Clase que implementa un administrador de shaders. More...

#include <moShaderManager.h>

Inheritance diagram for moShaderManager:
moResource moMoldeoObject moAbstract moScript

Public Member Functions

 moShaderManager ()
 
virtual ~moShaderManager ()
 
virtual MOboolean Init ()
 
virtual MOboolean Finish ()
 
void Delete ()
 
MOint GetShaderIndex (moText p_name, MOboolean p_create_shader)
 
MOint AddShader (MOuint p_type, moText p_name)
 
MOint AddShader (moText p_filename)
 
MOint AddShader (MOuint p_type, moText p_name, moText p_vert_fn, moText p_frag_fn, moTexturedGrid p_tex_grid)
 
MOboolean DeleteShader (MOint p_idx)
 
MOuint GetShaderCount ()
 
moShaderGetShader (MOuint p_idx)
 
moTextureFilterIndexGetTextureFilterIndex ()
 
moShaderGLSLGetRenderShader ()
 
MOuint GetRSHPositionIndex ()
 
MOuint GetRSHColorsIndex ()
 
MOuint GetRSHColorIndex ()
 
MOuint GetRSHOpacityIndex ()
 
MOuint GetRSHTextureIndex ()
 
MOuint GetRSHNormalIndex ()
 
MOuint GetRSHProjectionMatrixIndex ()
 
MOuint GetRSHTexCoordIndex ()
 
MOuint GetRSHTexCoordEdgeIndex ()
 
MOuint GetRSHWireframeWidthIndex ()
 
MOuint GetRSHTexWSegmentsIndex ()
 
MOuint GetRSHTexHSegmentsIndex ()
 
MOuint GetRSHLightIndex ()
 
- Public Member Functions inherited from moResource
 moResource ()
 
virtual ~moResource ()
 
moResourceType GetResourceType ()
 
- Public Member Functions inherited from moMoldeoObject
 moMoldeoObject ()
 
 moMoldeoObject (moMoldeoObjectType p_type)
 
virtual ~moMoldeoObject ()
 
virtual MOboolean Init (moResourceManager *p_pResources)
 
virtual MOboolean CreateConnectors ()
 
virtual MOboolean UpdateConnectors ()
 
virtual MOboolean RefreshValue (moParam &param, int value_index)
 
virtual MOboolean ResolveValue (moParam &param, int value_index, bool p_refresh=false)
 
virtual void Update (moEventList *p_EventList)
 
void SetResourceManager (moResourceManager *p_pResourceManager)
 
moResourceManagerGetResourceManager ()
 
MOint GetId () const
 
void SetId (MOint p_id)
 
moMoldeoObjectType GetType () const
 
void SetType (moMoldeoObjectType p_type)
 
void SetName (const moText &p_name)
 
void SetLabelName (const moText &p_labelname)
 
void SetKeyName (const moText &p_keyname)
 
const moTextGetKeyName () const
 
const moTextGetName () const
 
const moTextGetLabelName () const
 
moConfigGetConfig ()
 
void SyncConnections ()
 
virtual int Save (const moText &p_save_filename=moText(""))
 
void SetConfigName (const moText &p_configname)
 
const moTextGetConfigName () const
 
const moTextGetDescription () const
 Devuelve al descripción del objeto. More...
 
void SetDescription (const moText &p_Description)
 Fija la descripción de este objeto. More...
 
const moMobDefinitionGetMobDefinition () const
 
void SetMobDefinition (const moMobDefinition &p_MobDef)
 
virtual moConfigDefinitionGetDefinition (moConfigDefinition *p_configdefinition=NULL)
 
moOutlets * GetOutlets ()
 
moInlets * GetInlets ()
 
MOint GetInletIndex (moText p_connector_name) const
 
MOint GetOutletIndex (moText p_connector_name) const
 
virtual void RegisterFunctions ()
 beware ! call only once or die!!! More...
 
virtual int ScriptCalling (moLuaVirtualMachine &vm, int iFunctionNumber)
 
virtual void HandleReturns (moLuaVirtualMachine &vm, const char *strFunc)
 
virtual const moMobStateGetState () const
 
virtual bool SetState (const moMobState &p_MobState)
 
virtual void Activate ()
 
virtual void Deactivate ()
 
virtual bool Activated () const
 
virtual void Select ()
 
virtual void Unselect ()
 
virtual bool Selected () const
 
virtual void SetConsoleParamIndex (MOint p_paramindex)
 
virtual void SetConsoleValueIndex (MOint p_valueindex)
 
virtual const moTextToJSON ()
 
- Public Member Functions inherited from moAbstract
 moAbstract ()
 
virtual ~moAbstract ()
 
MOboolean Initialized ()
 Pregunta si está inicializado. More...
 
- Public Member Functions inherited from moScript
 moScript ()
 
virtual ~moScript (void)
 
void InitScript ()
 
void FinishScript ()
 
bool IsInitialized ()
 
bool CompileFile (const char *strFilename)
 
bool CompileBuffer (unsigned char *pbBuffer, size_t szLen)
 
int RegisterFunction (const char *strFuncName, moScript::Function &fun)
 
int RegisterFunction (const char *strFuncName)
 
int RegisterBaseFunction (const char *strFuncName)
 
bool SelectScriptFunction (const char *strFuncName)
 
void AddFunctionParam (int iInt)
 
void AddFunctionParam (float fFloat)
 
void AddFunctionParam (char *string)
 
bool RunSelectedFunction (int nReturns=0)
 
bool ScriptHasFunction (const char *strScriptName)
 
int methods (void)
 
virtual int ResetScriptCalling ()
 
virtual int NextScriptCalling ()
 
moLuaVirtualMachinemvm (void)
 

Additional Inherited Members

- Public Types inherited from moScript
typedef int(* Function )(moLuaVirtualMachine &vm)
 
- Public Attributes inherited from moAbstract
MOboolean m_bInitialized
 Valor de inicialización More...
 
- Public Attributes inherited from moScript
Function Functions [255]
 
- Static Public Attributes inherited from moAbstract
static moDebugMODebug2 = new moDebug()
 Clase de impresión de errores para depuración More...
 
static moTextHeapMODebug = new moTextHeap()
 Lista de textos. More...
 
- Protected Member Functions inherited from moResource
void SetResourceType (moResourceType p_restype)
 
- Protected Member Functions inherited from moMoldeoObject
virtual void LoadDefinition ()
 
virtual void ScriptExeInit ()
 Corre la funcion de script Run o Compila el nuevo script. More...
 
virtual void ScriptExeRun ()
 
virtual void ScriptExeUpdate ()
 
virtual void ScriptExeFinish ()
 
void SetScript (const moText &p_script)
 
int luaPushDebugString (moLuaVirtualMachine &vm)
 Función de impresión de cadena de carácteres cómoda para la depuración More...
 
int luaGetResourceManager (moLuaVirtualMachine &vm)
 Devuelve el objeto de moResourceManager para el manejo de recursos: texturas, videos, archivos, etc.. More...
 
int luaSetPreconf (moLuaVirtualMachine &vm)
 functions to access moConfig data More...
 
int luaGetPreconf (moLuaVirtualMachine &vm)
 
int luaGetParamIndex (moLuaVirtualMachine &vm)
 
int luaGetCurrentValue (moLuaVirtualMachine &vm)
 
int luaSetCurrentValue (moLuaVirtualMachine &vm)
 
int luaGetValuesCount (moLuaVirtualMachine &vm)
 
int luaGetInletIndex (moLuaVirtualMachine &vm)
 
int luaGetInletData (moLuaVirtualMachine &vm)
 
int luaSetInletData (moLuaVirtualMachine &vm)
 
int luaGetTrackerSystemData (moLuaVirtualMachine &vm)
 
int luaGetTrackerFeaturesCount (moLuaVirtualMachine &vm)
 
int luaGetTrackerValidFeatures (moLuaVirtualMachine &vm)
 
int luaGetTrackerFeature (moLuaVirtualMachine &vm)
 
int luaGetTrackerVariance (moLuaVirtualMachine &vm)
 
int luaGetTrackerBarycenter (moLuaVirtualMachine &vm)
 
int luaGetTrackerAcceleration (moLuaVirtualMachine &vm)
 
int luaGetTrackerVelocity (moLuaVirtualMachine &vm)
 
int luaGetTrackerZone (moLuaVirtualMachine &vm)
 
int luaGetTrackerHistory (moLuaVirtualMachine &vm)
 
int luaStartTrackerHistory (moLuaVirtualMachine &vm)
 devuelve la cantidad de records registrados?! More...
 
int luaPauseTrackerHistory (moLuaVirtualMachine &vm)
 arranca la grabacion More...
 
int luaContinueTrackerHistory (moLuaVirtualMachine &vm)
 
int luaStopTrackerHistory (moLuaVirtualMachine &vm)
 
int luaGetHistoryRecord (moLuaVirtualMachine &vm)
 Devuelve...el baricentro. More...
 
int luaGetHistoryBarycenter (moLuaVirtualMachine &vm)
 va de parametro el id del tracker, el id de la instancia More...
 
int luaGetHistoryVariance (moLuaVirtualMachine &vm)
 Devuelve las varianzas. More...
 
int luaGetHistoryBounding (moLuaVirtualMachine &vm)
 Devuelve los rectangulos. More...
 
int luaGetHistoryAverage (moLuaVirtualMachine &vm)
 Devuelve los promedios. More...
 
int luaGetHistoryMinMax (moLuaVirtualMachine &vm)
 Devuelve el rectangulo max, min. More...
 
- Protected Attributes inherited from moMoldeoObject
moText m_FullJSON
 
moText m_Script
 
moMobDefinition m_MobDefinition
 
moMobState m_MobState
 Moldeo Object State. More...
 
moConfig m_Config
 Configuración de parámetros del objeto. More...
 
moResourceManagerm_pResourceManager
 Puntero al administrador de recursos. More...
 
moOutlets m_Outlets
 Conectores de salida, Arreglo de moOutlet's. More...
 
moInlets m_Inlets
 Conectores de entrada, Arreglo de moInlet's. More...
 
moInletInletScreenWidth
 
moInletInletScreenHeight
 
moInletInletTimeabs
 
moInletInletPreconfig
 
MOboolean m_bConnectorsLoaded
 
int __iscript
 
- Protected Attributes inherited from moScript
bool m_initialized
 
int m_nMethods
 
int m_iThisRef
 
int m_nArgs
 
const char * m_strFunctionName
 
int m_iMethodBase
 
int m_iMethodBaseIterator
 actual class index method base More...
 
int m_iMethodBaseAncestors
 actual class iterator index method base More...
 
int m_MethodBases [256]
 increment on each call to RegisterFunctions More...
 
- Static Protected Attributes inherited from moScript
static moLuaVirtualMachine m_vm
 
static moLuaDebugger m_dbg
 

Detailed Description

Clase que implementa un administrador de shaders.

Clase que implementa un administrador de shaders.

Definition at line 55 of file moShaderManager.h.

Constructor & Destructor Documentation

moShaderManager::moShaderManager ( )

El constructor por defecto de la clase.

Definition at line 251 of file moShaderManager.cpp.

virtual moShaderManager::~moShaderManager ( )
inlinevirtual

El destructor por defecto de la clase.

Definition at line 66 of file moShaderManager.h.

Member Function Documentation

MOint moShaderManager::AddShader ( MOuint  p_type,
moText  p_name 
)

Agrega un shader de tipo p_type (MO_SHADER_GLSL o MO_SHADER_CG) en blanco, es decir, sin vértices de fragmentos o vértices asociados al mismo.

Parameters
p_typeespecifica si el shader es CG o GLSL.
p_namenombre del shader a crear.
Returns
índice del nuevo shader.

Definition at line 294 of file moShaderManager.cpp.

MOint moShaderManager::AddShader ( moText  p_filename)

Agrega un shader especificado en el archivo de configuración p_filename. Este archivo contiene la siguiente información: el tipo de shader (CG o GLSL), los archivos contieniendo el código de los shaders de vértices y fragmentos, y la configuración de la grilla 2D utilizada para implementar deformaciones de texturas.

Returns
índice del nuevo shader.

Definition at line 326 of file moShaderManager.cpp.

MOint moShaderManager::AddShader ( MOuint  p_type,
moText  p_name,
moText  p_vert_fn,
moText  p_frag_fn,
moTexturedGrid  p_tex_grid 
)

Agrega un shader de tipo p_type (MO_SHADER_GLSL o MO_SHADER_CG), carga en el mismo los shaders de vértices y fragmentos cuyo código está contenido en los archivos especificados, y asocia la grilla pasada como parámetro.

Parameters
p_typeespecifica si el shader es CG o GLSL.
p_namenombre del shader a crear.
p_vert_fnarchivo con el código del shader de vértices.
p_vert_fnarchivo con el código del shader de fragmentos.
p_tex_gridobjeto de grilla 2D para deformación de texturas.
Returns
índice del nuevo shader.

Definition at line 419 of file moShaderManager.cpp.

void moShaderManager::Delete ( )
inline

Elimina todos los shaders cargados hasta el momento.

Definition at line 83 of file moShaderManager.h.

MOboolean moShaderManager::DeleteShader ( MOint  p_idx)

Elimina el shader con índice p_idx.

Parameters
p_idxíndice del shader a eliminar.
Returns
true si la operación fue exitosa, false en caso contrario.

Definition at line 433 of file moShaderManager.cpp.

MOboolean moShaderManager::Finish ( )
virtual

Método de finalización.

Returns
true si la operación fue exitosa, false en caso contrario.

Reimplemented from moResource.

Definition at line 267 of file moShaderManager.cpp.

moShaderGLSL& moShaderManager::GetRenderShader ( )
inline

Definition at line 145 of file moShaderManager.h.

MOuint moShaderManager::GetRSHColorIndex ( )
inline

Definition at line 157 of file moShaderManager.h.

MOuint moShaderManager::GetRSHColorsIndex ( )
inline

Definition at line 153 of file moShaderManager.h.

MOuint moShaderManager::GetRSHLightIndex ( )
inline

Definition at line 195 of file moShaderManager.h.

MOuint moShaderManager::GetRSHNormalIndex ( )
inline

Definition at line 169 of file moShaderManager.h.

MOuint moShaderManager::GetRSHOpacityIndex ( )
inline

Definition at line 161 of file moShaderManager.h.

MOuint moShaderManager::GetRSHPositionIndex ( )
inline

Definition at line 149 of file moShaderManager.h.

MOuint moShaderManager::GetRSHProjectionMatrixIndex ( )
inline

Definition at line 173 of file moShaderManager.h.

MOuint moShaderManager::GetRSHTexCoordEdgeIndex ( )
inline

Definition at line 181 of file moShaderManager.h.

MOuint moShaderManager::GetRSHTexCoordIndex ( )
inline

Definition at line 177 of file moShaderManager.h.

MOuint moShaderManager::GetRSHTexHSegmentsIndex ( )
inline

Definition at line 192 of file moShaderManager.h.

MOuint moShaderManager::GetRSHTextureIndex ( )
inline

Definition at line 165 of file moShaderManager.h.

MOuint moShaderManager::GetRSHTexWSegmentsIndex ( )
inline

Definition at line 189 of file moShaderManager.h.

MOuint moShaderManager::GetRSHWireframeWidthIndex ( )
inline

Definition at line 185 of file moShaderManager.h.

moShader* moShaderManager::GetShader ( MOuint  p_idx)
inline

Devuelve un puntero al shader con índice p_idx.

Parameters
p_idxíndice del shader .
Returns
puntero al shader solicitado.

Definition at line 139 of file moShaderManager.h.

MOuint moShaderManager::GetShaderCount ( )
inline

Devuelve el número de shaders.

Returns
número de shaders.

Definition at line 133 of file moShaderManager.h.

MOint moShaderManager::GetShaderIndex ( moText  p_name,
MOboolean  p_create_shader 
)

Devuelve el índice del shader con nombre p_name. Si el shader no existe y p_create_shader es true, entonces intenta crear un nuevo shader interpretando a p_name como el nombre del archivo de configuración del mismo.

Parameters
p_namenombre del shader a buscar.
p_create_shadersi es true intenta crear el shader si el mismo no es encontrado.
Returns
índice del shader.

Definition at line 282 of file moShaderManager.cpp.

moTextureFilterIndex* moShaderManager::GetTextureFilterIndex ( )
inline

Definition at line 141 of file moShaderManager.h.

MOboolean moShaderManager::Init ( )
virtual

Método de inicialización.

Returns
true si la operación fue exitosa, false en caso contrario.

#version 150

uniform mat4 model; uniform vec3 cameraPosition;

material settings uniform sampler2D materialTex; uniform float materialShininess; uniform vec3 materialSpecularColor;

uniform struct Light { vec3 position; vec3 intensities; //a.k.a the color of the light float attenuation; float ambientCoefficient; } light;

in vec2 fragTexCoord; in vec3 fragNormal; in vec3 fragVert;

out vec4 finalColor;

void main() { vec3 normal = normalize(transpose(inverse(mat3(model))) * fragNormal); vec3 surfacePos = vec3(model * vec4(fragVert, 1)); vec4 surfaceColor = texture(materialTex, fragTexCoord); vec3 surfaceToLight = normalize(light.position - surfacePos); vec3 surfaceToCamera = normalize(cameraPosition - surfacePos);

ambient vec3 ambient = light.ambientCoefficient * surfaceColor.rgb * light.intensities;

diffuse float diffuseCoefficient = max(0.0, dot(normal, surfaceToLight)); vec3 diffuse = diffuseCoefficient * surfaceColor.rgb * light.intensities;

specular float specularCoefficient = 0.0; if(diffuseCoefficient > 0.0) specularCoefficient = pow(max(0.0, dot(surfaceToCamera, reflect(-surfaceToLight, normal))), materialShininess); vec3 specular = specularCoefficient * materialSpecularColor * light.intensities;

attenuation float distanceToLight = length(light.position - surfacePos); float attenuation = 1.0 / (1.0 + light.attenuation * pow(distanceToLight, 2));

linear color (color before gamma correction) vec3 linearColor = ambient + attenuation*(diffuse + specular);

final color (after gamma correction) vec3 gamma = vec3(1.0/2.2); finalColor = vec4(pow(linearColor, gamma), surfaceColor.a); }

check moResourceInit

Reimplemented from moResource.

Definition at line 101 of file moShaderManager.cpp.


The documentation for this class was generated from the following files: