Made uniform caching less error-prone

Former-commit-id: 0512daf3c54ed1e546ff7b12a6c9e82675504d5f
This commit is contained in:
Lynix 2013-05-11 14:30:39 +02:00
parent c484bd38c9
commit b69963e93f
1 changed files with 22 additions and 18 deletions

View File

@ -61,24 +61,28 @@ bool NzGLSLShader::Compile()
static NzString successStr("Linkage successful"); static NzString successStr("Linkage successful");
m_log = successStr; m_log = successStr;
m_uniformLocations[nzShaderUniform_CameraPosition] = GetUniformLocation("CameraPosition"); #define CacheUniform(name) m_uniformLocations[nzShaderUniform_##name] = GetUniformLocation(#name)
m_uniformLocations[nzShaderUniform_LightCount] = GetUniformLocation("LightCount");
m_uniformLocations[nzShaderUniform_MaterialAmbient] = GetUniformLocation("MaterialAmbient"); CacheUniform(CameraPosition);
m_uniformLocations[nzShaderUniform_MaterialDiffuse] = GetUniformLocation("MaterialDiffuse"); CacheUniform(LightCount);
m_uniformLocations[nzShaderUniform_MaterialDiffuseMap] = GetUniformLocation("MaterialDiffuseMap"); CacheUniform(MaterialAmbient);
m_uniformLocations[nzShaderUniform_MaterialEmissiveMap] = GetUniformLocation("MaterialEmissiveMap"); CacheUniform(MaterialDiffuse);
m_uniformLocations[nzShaderUniform_MaterialHeightMap] = GetUniformLocation("MaterialHeightMap"); CacheUniform(MaterialDiffuseMap);
m_uniformLocations[nzShaderUniform_MaterialNormalMap] = GetUniformLocation("MaterialNormalMap"); CacheUniform(MaterialEmissiveMap);
m_uniformLocations[nzShaderUniform_MaterialShininess] = GetUniformLocation("MaterialShininess"); CacheUniform(MaterialHeightMap);
m_uniformLocations[nzShaderUniform_MaterialSpecular] = GetUniformLocation("MaterialSpecular"); CacheUniform(MaterialNormalMap);
m_uniformLocations[nzShaderUniform_MaterialSpecularMap] = GetUniformLocation("MaterialSpecularMap"); CacheUniform(MaterialShininess);
m_uniformLocations[nzShaderUniform_ProjMatrix] = GetUniformLocation("ProjMatrix"); CacheUniform(MaterialSpecular);
m_uniformLocations[nzShaderUniform_SceneAmbient] = GetUniformLocation("SceneAmbient"); CacheUniform(MaterialSpecularMap);
m_uniformLocations[nzShaderUniform_ViewMatrix] = GetUniformLocation("ViewMatrix"); CacheUniform(ProjMatrix);
m_uniformLocations[nzShaderUniform_ViewProjMatrix] = GetUniformLocation("ViewProjMatrix"); CacheUniform(SceneAmbient);
m_uniformLocations[nzShaderUniform_WorldMatrix] = GetUniformLocation("WorldMatrix"); CacheUniform(ViewMatrix);
m_uniformLocations[nzShaderUniform_WorldViewMatrix] = GetUniformLocation("WorldViewMatrix"); CacheUniform(ViewProjMatrix);
m_uniformLocations[nzShaderUniform_WorldViewProjMatrix] = GetUniformLocation("WorldViewProjMatrix"); CacheUniform(WorldMatrix);
CacheUniform(WorldViewMatrix);
CacheUniform(WorldViewProjMatrix);
#undef CacheUniform
return true; return true;
} }