From f1e0816c1af934f38baa8c3095d03512b462db67 Mon Sep 17 00:00:00 2001 From: RSDuck Date: Thu, 11 Feb 2021 18:38:52 +0100 Subject: detach and delete shaders directly after linking --- src/OpenGLSupport.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') 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]); } -- cgit v1.2.3