Looks almost perfect to me. Two minor isses:
1. What does GetProcAddressEXT return for core API functions if they
are not supported by the library implementation ? Assuming there
is a OpenGL 1.1 based libGL and you query a 1.2 function. Does a
non-NULL value imply that the function would work ?
I would vote for no. Consider the GLX remote case, where you could
have a 1.2 libGL, while the remote X-Server has only a 1.1
implementation. In that case GetProcAddressEXT would return a
non-NULL value. Hence it should be mandatory to use
GetString(VERSION).
2. Having a bound context, while retrieving the function pointers is
kind of difficult to handle for applications. There are
applications which create first all the contexts they need, before
actually making them current. Hence it would be easier to really
pass a GLXContext explicitely.
The downside would be that then GetProcAddress really had to be
called glXGetProcAddress. The upside is, that glProcAddress could
be implemented trivially by:
glXGetProcAddressEXT(glXGetCurrentContext(), name)
Hence I would suggest to have 2 functions defined right away in
this extension:
glGetProcAddressEXT(name)
glXGetProcAddressEXT(ctxt, name)
The first one would return only GL API functions along with
extension functions, while the glX variant would also return all
glX functions.
- Thomas
--
Thomas Roell /\ An imperfect plan executed violently
Xi Graphics / \/\ _ is far superior to a perfect plan.
[EMAIL PROTECTED] / / \ \
/ Oelch! \ \ George Patton