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?