Some notes on the OPENGL for OS/2 implementation from IBM
=========================================================

The first thing to know is that Warp ships with OPENGL v1.0,
but there is a freely available update to OPENGL 1.1 from
IBM. 

For many applications, the v1.0 DLL's run a lot faster than
the v1.1 ones, but some applications may require the advanced features 
that v1.1 offers. Another thing to keep in mind is that a program 
compiled with the v1.0 libraries will not run under the v1.1 DLL's, 
but an application compiled with the v1.1 libraries will run under both. 

Since apps compiled with version 1.1 are backwards compatible, I will 
supply the needed v1.1 OPENGL files with V.

For programmers, OPENGL "include" headers are needed.  These are not
included with the warp OPENGL install, so they are included in the
include2\GL directory.  Also, you will need to link with the opengl.lib 
file, so I include that as well in the lib\os2 directory.

The latest headers and other OpenGL stuff can be found at 
ftp://ftp.austin.ibm.com/pub/developer/os2/OpenGL

 ogl9635.zip - appears to be the latest v1.0 stuff
 oglgold.zip - appears to be the latest v1.1 stuff

Notes specific to OPENGL for OS/2
=================================

1) Borland has a problem with the way gl.h attempts to set the APIENTRY
variable based upon what compiler is used.  In principle the header
should detect Borland's compiler (__BORLANDC__) and set APIENTRY to
__syscall.  In practise it sets it to blank and you can't link anything.
The problem seems to be that gl.h looks for the OS2 variable to be set,
and Borland doesn't do this by default, so it then ignores the rest of 
the code that sets the APIENTRY stuff.  

I #define OS2 in the source code before calling gl.h, then the header 
file works fine. Note that all the samples included with the IBM 
package do not do this, so Borland users will need to add this fix 
to all the IBM sample code.

2) The way the include files include other files is a complete 
debacle. 

gl.h    includes no others
glu.h   includes  GL/gl.h
glut.h  includes  gl.h glu.h
pgl.h   includes  gl.h
tk.h    includes  GL/gl.h GL/pgl.h GL/glu.h
aux.h   includes  pgl.h gl.h glu.h

You see that some add the GL/ subdirectory and others don't, so in 
general you need to have your INCLUDE path define both paths with and 
without the GL/ subdirectory.  Could this be more ill conceived...
I don't think so!!  Anyway, I modified pgl.h to use GL/gl.h so that 
at least for V everything is using the GL/ subdirectory.

