Re: OpenGL ES
I made a work-in-progress commit to the GLES branch. It's largely broken, but it's a big step forward. It is only tested under OSX, and I'm certain it won't build anywhere else. I'll take care of all the remaining flaws and portability issues as the ES port shapes up.
This new code uses optimized vertex buffer objects for all SOL rendering. All display list usage has been removed from the core renderer. All level and ball geometry specification is compatible with OpenGL ES, though a lot of incompatible state management code remains to be updated. DLs are still in use by the GUI renderer, as well as by goals, switches, teleporters, etc.
The shadow mechanism has been converted to multi-texture, and the renderer now executes in a single pass. The shadow works in the traditional fashion, and I have not yet converted parasti's shadow clip mechanism. I set the shadow material flag on pretty much all materials. We can disable this on a per-material basis as necessary.
Some of the generated texture coordinate usage has been eliminated, most notably in the shadow renderer, but some remains, such as in the rendering of environmental textures.
Reflections work correctly, largely because changes are limited to the "share" directory.
No billboards are currently drawn, so no level backgrounds or ball insides appear.
There are new bugs. New polygon offset issues have popped up, and some maps leak state into the GUI renderer. These will all be tracked down in time.