> People have very different understandings of what options B and C were
> in the original vote.

Urgh!  It's gotten all muddy again.

The original distinctions were very simple:

A) gl.h is essentially what it is today - it contains
   definitions only for those extensions that the local
   OpenGL supports.  glext.h is #included either instead
   of or after gl.h in applications that need it for ABI
   reasons.  There are no special #define's needed.

B) Exactly as (A) except that you can -DGL_OGLBASE (or something)
   and glext.h will then (and only then) be automatically #included
   into gl.h.   It follows that by NOT defining that symbol and
   #including glext.h yourself, you can pretend that (B) is really (A).
   glext.h probably has to #include gl.h since it needs GLfloat, etc.

C) Same as (B) except that the meaning of the token is reversed so
   that -DGL_OGLBASE_INCOMPATIBLE causes glext.h *NOT* to be included
   into gl.h - as it would otherwise be.


So, in terms of your ABI-compliant code:

-------------------------
A)  #include <GL/glext.h>

    *OR*

    #include <GL/gl.h>
    #include <GL/glext.h>
-------------------------
B)  #define GL_OGLBASE      (or '-D' in your Makefile)
    #include <GL/gl.h>

    *OR*

    #include <GL/glext.h>

    *OR*

    #include <GL/gl.h>
    #include <GL/glext.h>
-------------------------
C)  #include <GL/gl.h>
-------------------------



But for existing code that uses OpenGL extensions in the time-honored way:

-------------------------
A)  #include <GL/gl.h>
-------------------------
B)  #include <GL/gl.h>
-------------------------
C)  #define GL_OGLBASE_INCOMPATIBLE      (or '-D' in your Makefile)
    #include <GL/gl.h>
-------------------------


Steve Baker                      (817)619-2657 (Vox/Vox-Mail)
L3Com/Link Simulation & Training (817)619-2466 (Fax)
Work: [EMAIL PROTECTED]            http://www.hti.com
Home: [EMAIL PROTECTED]       http://web2.airmail.net/sjbaker1

Reply via email to