| #!/usr/bin/env python |
| """Simple GLUT example to manually test event loop integration. |
| |
| To run this: |
| 1) Enable the PyDev GUI event loop integration for glut |
| 2) do an execfile on this script |
| 3) ensure you have a working GUI simultaneously with an |
| interactive console |
| 4) run: gl.glClearColor(1,1,1,1) |
| """ |
| |
| if __name__ == '__main__': |
| |
| #!/usr/bin/env python |
| import sys |
| import OpenGL.GL as gl |
| import OpenGL.GLUT as glut |
| |
| def close(): |
| glut.glutDestroyWindow(glut.glutGetWindow()) |
| |
| def display(): |
| gl.glClear (gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT) |
| glut.glutSwapBuffers() |
| |
| def resize(width,height): |
| gl.glViewport(0, 0, width, height+4) |
| gl.glMatrixMode(gl.GL_PROJECTION) |
| gl.glLoadIdentity() |
| gl.glOrtho(0, width, 0, height+4, -1, 1) |
| gl.glMatrixMode(gl.GL_MODELVIEW) |
| |
| if glut.glutGetWindow() > 0: |
| interactive = True |
| glut.glutInit(sys.argv) |
| glut.glutInitDisplayMode(glut.GLUT_DOUBLE | |
| glut.GLUT_RGBA | |
| glut.GLUT_DEPTH) |
| else: |
| interactive = False |
| |
| glut.glutCreateWindow('gui-glut') |
| glut.glutDisplayFunc(display) |
| glut.glutReshapeFunc(resize) |
| # This is necessary on osx to be able to close the window |
| # (else the close button is disabled) |
| if sys.platform == 'darwin' and not bool(glut.HAVE_FREEGLUT): |
| glut.glutWMCloseFunc(close) |
| gl.glClearColor(0,0,0,1) |
| |
| if not interactive: |
| glut.glutMainLoop() |