Maemo things

Maemo experiments

OpenGL ES

OpenGL ES is a slimmed version of the
desktop OpenGL standard intended for more limited embedded devices. To get started, you'll
need to choose an OpenGL ES engine, that is, a library that will perform the actual
rendering work. Currently, there are two software based alternatives:

libvincent
: Vincent OpenGL ES rasterizer. The Vincent rasterizer
is written for OpenGL ES from the ground up, but suffers from some performance and
accuracy issues.

dgles
: An OpenGL ES wrapper for the Mesa OpenGL rasterizer.
This wrapper by Hybrid converts OpengGL ES commands on the fly.
It can use any OpenGL renderer, such as Mesa, to do the actual drawing.

Next, you might need some libraries to provide OpenGL ES access to C/C++ and
Python applications.

libsdl
: SDL extended with OpenGL ES support. With this library,
getting an OpenGL ES context up and running is just a matter of:

SDL_SetVideoMode(800, 480, 16, SDL_OPENGLES);

libglutes
: GLUT extended with OpenGL ES support. This
library
provides most of the familiar GLUT for use with OpenGL ES.

glesport
: The runtime OpenGL to OpenGL ES
translator. Think of this as the inverse of dgles
above. With this library,
you should be able to run unmodified OpenGL applications on an
OpenGL ES renderer. Naturally, not all features of OpenGL and GLX are supported, but the ones most
commonly used by games work fine. For instance, Quake 2 runs fine with this library.

Technically, the translation is done with Mesa through the use of an OpenGL ES back-end. Mesa does
all the hard work of managing the OpenGL state machine, while the back-end only needs to do
relatively simple rendering. GLX emulation is implemented on top of EGL.