I tried out the new glext.h and glext_proto.h headers. Found a few
problems.
1. In glext_proto.h, glTexImage3D() has the wrong type for the internal
format parameter. It should be GLint, not GLenum.
2. In glext_proto.h the glCullParameter[fd]vEXT() functions are missing
const qualifiers.
3. In glext_proto.h the token definitions are not protected with
#ifndef GL_EXT_extension_name / #endif. This isn't a problem
with gcc, but I wouldn't be surprised if other compilers complain
about redefines when both gl.h and glext_proto.h define some
common symbols.
4. Being pedantic, I think all the prototypes in glext_proto.h should
be prefixed with "extern".
5. Personally, I'd like to have the function prototypes in glext.h and
then kill glext_proto.h. The prototypes could be surrounded by a
preprocessor symbol to enable/disable them.
#ifndef GL_EXT_blend_color
#define GL_EXT_blend_color 1
typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green,
GLclampf
blue, GLclampf alpha);
#ifdef GL_EXPORT_PROTOTYPES
extern void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf);
#endif
#endif
Normally, GL_EXPORT_PROTOTYPES would be undefined. Implementations
would #define GL_EXPORT_PROTOTYPES before including glext.h.
<rant>
We've really got to resolve the glext.h stuff NOW! Another XFree86
release is coming up soon and by my measure, little, if anything, has
been accomplished since the XFree86 4.0 release.
I'm scheduled to submit the final batch of GL-related changes for
XFree86 4.0.1 this Friday. If consensus on the issues isn't
reached within the next couple days, XFree86 will again ship with
GL headers that don't follow the Linux OpenGL base spec.
As with the XFree86 4.0 release, I'll simply make my best guess
on what might be agreed upon someday in the future and put that
in the release.
</rant>
-Brian