chiark / gitweb /
Fix error when shader can't link
authorMartin Wickham <spexguy070@gmail.com>
Tue, 28 Oct 2014 17:42:35 +0000 (12:42 -0500)
committerMartin Wickham <spexguy070@gmail.com>
Tue, 28 Oct 2014 17:42:35 +0000 (12:42 -0500)
Calling glValidateProgram clears glGetProgramInfoLog, so must check for
link error before validating.

Cura/gui/util/openglHelpers.py

index dd4aa59524dc8350c9c59cf33e1602289a8c5069..0c1e9cb6ce723252cefa4657b5ca04a15c3da88d 100644 (file)
@@ -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: