summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2011-12-10 15:40:10 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2011-12-10 15:40:10 -0600
commit97c3c156e61b9e8c4882ead53647b554f606dd16 (patch)
treedfd2380a5cef1459c76844044c61610a44ce62e9 /Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
parentc72a244809ee9e8a645bd1f200138af727d0474b (diff)
Use UBOs in every shader. I had missed a few. Only cache Uniform locations if we aren't using UBOs.
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
index 37923d2f47..562843ebb1 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
@@ -111,8 +111,9 @@ namespace OGL
//For some reason this fails on my hardware
//glGetUniformIndices(entry.program.glprogid, NUM_UNIFORMS, UniformNames, entry.program.UniformLocations);
//Got to do it this crappy way.
- for(int a = 0; a < NUM_UNIFORMS; ++a)
- entry.program.UniformLocations[a] = glGetUniformLocation(entry.program.glprogid, UniformNames[a]);
+ if(!g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ for(int a = 0; a < NUM_UNIFORMS; ++a)
+ entry.program.UniformLocations[a] = glGetUniformLocation(entry.program.glprogid, UniformNames[a]);
// Need to get some attribute locations
if(uid.uid.vsid != 0) // We have no vertex Shader
@@ -176,7 +177,7 @@ namespace OGL
// Repeat for VS shader
glBindBuffer(GL_UNIFORM_BUFFER, UBOBuffers[1]);
- glBufferData(GL_UNIFORM_BUFFER, 1024*1024, NULL, GL_DYNAMIC_DRAW);
+ glBufferData(GL_UNIFORM_BUFFER, 1024 * 1024, NULL, GL_DYNAMIC_DRAW);
glBindBufferBase(GL_UNIFORM_BUFFER, 2, UBOBuffers[1]);
}
void ProgramShaderCache::Shutdown(void)
@@ -185,6 +186,7 @@ namespace OGL
for (; iter != pshaders.end(); iter++)
iter->second.Destroy();
pshaders.clear();
+ glDeleteBuffers(2, UBOBuffers);
}
}