#20 GGIMesa rework

Jon Taylor

As mentioned in the LibGGIX11 proposal, GGI's modular extension library system is considerably superior to the existing library systems in a lot of open source software. GGI-izing those packages would provide a lot of benefits. The Mesa OpenGL library is another package which would benefit from this. GGIMesa exists, but it uses Mesa's existing extension mechanism only which isn't dynamic like LibGG libraries are.

Probably the first major task would be to use LibBuf to allocate and manage buffers better. Currently, I think GGIMesa swaps a front buffer with GGI as a whole and that's it - it could be much better, given how many types of auxiliary buffers Mesa can use. The use of DirectBuffers is also somewhat lacking currently, they would need to be heavily used in order to provide a rich target framework.

Direct integration with a GGI-style X11 library (to implement GLX) as described in the LibGGIX11 proposal would be the obvious next step, and also creating extension libraries to model and encapsulate the underlying OpenGL extension system. This would be at least as extensive a rework as the X11-to-LibGGIX11 rework, and quite similar in design. This would give us the ability to either statically or dynamically (or both in a mix) cut out portions of the entire OpenGL interface set - for example, if only OpenGL 1.x plus OpenGL2 procedural textures (not the rest of OpenGL2 which is much more than just texture programming) was for some reason desired, it could be mix-and-matched as needed.

Other smaller things like more and more accelerated targets in GGIMesa and/or combined with basic GGI (or GGI extension) accelerated targets would be nice to see as well - The more complex the interaction between LibGGI core and extensions like GGIMesa, the more need to put a better basis into the design of the underlying targets, target interaction management code and possibly even the general targeting system in LibGGI. As complex as Mesa and OpenGL are, this is probably the best chance GGI has to really shine as a demonstrator of the inherent power of the LibGG auto-targeting approach.