On Tue, Nov 23, 1999 at 01:42:52PM -0600, Stephen J Baker wrote:
> On Tue, 23 Nov 1999, Thomas Roell wrote:
> > Now still one lingering issue. The document states that even a
> > libGL.so.1.1 has to have include files that export OpenGL 1.2, GLU 1.3
> > and GLX 1.3 entry points.

    The oglbase library version does not have a 1:1 mapping with OpenGL
API version numbers. We had some offline discussion a few days ago
concluding that the link library filename should be "libGL.so" and the
DT_SONAME in the library should be "libGL.so.1" (e.g. version 1 of the
oglbase standard). In practice an implementation would make libGL.so.1
the actual shared library and symlink libGL.so to that.

> However, your header file needs to define GL_VERSION_1_1 and *NOT*
> GL_VERSION_1_2 so that 'traditional' OpenGL programs (that don't
> know about GetProcAddress) will not try to statically link to
> OpenGL 1.2 functions.

    What we are aiming for is that the library entry points (and
associated header cruft) for OpenGL 1.2 etc. exist in an oglbase
implementation. The functionality may not be there - that is, a runtime
query on GL_VERSION or on any particular extension (a set still TBD)
defined by the standard may not show those functions as supported - but
there should be no runtime resolution problems. The web page needs to be
updated to reflect the discussion since September - I'll do that today.

> > Is that really wise to do ?
>
> Yes. It's fine (for correctly written programs at least).
>
> I suppose leaving out the "entry points" (ie function prototypes)

    "entry points" as I have been using it (including in the web page on
reality) means "functions exported from the shared library" with one
side comment that this set of entry points should also be prototypes in
the headers. Perhaps it could use a bit of rewrite to clarify.

> would be OK because -
>
>   * Traditional programs would conditionally compile OpenGL1.2
>     calls - and without GL_VERSION_1_2, should turn those calls
>     off at compile time.

    Traditional programs must check the GL_VERSION string before
calling any 1.2 function anyway.

>   * Linux OpenGL Base programs will be using glGetString(GL_VERSION)
>     and GetProcAddress at runtime...so they don't need the function
>     prototypes anyway.

    The whole point of requiring a particular set of entry points in the
library is that oglbase programs will not need to use the dynamic query
for entry points that are guaranteed to exist by the standard.

    Jon Leech
    SGI

Reply via email to