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

Reply via email to