aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/OpenGLSupport.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/OpenGLSupport.cpp b/src/OpenGLSupport.cpp
index 01fa9d8..a133c41 100644
--- a/src/OpenGLSupport.cpp
+++ b/src/OpenGLSupport.cpp
@@ -87,6 +87,12 @@ bool LinkShaderProgram(GLuint* ids)
glLinkProgram(ids[2]);
+ glDetachShader(ids[2], ids[0]);
+ glDetachShader(ids[2], ids[1]);
+
+ glDeleteShader(ids[0]);
+ glDeleteShader(ids[1]);
+
glGetProgramiv(ids[2], GL_LINK_STATUS, &res);
if (res != GL_TRUE)
{
@@ -97,8 +103,6 @@ bool LinkShaderProgram(GLuint* ids)
printf("OpenGL: failed to link shader program: %s\n", log);
delete[] log;
- glDeleteShader(ids[0]);
- glDeleteShader(ids[1]);
glDeleteProgram(ids[2]);
return false;
@@ -109,8 +113,6 @@ bool LinkShaderProgram(GLuint* ids)
void DeleteShaderProgram(GLuint* ids)
{
- glDeleteShader(ids[0]);
- glDeleteShader(ids[1]);
glDeleteProgram(ids[2]);
}