summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2011-12-09 17:30:05 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2011-12-09 17:30:05 -0600
commit8e5bb59cb692bae1bf4a94797a7c153e9bbd2d3d (patch)
tree4c3f7bce56c03e85d49e97f497f30a7660654296 /Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
parent9119399547b44f9c9068fa52812a9e90ab367d8d (diff)
Add in UBOs, doesn't work yet. Still debugging here.
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
index 143340277e..dfa3293a46 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
@@ -252,6 +252,11 @@ void SetGLSLVSConstant4f(unsigned int const_number, float f1, float f2, float f3
glUniform4fv(const_number, 1, buf);
return;
}
+ if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ {
+ ProgramShaderCache::SetUniformObjects(1, const_number, buf);
+ return;
+ }
for( unsigned int a = 0; a < 9; ++a)
{
if( const_number >= VSVar_Loc[a].reg && const_number < ( VSVar_Loc[a].reg + VSVar_Loc[a].size))
@@ -270,6 +275,11 @@ void SetGLSLVSConstant4fv(unsigned int const_number, const float *f)
glUniform4fv(const_number, 1, f);
return;
}
+ if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ {
+ ProgramShaderCache::SetUniformObjects(1, const_number, f);
+ return;
+ }
for( unsigned int a = 0; a < 9; ++a)
{
if( const_number >= VSVar_Loc[a].reg && const_number < ( VSVar_Loc[a].reg + VSVar_Loc[a].size))
@@ -288,6 +298,11 @@ void SetMultiGLSLVSConstant4fv(unsigned int const_number, unsigned int count, co
glUniform4fv(const_number, count, f);
return;
}
+ if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ {
+ ProgramShaderCache::SetUniformObjects(1, const_number, f, count);
+ return;
+ }
for( unsigned int a = 0; a < 9; ++a)
{
if( const_number >= VSVar_Loc[a].reg && const_number < ( VSVar_Loc[a].reg + VSVar_Loc[a].size))
@@ -314,6 +329,11 @@ void SetMultiGLSLVSConstant3fv(unsigned int const_number, unsigned int count, co
glUniform4fv(const_number, count, buf);
return;
}
+ if (g_ActiveConfig.backend_info.bSupportsGLSLUBO)
+ {
+ ProgramShaderCache::SetUniformObjects(1, const_number, buf, count);
+ return;
+ }
for( unsigned int a = 0; a < 9; ++a)
{
if( const_number >= VSVar_Loc[a].reg && const_number < ( VSVar_Loc[a].reg + VSVar_Loc[a].size))