If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles.
This commit is contained in:
parent
189d12b61c
commit
4eb227bd4c
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue