From: Martin Wickham Date: Tue, 28 Oct 2014 17:42:35 +0000 (-0500) Subject: Fix error when shader can't link X-Git-Tag: 14.10-RC5~8^2^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c5109fb2e477e71acf611c05c30e389813867f63;p=cura.git Fix error when shader can't link Calling glValidateProgram clears glGetProgramInfoLog, so must check for link error before validating. --- diff --git a/Cura/gui/util/openglHelpers.py b/Cura/gui/util/openglHelpers.py index dd4aa595..0c1e9cb6 100644 --- a/Cura/gui/util/openglHelpers.py +++ b/Cura/gui/util/openglHelpers.py @@ -48,12 +48,12 @@ class GLShader(GLReferenceCounter): glAttachShader(self._program, vertexShader) glAttachShader(self._program, fragmentShader) glLinkProgram(self._program) + if glGetProgramiv(self._program, GL_LINK_STATUS) == GL_FALSE: + raise RuntimeError("Link failure: %s" % (glGetProgramInfoLog(self._program))) # Validation has to occur *after* linking glValidateProgram(self._program) if glGetProgramiv(self._program, GL_VALIDATE_STATUS) == GL_FALSE: raise RuntimeError("Validation failure: %s"%(glGetProgramInfoLog(self._program))) - if glGetProgramiv(self._program, GL_LINK_STATUS) == GL_FALSE: - raise RuntimeError("Link failure: %s" % (glGetProgramInfoLog(self._program))) glDeleteShader(vertexShader) glDeleteShader(fragmentShader) except RuntimeError, e: