summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2011-12-24 00:37:13 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2011-12-24 00:37:13 -0600
commitb90fa37c608737ffff653b0d7ff6ac80fb533541 (patch)
tree9fa416ac3721b829adada4dd9fc47668ec40170a /Source
parent9bc6b83fd0bd7f54b8cbefe762eaf59e9ec522b9 (diff)
If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles.
Diffstat (limited to 'Source')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp6
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h10
2 files changed, 14 insertions, 2 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
index 0429b89e30..628cbae865 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp
@@ -137,9 +137,10 @@ namespace OGL
glAttachShader(entry.program.glprogid, entry.program.vsid);
glAttachShader(entry.program.glprogid, entry.program.psid);
-
+ #ifdef GLEW_VERSION_4_0
if (g_ActiveConfig.backend_info.bSupportsGLSLCache)
glProgramParameteri(entry.program.glprogid, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE);
+ #endif
glLinkProgram(entry.program.glprogid);
@@ -201,7 +202,7 @@ namespace OGL
glBindBufferRange(GL_UNIFORM_BUFFER, 1, s_ps_vs_ubo, 0, ps_data_size);
glBindBufferRange(GL_UNIFORM_BUFFER, 2, s_ps_vs_ubo, s_vs_data_offset, vs_data_size);
}
-
+ #ifdef GLEW_VERSION_4_0
// Read our shader cache, only if supported
if (g_ActiveConfig.backend_info.bSupportsGLSLCache)
{
@@ -218,6 +219,7 @@ namespace OGL
glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, Formats);
ProgramFormat = (GLenum)Formats[0]; // We don't really care about format
}
+ #endif
}
void ProgramShaderCache::Shutdown(void)
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h
index f2987965dc..51638cc1e4 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h
+++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h
@@ -79,16 +79,24 @@ struct PROGRAMSHADER
GLint binaryLength;
u8 *Data()
{
+ #ifdef GLEW_VERSION_4_0
glGetProgramiv(glprogid, GL_PROGRAM_BINARY_LENGTH, &binaryLength);
u8* binary = (u8*)malloc(binaryLength);
glGetProgramBinary(glprogid, binaryLength, NULL, &ProgramFormat, binary);
return binary;
+ #else
+ return NULL;
+ #endif
}
GLint Size()
{
+ #ifdef GLEW_VERSION_4_0
if(!binaryLength)
glGetProgramiv(glprogid, GL_PROGRAM_BINARY_LENGTH, &binaryLength);
return binaryLength;
+ #else
+ return 0;
+ #endif
}
};
@@ -119,6 +127,7 @@ class ProgramShaderCache
public:
void Read(const PROGRAMUID &key, const u8 *value, u32 value_size)
{
+ #ifdef GLEW_VERSION_4_0
PCacheEntry entry;
// The two shaders might not even exist anymore
@@ -139,6 +148,7 @@ class ProgramShaderCache
glUseProgram(entry.program.glprogid);
SetProgramVariables(entry, key);
}
+ #endif
}
};