Home Cavernosa
PyGLUT GAME BOY
ADVANCE
Nintendo DS Java
Misc Code Links
My Site
Intro
Cavernosa
PyGLUT
GAME BOY
ADVANCE
Nintendo DS
Java
Misc Code
Links
 
PyGLUT
Download
 
Email me
mailto
 
Printer
Friendly

 
  

PyGLUT


PyGLUT makes GLUT available from the Python interpreter. It exposes everything from GLUT 3.7 including the API version 4 stuff related to games. That includes full-screen modes, joystick input, and non-repeating key-up and key-down reporting.

A Python code block using it looks the same as the equivalent C/C++. Where you would pass GLUT a C callback function, you can pass a callable PyObject to PyGLUT. Most simply, that would be a normal Python function, but it typically would be a wrapped function of another compiled extension that uses OpenGL internally.

def display():
    # Call some extension that renders using OpenGL.
    # ...
    glutSwapBuffers()

def mouse(button, state, x, y):
    if state == GLUT_UP: ...
    if state == GLUT_DOWN: ...

def motion(x, y):
    ...

def keyboard(key, x, y):
    ...

def menu_func(event):
    print 'Menu entry', event, 'selected'

glutInit(1, ['poop'])
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE)
win_id = glutCreateWindow('PyGLUT')
glutDisplayFunc(display)
glutMotionFunc(motion)
glutKeyboardFunc(keyboard)
glutMouseFunc(mouse)
menu = glutCreateMenu(menu_func)
glutAddMenuEntry("Menu entry 1", 1)
glutAddMenuEntry("Menu entry 2", 2)

glutMainLoop()

In the zip you will find the source code and a compiled Win32 dll Python extension. Also in the zip are a custom build of the Python 1.5.2 interpreter, a custom built Glut32.dll, the Python shell exe and a simple demo script.

To run the demo on Win32, simply unzip the download and double-click on RUN.bat.

Download.

Copyright Andrew H. Cox. All rights reserved.
[email protected]


FastCounter by LinkExchange


Hoogli Gallery: Turn any Web Page Into an Image Gallery With One Click

I now do a lot of web stuff as well as 3D Graphics. Come and see my Node.js and libevent based web app, and if you like it, you can even hire me for web projects that need a bit of backend technology to be built.