In your message of 10 September 1999 you write:

> Yes - of course. I understand.
> 
> So without a context argument:
> 
> main()
> {
>   for ( i = 0 ; i < num_contexts ; i++ )
>   {
>     SelectContext ( i ) ;
>     rect = glGetProcAddressEXT("glRectf");
>   }
> }
> 
> 
> foo_2 ( int context )
> {
>   (*(rect[context]))(0,0,1,1);
> } 
> 
> ...or something like that.
> 
> But even *with* a context argument to glGetProcAddress, foo_2 still
> has to be as I show above...because glrectf has a different address
> for each context (well, no - that's silly - but not so silly for
> an extension perhaps).

Yep. For extensions it's not a biggy. With of course the exception of
ARB_multitexture, which is one of the reasons why it should be
callable directly.

But with the general desire of having all API functions available via
GetProcAddess() it makes life incredible difficult.

> OH!!!  So you are saying that the same returned address should
> work for *every* context...but the problem being that you
> may be handed the address of a function that's valid in one
> context but not in another.
> 
> OK - now I understand the problem.

The cleanest solution for the application programmer would really be
that GetProcAddress() returns a function pointer that is independant
upon the context and does the mapping to the context behind the
scenes.

- 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