summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
index a248157751..ff3196fa41 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
@@ -429,24 +429,6 @@ bool CompileGLSLPixelShader(FRAGMENTSHADER& ps, const char* pstrprogram)
glShaderSource(result, 1, &pstrprogram, NULL);
glCompileShader(result);
- GLsizei length = 0;
-
- glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
- if (length > 0)
- {
- GLsizei charsWritten;
- GLchar* infoLog = new GLchar[length];
- glGetShaderInfoLog(result, length, &charsWritten, infoLog);
- WARN_LOG(VIDEO, "PS Shader info log:\n%s", infoLog);
- char szTemp[MAX_PATH];
- sprintf(szTemp, "ps_%d.txt", result);
- FILE *fp = fopen(szTemp, "wb");
- fwrite(pstrprogram, strlen(pstrprogram), 1, fp);
- fclose(fp);
- if(strstr(infoLog, "warning") != NULL || strstr(infoLog, "error") != NULL)
- exit(0);
- delete[] infoLog;
- }
GLint compileStatus;
glGetShaderiv(result, GL_COMPILE_STATUS, &compileStatus);
@@ -454,6 +436,23 @@ bool CompileGLSLPixelShader(FRAGMENTSHADER& ps, const char* pstrprogram)
{
// Compile failed
ERROR_LOG(VIDEO, "Shader compilation failed; see info log");
+
+ GLsizei length = 0;
+ glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
+ if (length > 0)
+ {
+ GLsizei charsWritten;
+ GLchar* infoLog = new GLchar[length];
+ glGetShaderInfoLog(result, length, &charsWritten, infoLog);
+ WARN_LOG(VIDEO, "VS Shader info log:\n%s", infoLog);
+ char szTemp[MAX_PATH];
+ sprintf(szTemp, "vs_%d.txt", result);
+ FILE *fp = fopen(szTemp, "wb");
+ fwrite(pstrprogram, strlen(pstrprogram), 1, fp);
+ fclose(fp);
+
+ delete[] infoLog;
+ }
// Don't try to use this shader
glDeleteShader(result);
return false;