From b90fa37c608737ffff653b0d7ff6ac80fb533541 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 24 Dec 2011 00:37:13 -0600 Subject: [PATCH] If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles. --- .../Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp | 6 ++++-- .../Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.h | 10 ++++++++++ 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 } };