def error_callback(code): ptr = glu.gluErrorString(code) err = '' idx = 0 while ptr[idx]: err += chr(ptr[idx]) idx += 1 self._warn("GLU Tesselation Error: " + err)
def createOpenGLDisplayList(self): if self.displayList is None: self.displayList = GL.glGenLists(1) error = GL.glGetError() if error != GL.GL_NO_ERROR: print "An OpenGL error has occurred: ", GLU.gluErrorString( error) return GL.glNewList(self.displayList, GL.GL_COMPILE) if self.displayAsPoints: GL.glBegin(GL.GL_POINTS) else: GL.glBegin(GL.GL_TRIANGLES) for i in xrange(len(self.TriangleVertexIndexList)): if len(self.TriangleVertexIndexList[i]) != 3: continue GL.glNormal3fv(self.NormVectors[i]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 0]]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 1]]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 2]]) GL.glEnd() if self.displayAsPoints: GL.glBegin(GL.GL_POINTS) else: GL.glBegin(GL.GL_QUADS) for i in xrange(len(self.TriangleVertexIndexList)): if len(self.TriangleVertexIndexList[i]) != 4: continue GL.glNormal3fv(self.NormVectors[i]) if self.textureID is not None: GL.glTexCoord2d(0.0, 0.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 0]]) if self.textureID is not None: GL.glTexCoord2d(0.0, 1.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 1]]) if self.textureID is not None: GL.glTexCoord2d(1.0, 1.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 2]]) if self.textureID is not None: GL.glTexCoord2d(1.0, 0.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 3]]) GL.glEnd() GL.glEndList()
def createOpenGLDisplayList(self): if self.displayList is None: self.displayList = GL.glGenLists(1) error = GL.glGetError() if error != GL.GL_NO_ERROR: print "An OpenGL error has occurred: ", GLU.gluErrorString(error) return GL.glNewList(self.displayList, GL.GL_COMPILE) if self.displayAsPoints: GL.glBegin(GL.GL_POINTS) else: GL.glBegin(GL.GL_TRIANGLES) for i in xrange(len(self.TriangleVertexIndexList)): if len(self.TriangleVertexIndexList[i]) != 3: continue GL.glNormal3fv(self.NormVectors[i]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 0]]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 1]]) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 2]]) GL.glEnd() if self.displayAsPoints: GL.glBegin(GL.GL_POINTS) else: GL.glBegin(GL.GL_QUADS) for i in xrange(len(self.TriangleVertexIndexList)): if len(self.TriangleVertexIndexList[i]) != 4: continue GL.glNormal3fv(self.NormVectors[i]) if self.textureID is not None: GL.glTexCoord2d(0.0, 0.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 0]]) if self.textureID is not None: GL.glTexCoord2d(0.0, 1.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 1]]) if self.textureID is not None: GL.glTexCoord2d(1.0, 1.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 2]]) if self.textureID is not None: GL.glTexCoord2d(1.0, 0.0) GL.glVertex3fv(self.VertexList[self.TriangleVertexIndexList[i, 3]]) GL.glEnd() GL.glEndList()
def _checkProgramError(prog): res = True while (True): error = glew.glGetError() if (error == glew.GL_NO_ERROR): return res res = False if (error == glew.GL_INVALID_OPERATION): print prog errPos = glGetIntegerv(glew.GL_PROGRAM_ERROR_POSITION_ARB) errString = glGetString(glew.GL_PROGRAM_ERROR_STRING_ARB) print "error at position: %d\n[%s]"%(errPos,errString) print "\n\"..." for i in range(errPos-40,errPos+40): if (i >= 0): if not prog[i]: break if (i == errPos): print "(*)" if (prog[i]=='\n'): print '\\' else: print prog[i] print "...\"\n" else: errString = GLU.gluErrorString(error) print "error: [%s]"%errString
def printOpenGLError(): err = GL.glGetError() if (err != GL.GL_NO_ERROR): print('GLERROR: ', GLU.gluErrorString(err)) sys.exit(-1)
def check_errors(source) : global s_errors s_errors += source + "\n" + str(GLU.gluErrorString(GL.glGetError())) + "\n\n"