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

Reply via email to