This isn't a vote.  I'm not involved enough in the OpenGL "community"
to really warrant one, but let me make an argument for C:

1.) Old-style extension usage is broken:
    + Compile time checking is insufficient to determine the
      availability of an extension at runtime.  Not all defined
      extensions will be available at runtime, and no compile-time
      environment can expose all CONCEIVALBLE extensions that might be
      callable at runtime in some environment.
    + Static linkage is insufficient to determine the callability of
      extension functions at runtime.  Some functions may be callable
      in some environment but not linkable in the build environment.

2.) These are INHERENT flaws.  They can't be fixed.  Old source and
    binaries will be FOREVER plagued by these problems, regardless of
    what the default behavior of gl.h is.  Stated differently, a
    "compatible" OpenGL Base ABI will be no more compatible than the
    pre-existing environments, which aren't.

3.) A compatibility mode in gl.h opens the possibility that there can
    be PERFECTLY COMPLIANT (i.e. compilable and runnable within the
    ABI environment) programs that STILL exhibit all the flaws that
    the base ABI was supposed to fix!  Poor programmers will continue
    to type in broken sample code and continue to ship broken source
    and binary distributions, simply because the gl.h lets them and
    because "That's the way it's done in the Red Book!"

4.) Ergo, the OpenGL Base ABI gl.h should be incompatible.  Break the
    pre-existing stuff; it's ALREADY broken.

Hell, maybe this IS a vote.  I'll retract it if someone feels strongly
that I've missed an important point or that I don't understand
something, but unless I hear otherwise, I vote for C, as defined by
Allen:
   gl.h includes glext.h
   NO function prototypes for extension functions are defined
   A preprocessor flag is available for those trying to resurrect old,
     broken behavior.

Andy


-- 
Andrew J. Ross                NextBus Information Systems
Software Engineer             Emeryville, CA
[EMAIL PROTECTED]       http://www.nextbus.com
(510)652-1303x19              Why Wait?

Reply via email to