summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/VertexShaderCache.cpp
diff options
context:
space:
mode:
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))