>> but the API really is terrible > > Then use a different one, like xcb.

The problem is that it is difficult to use xcb with GLX. I just say glXChooseFBConfig. And I consider using Xlib for these API functions - as suggested on http://xcb.freedesktop.org/opengl/ as an even larger mess.