Oh, no! Steve's gone over to the dark side!
Look, let me try one last variant on the ``design principle''
argument, then I'll shut up.
You folks who want context-dependent extension function pointers, do
you also want the addresses of *core* routines to be
context-dependent?
If yes, then in the long run we're moving toward a COM-style
interface where all functions are per-object (context) and
must be queried before use. This is not necessarily an awful
thing, but please be aware of the change in direction; this is
not how ordinary C function libraries behave today. ``p =
&glBegin'' yields a function pointer than can be used on all
contexts on all OpenGL implementations with which I'm
familiar. That simplicity has value.
If no, then what is it about extension routines that makes
them so different in principle from the routines in the core?
We know it's not the implementation; we know of efficient ways
to make extension routine pointers context-independent. And
why do you want extension function pointers to be
context-dependent now, but expect them to become
context-independent when the same functions are eventually
added to the core? Not only does this seem inconsistent, but
it leaves apps that use extensions with a bunch of bloat to
handle per-context pointers that they won't need in the
future.
Allen