OpenGL ES for Maemo
Lately I’ve been toying around with the idea of adding OpenGL ES support to the Nokia N800 internet tablet. As you might know, OpenGL ES is a slimmed down version of the desktop OpenGL standard. An open source software implementation called Vincent exists for Linux and Windows CE. Porting it to Maemo, the Debian-based software environment for the N770 and N800, was just a matter of creating a package for it.
But a library is not much fun without some supporting software. I started by adding OpenGL ES support to SDL, a popular game programming library. With the patched SDL, getting an OpenGL ES context up and running is just a matter of
SDL_SetVideoMode(800, 480, 16, SDL_OPENGLES);
GLUT is another widely used high-level library for dealing with OpenGL. An OpenGL ES version of GLUT called GLUT|ES exists for Windows CE. I took that and ported it back to Linux.
Finally, Teemu Haapoja had made an OpenGL ES library for Python in the spirit of PyOpenGL. Originally his library was for Symbian, but now he has ported it to over to Maemo.
So here’s what I have so far:
- libvincent: Vincent OpenGL ES engine
- libsdl: SDL with OpenGL ES support
- libglutes: GLUT with OpenGL ES support
- python-egl: EGL library for Python
- python-opengles: OpenGL ES library for Python
I’ve set up a Maemo repository for these packages. You can get the packages with these settings:
- Name: Muksuluuri
- Url: http://muksuluuri.ath.cx/maemo
- Distribution: bora
- Components: main
The repository also has some additional packages, like Mesa for full OpenGL support. You can find the source code at my darcs repository.
The libraries still have some minor kinks to iron out. For some reason, Vincent renders everything upside down (I said minor, didn’t I :). The OpenGL ES version of SDL also depends on the full OpenGL libraries due to some braindamage in the patch. I hope to have these sorted out soon, along with a new utility library to ease porting OpenGL programs to OpenGL ES.
Oh, I almost forgot the mandatory screenshot. Here’s a Python version of glxgears running on the N800:
Here’s the same thing in motion:
10 commentsFrets On Fire Charts back up again
The Frets On Fire World Charts were down for some time due to a configuration error. Now everything should be working smoothly again — drop me a line if something isn’t.
4 commentsCharts Server source released
The source code for the Frets on Fire World Charts server has been released. See the documentation for more information.
No comments