GLUT header files and DLL; GLUI and GLUIX header files and libraries
--------------------------------------------------------------------

Package maintainer: Andr Bleau
Please address all questions and problem reports about Cygwin's OpenGL package 
to cygwin@cygwin.com . 

Package opengl-1.1.0-10 updated December 5, 2008


*** WARNING ***
---------------

This package does _not_ contain a complete set of files for building OpenGL
-based programs. It contains only the missing pieces in the Cygwin environment
to build programs calling functions from opengl32.dll and glu32.dll provided 
by Microsoft in Windows 98, Windows ME, Windows NT 4.0, Windows 2000 
and Windows XP. 

For Windows 95, you need to download: 
http://download.microsoft.com/download/win95upg/info/1/W95/EN-US/Opengl95.exe . 

This package also contains the include file, library file and DLL 
for for building GLUT-based programs and include files and static libraries 
for GLUI and GLUIX-based programs.

You need to install the w32api package to use the OpenGL package.


Installation
------------

Use the setup utility from www.cygwin.com.

Be carefull that no programs using glut32.dll has been run for some time; 
otherwise setup will be unable to replace it.


Compilation of code calling OpenGL
----------------------------------

Programs can now be compiled with and without -mno-cygwin .

Add the following include statement to your code:

#include <GL/gl.h>

Add -I/usr/include/opengl to your compilation arguments.

This will give you function prototypes and defined constants for OpenGL 1.1.0
provided by Microsoft. If you need functions from OpenGL 1.2 or 1.3, 
you will need to add:

#include <GL/glext.h>

and load these functions dynamically.


Compilation of code calling GLU
-------------------------------

Programs can now be compiled with and without -mno-cygwin .
Add the following include statements to your code:

#include <GL/gl.h>
#include <GL/glu.h>

Add -I/usr/include/opengl to your compilation arguments.

This will give you function prototypes and defined constants for GLU 1.2
provided by Microsoft. 


Compilation of code calling GLUT
--------------------------------

Programs can now be compiled with and without -mno-cygwin .
Add the following include statement to your code:

#include <GL/glut.h>

Add -I/usr/include/opengl to your compilation arguments.

You may add -DGLUT_DISABLE_ATEXIT_HACK to your compilation arguments
if you don't want your application to exit when the close button of the
title bar is pressed.


Compilation of code calling GLUI
--------------------------------

You will need to use g++ 3.3.1 or some version of g++ with the same 
name-mangling of C++ names.
Programs can now be compiled with and without -mno-cygwin .
Add the following include statements to your code:

#include <GL/glut.h>
#include <glui.h>

Add -I/usr/include/opengl to your compilation arguments.

You may add -DGLUT_DISABLE_ATEXIT_HACK to your compilation arguments
if you don't want your application to exit when the close button of the
title bar is pressed.


Compilation of code calling GLUIX
---------------------------------

You will need to use g++ 3.3.1 or some version of g++ with the same 
name-mangling of C++ names.
Programs can now be compiled with and without -mno-cygwin .
Add the following include statements to your code:

#include <GL/glut.h>
#include <glui.h>
#include <gluix.h>

Add -I/usr/include/opengl to your compilation arguments.

You may add -DGLUT_DISABLE_ATEXIT_HACK to your compilation arguments
if you don't want your application to exit when the close button of the
title bar is pressed.


Linking of code calling OpenGL
------------------------------

Programs can now be linked with and without -mno-cygwin .

Add -lopengl32 to your link command, after all object files or source files 
calling OpenGL functions.

You may add -mwindows to get rid of the associated command window.


Linking of code calling OpenGL, GLU
-----------------------------------

Programs can now be linked with and without -mno-cygwin .

Add -lglu32 -lopengl32 to your link command (in that order), after
all object files or source files calling GLU or OpenGL functions.

You may add -mwindows to get rid of the associated command window.


Linking of code calling OpenGL, GLU, GLUT
-----------------------------------------

Programs can now be linked with and without -mno-cygwin .

Add -lglut32 -lglu32 -lopengl32 to your link command (in that order), after
all object files or source files calling GLUT, GLU, or OpenGL functions.

You may add -mwindows to get rid of the associated command window.


Linking of code calling OpenGL, GLU, GLUT, and GLUI
---------------------------------------------------

You will need to use g++ 3.3.1 or some version of g++ with the same 
name-mangling of C++ names.

Add -lglui -lglut32 -lglu32 -lopengl32 to your link command 
(in that order), after all object files or source files calling GLUI,
GLUT, GLU, or OpenGL functions.

You may add -mwindows to get rid of the associated command window.


Linking of code calling OpenGL, GLU, GLUT, GLUI, and GLUIX
----------------------------------------------------------

You will need to use g++ 3.3.1 or some version of g++ with the same 
name-mangling of C++ names.

Add -lgluix -lglui -lglut32 -lglu32 -lopengl32 
to your link command  (in that order), after all object files or source files 
calling GLUIX, GLUI, GLUT, GLU, or OpenGL functions. 

You may add -mwindows to get rid of the associated command window.


Librairies
----------

libglui.a and libgluix.a are static libraries compiled for use with 
g++ 3.3.x or 3.4.x

libglu32.a and libopengl32.a interface with DLLs from Windows 
NT/2000/XP/95/98/ME. They are part of Cygwin's w32api package.

libglut32.a interfaces with the glut32.dll from the opengl package.


Content of the tar ball
-----------------------

        usr/bin/glut32.dll
For GLUT 3.7.6
From http://www.xmission.com:80/~nate/glut.html; not modified.

	usr/include/opengl/GL
A symbolic link to usr/include/w32api/GL .

        usr/include/w32api/GL/glut.h
For GLUT 3.7.6
From http://www.xmission.com:80/~nate/glut.html; modified to add 
__attribute__ ((__stdcall__)) to the declaration of functions to enable 
linking with glut32.dll via usr/lib/libglut32.a . Jerome G. Benoit 
provided hints about how to do it and provided an example; thanks Jerome!

        usr/include/w32api/glui.h
For GLUI 2.11 beta.
From http://www.cs.unc.edu/~rademach/glui/; modified to include version 2.11 additions.
Header file for the GLUI tool kit version 2.11 beta.

        usr/include/w32api/gluix.h
For GLUIX 1.01
Header file for extensions to the GLUI tool kit.

        usr/include/mingw/GL/glut.h
A symbolic link to usr/include/w32api/GL/glut.h .

        usr/include/mingw/glui.h
A symbolic link to usr/include/w32api/glui.h .

        usr/include/mingw/gluix.h
A symbolic link to usr/include/w32api/gluix.h .

Modified sections of the .h files are bracketed by
#if defined(__CYGWIN__) || defined(__MINGW32__)
#endif

        usr/lib/w32api/libglut32.a
For glut 3.7.6
Created with nm and dlltool from the unmodified glut32.lib
from http://www.xmission.com:80/~nate/glut.html

        usr/lib/glui-examples/*
Pre-compiled demo programs for GLUI 2.11 beta.

        usr/lib/glut-examples/*
Pre-compiled demo programs for GLUT 3.7.6

        usr/lib/w32api/libglui.a
For GLUI 2.11 beta.
A static library compiled from modified sources of the GLUI tool kit 
version 2.10 beta, found at http://www.cs.unc.edu/~rademach/glui/. 
Compilation with -O2 optimization. I highly recommend this very useful 
tool kit.

        usr/lib/w32api/libgluix.a
For GLUIX 1.01.
A static library for extensions to the GLUI tool kit.
Compilation with -O2 optimization.

        usr/lib/mingw/libglui.a
Same as usr/lib/w32api/libglui.a , but for -mno-cygwin .

        usr/lib/mingw/libgluix.a
Same as usr/lib/w32api/libgluix.a , but for -mno-cygwin .

	usr/share/doc/Cygwin/opengl-1.1.0-9.README
How to rebuild this package from sources.

	usr/share/doc/opengl-1.1.0/README.txt
This file.

        usr/share/doc/opengl-1.1.0/GLUIexamples/*
Source of demo programs for GLUI 2.11 beta.

        usr/share/doc/opengl-1.1.0/GLUTexamples/*
Sources of test program for GLUT 3.7.6

	usr/share/doc/opengl-1.1.0/glui_manual_v2_beta.pdf
For GLUI 2.0 beta.
From http://www.cs.unc.edu/~rademach/glui/ . Documentation for
GLUI 2.10 beta.

	usr/share/doc/opengl-1.1.0/glui_menuButton.pdf
	usr/share/doc/opengl-1.1.0/glui_panel.pdf
	usr/share/doc/opengl-1.1.0/glui_windows.pdf
For GLUI 2.11 beta.
Documentation addenda for GLUI 2.11 beta.

	usr/share/doc/opengl-1.1.0/gluix.pdf
For GLUIX 1.01.
Documentation for GLUIX 1.01.

	usr/share/doc/opengl-1.1.0/glut-3.spec.pdf
For GLUT 3.7.x
From http://reality.sgi.com/mjk_asd/glut3/glut3.html . Documentation for
GLUT 3.7.x

	usr/share/man/man3/*.3glut.gz
For GLUT 3.7.x
From http://reality.sgi.com/mjk_asd/glut3/glut3.html . Man pages for
GLUT 3.7.x


What has changed since opengl-1.1.0-9
-------------------------------------

The usr/lib/w32api/glut32.lib that was supposed to be provided was in fact 
missing. The conflict over usr/lib/w32api/libglut32.a with the w32api package 
has been resolved; that file is now part of the opengl package.


What has changed since opengl-1.1.0-8
-------------------------------------

A new symbolic link, /usr/include/opengl/GL -> /usr/include/w32api/GL was
added to be able to compile native OpenGL, GLU, GLUT, GLUI, and GLUIX program 
when the libGL-devel, libGLU-devel, libglut-devel packages are also installed. 
In that case, compiling with -I/usr/include/opengl is REQUIRED, 
otherwise the headers from libGL-devel, libGLU-devel, libglut-devel will be 
used, leading to missing functions at link time.
If the libglut-devel package is not installed, you can compile as usual.

usr/lib/glut32.lib is now provided. It should used instead of libglut32.a.

A bug introduced in opengl-1.1.0-6 was corrected in glut.h. The bug caused the
program to continue to run in the background if its window was closed by using
the close (X) icon in the title bar. If you prefer to keep that behavior, you 
must recompile with -DGLUT_DISABLE_ATEXIT_HACK .

glut-examples was added to /usr/lib.

The helloGLUT example program was improved.

FAQ.txt was added.


What has changed since opengl-1.1.0-7
-------------------------------------

This package was released to avoid conflicts with the new X11R7.0 packages, 
including FreeGlut. See http://cygwin.com/ml/cygwin-apps/2006-04/msg00079.html for details.

glui-examples were moved from /usr/bin tio /usr/lib

glut.h was moved from /usr/include/GL to /usr/include/w32api/GL

glui.h and gluix.h were moved from /usr/include to /usr/include/w32api

libglui.a and libgluix.a were moved from /usr/lib to /usr/lib/w32api


What has changed since opengl-1.1.0-6
-------------------------------------

gl.h and glu.h have been withdrawn from the package as they are now part of 
the w32api package. The w32api package is now required.

GLUT has been upgraded from 3.7.3 to 3.7.6 . Man pages are now included in
usr/share/man/man3 .

GLUI and GLUIX are now compiled for use with g++ 3.3.1 .

Documentation has been moved to usr/share/doc/opengl-1.1.0 .

Examples are provided in usr/share/doc/opengl-1.1.0/GLUIexamples and
usr/share/doc/opengl-1.1.0/GLUTexamples .


What has changed since opengl-1.1.0-5
-------------------------------------

The files in the tarball now use the path usr/... instead of ./usr/... .


What has changed since opengl-1.1.0-4
-------------------------------------

The declaration of glGetString in gl.h was creating compilation errors in the 
particular case where #include <GL/gl.h> was preceded by #include <windows.h> . 
This has been corrected.


What has changed since opengl-1.1.0-3
-------------------------------------

Added support for -mno-cygwin compilation and linking.

OpenGL header now provides only 1.1.0 functionality by default. 1.2.1
functionality can be accessed by defining GL_VERSION_1_2 .

GLU header now provides only 1.2 functionality by default. 1.3 functionality
can be accessed by defining GLU_VERSION_1_3 .

GLUT has beed upgraded from 3.7.2 to 3.7.3.

GLUI has been upgraded from 2.02 beta to 2.11 beta.

GLUIX has been upgraded from 1.00 to 1.01.


What has changed since opengl-1.1.0-2
-------------------------------------

GLUI has been updated to version 2.02.

GLUIX version 1.0 has been added to the package.

The package now installs in /usr instead of /usr/local. 
If you had a previous version of the opengl package installed,
you may delete the following files:
	/READMEopengl-1.1.0-2.txt
        /usr/local/include/GL/glut.h
        /usr/local/bin/glut32.dll
	/usr/local/doc/opengl-1.1.0/glui_manual_v2_beta.pdf
	/usr/local/doc/opengl-1.1.0/glut-3.spec.pdf
        /usr/local/include/GL/gl.h
        /usr/local/include/GL/glu.h
        /usr/local/include/glui.h
        /usr/local/lib/libglui.a


What has changed since opengl-1.2.1-1
-------------------------------------

The previous package name errounously suggested that it was for Open GL 1.2.1 
while it is in fact for the Open GL 1.1.0 DLL provided by Microsoft.

The declaration of glGetString in gl.h has been corrected to include the 
APIENTRY qualifier.

