xref: /haiku/headers/libs/glut/GL/glut.h (revision add916a7658b519defff1de5fb2cd5f93da4124f)
1eb45d168SAlexander von Gluck IV /*
2eb45d168SAlexander von Gluck IV  * Copyright 1994-1997 Mark Kilgard, All rights reserved.
3eb45d168SAlexander von Gluck IV  * Distributed under the terms of the MIT License.
4eb45d168SAlexander von Gluck IV  *
5*add916a7SAugustin Cavalier  * GPL licensing not permitted.
6*add916a7SAugustin Cavalier  *
7eb45d168SAlexander von Gluck IV  * Authors:
8eb45d168SAlexander von Gluck IV  *      Mark Kilgard
9eb45d168SAlexander von Gluck IV  */
10eb45d168SAlexander von Gluck IV #ifndef __glut_h__
11eb45d168SAlexander von Gluck IV #define __glut_h__
12eb45d168SAlexander von Gluck IV 
13eb45d168SAlexander von Gluck IV 
14eb45d168SAlexander von Gluck IV #include <GL/gl.h>
15eb45d168SAlexander von Gluck IV #include <GL/glu.h>
16eb45d168SAlexander von Gluck IV 
17eb45d168SAlexander von Gluck IV 
18eb45d168SAlexander von Gluck IV #if defined(__MINGW32__)
19eb45d168SAlexander von Gluck IV #include <GL/mesa_wgl.h>
20eb45d168SAlexander von Gluck IV #endif
21eb45d168SAlexander von Gluck IV 
22eb45d168SAlexander von Gluck IV #ifdef __cplusplus
23eb45d168SAlexander von Gluck IV extern "C" {
24eb45d168SAlexander von Gluck IV #endif
25eb45d168SAlexander von Gluck IV 
26eb45d168SAlexander von Gluck IV #if defined(_WIN32)
27eb45d168SAlexander von Gluck IV 
28eb45d168SAlexander von Gluck IV /* GLUT 3.7 now tries to avoid including <windows.h>
29eb45d168SAlexander von Gluck IV    to avoid name space pollution, but Win32's <GL/gl.h>
30eb45d168SAlexander von Gluck IV    needs APIENTRY and WINGDIAPI defined properly.
31eb45d168SAlexander von Gluck IV 
32eb45d168SAlexander von Gluck IV    tjump@spgs.com contributes:
33eb45d168SAlexander von Gluck IV    If users are building glut code on MS Windows, then they should
34eb45d168SAlexander von Gluck IV    make sure they include windows.h early, let's not get into a
35eb45d168SAlexander von Gluck IV    header definitions war since MS has proven it's capability to
36eb45d168SAlexander von Gluck IV    change header dependencies w/o publishing they have done so.
37eb45d168SAlexander von Gluck IV 
38eb45d168SAlexander von Gluck IV    So, let's not include windows.h here, as it's not really required and
39eb45d168SAlexander von Gluck IV    MS own gl/gl.h *should* include it if the dependency is there. */
40eb45d168SAlexander von Gluck IV 
41eb45d168SAlexander von Gluck IV /* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
42eb45d168SAlexander von Gluck IV    in your compile preprocessor options. */
43eb45d168SAlexander von Gluck IV # if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
44eb45d168SAlexander von Gluck IV #  pragma comment (lib, "winmm.lib")      /* link with Windows MultiMedia lib */
45eb45d168SAlexander von Gluck IV /* To enable automatic SGI OpenGL for Windows library usage for GLUT,
46eb45d168SAlexander von Gluck IV    define GLUT_USE_SGI_OPENGL in your compile preprocessor options.  */
47eb45d168SAlexander von Gluck IV #  ifdef GLUT_USE_SGI_OPENGL
48eb45d168SAlexander von Gluck IV #   pragma comment (lib, "opengl.lib")    /* link with SGI OpenGL for Windows lib */
49eb45d168SAlexander von Gluck IV #   pragma comment (lib, "glu.lib")       /* link with SGI OpenGL Utility lib */
50eb45d168SAlexander von Gluck IV #   pragma comment (lib, "glut.lib")      /* link with Win32 GLUT for SGI OpenGL lib */
51eb45d168SAlexander von Gluck IV #  else
52eb45d168SAlexander von Gluck IV #   pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib */
53eb45d168SAlexander von Gluck IV #   pragma comment (lib, "glu32.lib")     /* link with Microsoft OpenGL Utility lib */
54eb45d168SAlexander von Gluck IV #   pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib */
55eb45d168SAlexander von Gluck IV #  endif
56eb45d168SAlexander von Gluck IV # endif
57eb45d168SAlexander von Gluck IV 
58eb45d168SAlexander von Gluck IV /* To disable supression of annoying warnings about floats being promoted
59eb45d168SAlexander von Gluck IV    to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
60eb45d168SAlexander von Gluck IV    options. */
61eb45d168SAlexander von Gluck IV # ifndef GLUT_NO_WARNING_DISABLE
62eb45d168SAlexander von Gluck IV #  pragma warning (disable:4244)  /* Disable bogus VC++ 4.2 conversion warnings. */
63eb45d168SAlexander von Gluck IV #  pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
64eb45d168SAlexander von Gluck IV # endif
65eb45d168SAlexander von Gluck IV 
66eb45d168SAlexander von Gluck IV /* Win32 has an annoying issue where there are multiple C run-time
67eb45d168SAlexander von Gluck IV    libraries (CRTs).  If the executable is linked with a different CRT
68eb45d168SAlexander von Gluck IV    from the GLUT DLL, the GLUT DLL will not share the same CRT static
69eb45d168SAlexander von Gluck IV    data seen by the executable.  In particular, atexit callbacks registered
70eb45d168SAlexander von Gluck IV    in the executable will not be called if GLUT calls its (different)
71eb45d168SAlexander von Gluck IV    exit routine).  GLUT is typically built with the
72eb45d168SAlexander von Gluck IV    "/MD" option (the CRT with multithreading DLL support), but the Visual
73eb45d168SAlexander von Gluck IV    C++ linker default is "/ML" (the single threaded CRT).
74eb45d168SAlexander von Gluck IV 
75eb45d168SAlexander von Gluck IV    One workaround to this issue is requiring users to always link with
76eb45d168SAlexander von Gluck IV    the same CRT as GLUT is compiled with.  That requires users supply a
77eb45d168SAlexander von Gluck IV    non-standard option.  GLUT 3.7 has its own built-in workaround where
78eb45d168SAlexander von Gluck IV    the executable's "exit" function pointer is covertly passed to GLUT.
79eb45d168SAlexander von Gluck IV    GLUT then calls the executable's exit function pointer to ensure that
80eb45d168SAlexander von Gluck IV    any "atexit" calls registered by the application are called if GLUT
81eb45d168SAlexander von Gluck IV    needs to exit.
82eb45d168SAlexander von Gluck IV 
83eb45d168SAlexander von Gluck IV    Note that the __glut*WithExit routines should NEVER be called directly.
84eb45d168SAlexander von Gluck IV    To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
85eb45d168SAlexander von Gluck IV 
86eb45d168SAlexander von Gluck IV /* XXX This is from Win32's <process.h> */
87eb45d168SAlexander von Gluck IV # if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__cdecl)
88eb45d168SAlexander von Gluck IV    /* Define __cdecl for non-Microsoft compilers. */
89eb45d168SAlexander von Gluck IV #  define __cdecl
90eb45d168SAlexander von Gluck IV #  define GLUT_DEFINED___CDECL
91eb45d168SAlexander von Gluck IV # endif
92eb45d168SAlexander von Gluck IV # ifndef _CRTIMP
93eb45d168SAlexander von Gluck IV #  ifdef _NTSDK
94eb45d168SAlexander von Gluck IV     /* Definition compatible with NT SDK */
95eb45d168SAlexander von Gluck IV #   define _CRTIMP
96eb45d168SAlexander von Gluck IV #  else
97eb45d168SAlexander von Gluck IV     /* Current definition */
98eb45d168SAlexander von Gluck IV #   ifdef _DLL
99eb45d168SAlexander von Gluck IV #    define _CRTIMP __declspec(dllimport)
100eb45d168SAlexander von Gluck IV #   else
101eb45d168SAlexander von Gluck IV #    define _CRTIMP
102eb45d168SAlexander von Gluck IV #   endif
103eb45d168SAlexander von Gluck IV #  endif
104eb45d168SAlexander von Gluck IV #  define GLUT_DEFINED__CRTIMP
105eb45d168SAlexander von Gluck IV # endif
106eb45d168SAlexander von Gluck IV # ifndef GLUT_BUILDING_LIB
107eb45d168SAlexander von Gluck IV extern _CRTIMP void __cdecl exit(int);
108eb45d168SAlexander von Gluck IV # endif
109eb45d168SAlexander von Gluck IV 
110eb45d168SAlexander von Gluck IV /* GLUT callback calling convention for Win32. */
111eb45d168SAlexander von Gluck IV # define GLUTCALLBACK __cdecl
112eb45d168SAlexander von Gluck IV 
113eb45d168SAlexander von Gluck IV /* for callback/function pointer defs */
114eb45d168SAlexander von Gluck IV # define GLUTAPIENTRYV __cdecl
115eb45d168SAlexander von Gluck IV 
116eb45d168SAlexander von Gluck IV /* glut-win32 specific macros, defined to prevent collision with
117eb45d168SAlexander von Gluck IV    and redifinition of Windows system defs, also removes requirement of
118eb45d168SAlexander von Gluck IV    pretty much any standard windows header from this file */
119eb45d168SAlexander von Gluck IV 
120eb45d168SAlexander von Gluck IV #if (_MSC_VER >= 800) || defined(__MINGW32__) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__)
121eb45d168SAlexander von Gluck IV #	define GLUTAPIENTRY __stdcall
122eb45d168SAlexander von Gluck IV #else
123eb45d168SAlexander von Gluck IV #	define GLUTAPIENTRY
124eb45d168SAlexander von Gluck IV #endif
125eb45d168SAlexander von Gluck IV 
126eb45d168SAlexander von Gluck IV /* GLUT API entry point declarations for Win32. */
127eb45d168SAlexander von Gluck IV #if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && defined(_DLL)
128eb45d168SAlexander von Gluck IV # 	define GLUTAPI __declspec(dllexport)
129eb45d168SAlexander von Gluck IV #elif defined(_DLL)
130eb45d168SAlexander von Gluck IV #   define GLUTAPI __declspec(dllimport)
131eb45d168SAlexander von Gluck IV #else
132eb45d168SAlexander von Gluck IV #	define GLUTAPI extern
133eb45d168SAlexander von Gluck IV #endif
134eb45d168SAlexander von Gluck IV 
135eb45d168SAlexander von Gluck IV #if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA)
136eb45d168SAlexander von Gluck IV #	if !defined(MESA_MINWARN)
137eb45d168SAlexander von Gluck IV #		pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" )
138eb45d168SAlexander von Gluck IV #		pragma message( "----: and PROC typedef. If you receive compiler warnings about either ")
139eb45d168SAlexander von Gluck IV #		pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
140eb45d168SAlexander von Gluck IV #	endif
141eb45d168SAlexander von Gluck IV #	define CALLBACK __stdcall
142eb45d168SAlexander von Gluck IV 
143eb45d168SAlexander von Gluck IV #if !defined(__MINGW32__)
144eb45d168SAlexander von Gluck IV 	typedef int (GLUTAPIENTRY *PROC)();
145eb45d168SAlexander von Gluck IV 	typedef void *HGLRC;
146eb45d168SAlexander von Gluck IV 	typedef void *HDC;
147eb45d168SAlexander von Gluck IV #endif
148eb45d168SAlexander von Gluck IV typedef unsigned long COLORREF;
149eb45d168SAlexander von Gluck IV #endif
150eb45d168SAlexander von Gluck IV 
151eb45d168SAlexander von Gluck IV #if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA)
152eb45d168SAlexander von Gluck IV #	if !defined(MESA_MINWARN)
153eb45d168SAlexander von Gluck IV #		pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" )
154eb45d168SAlexander von Gluck IV #		pragma message( "----: and macros. If you receive compiler warnings about any being multiply ")
155eb45d168SAlexander von Gluck IV #		pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" )
156eb45d168SAlexander von Gluck IV #	endif
157eb45d168SAlexander von Gluck IV #	define WGL_FONT_LINES      0
158eb45d168SAlexander von Gluck IV #	define WGL_FONT_POLYGONS   1
159eb45d168SAlexander von Gluck IV #	ifdef UNICODE
160eb45d168SAlexander von Gluck IV #		define wglUseFontBitmaps  wglUseFontBitmapsW
161eb45d168SAlexander von Gluck IV #		define wglUseFontOutlines  wglUseFontOutlinesW
162eb45d168SAlexander von Gluck IV #	else
163eb45d168SAlexander von Gluck IV #		define wglUseFontBitmaps  wglUseFontBitmapsA
164eb45d168SAlexander von Gluck IV #		define wglUseFontOutlines  wglUseFontOutlinesA
165eb45d168SAlexander von Gluck IV #	endif /* !UNICODE */
166eb45d168SAlexander von Gluck IV typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
167eb45d168SAlexander von Gluck IV typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
168eb45d168SAlexander von Gluck IV #  pragma warning( push )
169eb45d168SAlexander von Gluck IV #  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
170eb45d168SAlexander von Gluck IV #  define WGLAPI __declspec(dllimport)
171eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
172eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
173eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
174eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglSwapBuffers(HDC hdc);
175eb45d168SAlexander von Gluck IV WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
176eb45d168SAlexander von Gluck IV WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
177eb45d168SAlexander von Gluck IV WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
178eb45d168SAlexander von Gluck IV WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
179eb45d168SAlexander von Gluck IV WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
180eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
181eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
182eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
183eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
184eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
185eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
186eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
187eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
188eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
189eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
190eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglShareLists(HGLRC, HGLRC);
191eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int);
192eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long);
193eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
194eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
195eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
196eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY SwapBuffers(HDC);
197eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
198eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
199eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY GetPixelFormat(HDC);
200eb45d168SAlexander von Gluck IV WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
201eb45d168SAlexander von Gluck IV #  undef WGLAPI
202eb45d168SAlexander von Gluck IV #  pragma warning( pop )
203eb45d168SAlexander von Gluck IV #endif
204eb45d168SAlexander von Gluck IV 
205eb45d168SAlexander von Gluck IV #else /* _WIN32 not defined */
206eb45d168SAlexander von Gluck IV 
207eb45d168SAlexander von Gluck IV /* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */
208eb45d168SAlexander von Gluck IV #  define GLUTAPIENTRY GLAPIENTRY
209eb45d168SAlexander von Gluck IV #  define GLUTAPIENTRYV
210eb45d168SAlexander von Gluck IV #  define GLUTCALLBACK
211eb45d168SAlexander von Gluck IV #  define GLUTAPI extern
212eb45d168SAlexander von Gluck IV 
213eb45d168SAlexander von Gluck IV #endif
214eb45d168SAlexander von Gluck IV 
215eb45d168SAlexander von Gluck IV 
216eb45d168SAlexander von Gluck IV /**
217eb45d168SAlexander von Gluck IV  GLUT API revision history:
218eb45d168SAlexander von Gluck IV 
219eb45d168SAlexander von Gluck IV  GLUT_API_VERSION is updated to reflect incompatible GLUT
220eb45d168SAlexander von Gluck IV  API changes (interface changes, semantic changes, deletions,
221eb45d168SAlexander von Gluck IV  or additions).
222eb45d168SAlexander von Gluck IV 
223eb45d168SAlexander von Gluck IV  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
224eb45d168SAlexander von Gluck IV 
225eb45d168SAlexander von Gluck IV  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
226eb45d168SAlexander von Gluck IV  extension.  Supports new input devices like tablet, dial and button
227eb45d168SAlexander von Gluck IV  box, and Spaceball.  Easy to query OpenGL extensions.
228eb45d168SAlexander von Gluck IV 
229eb45d168SAlexander von Gluck IV  GLUT_API_VERSION=3  glutMenuStatus added.
230eb45d168SAlexander von Gluck IV 
231eb45d168SAlexander von Gluck IV  GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
232eb45d168SAlexander von Gluck IV  glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
233eb45d168SAlexander von Gluck IV  video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
234eb45d168SAlexander von Gluck IV  glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
235eb45d168SAlexander von Gluck IV  glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
236eb45d168SAlexander von Gluck IV 
237eb45d168SAlexander von Gluck IV  GLUT_API_VERSION=5  glutGetProcAddress (added by BrianP)
238eb45d168SAlexander von Gluck IV **/
239eb45d168SAlexander von Gluck IV #ifndef GLUT_API_VERSION  /* allow this to be overriden */
240eb45d168SAlexander von Gluck IV #define GLUT_API_VERSION		5
241eb45d168SAlexander von Gluck IV #endif
242eb45d168SAlexander von Gluck IV 
243eb45d168SAlexander von Gluck IV /**
244eb45d168SAlexander von Gluck IV  GLUT implementation revision history:
245eb45d168SAlexander von Gluck IV 
246eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
247eb45d168SAlexander von Gluck IV  API revisions and implementation revisions (ie, bug fixes).
248eb45d168SAlexander von Gluck IV 
249eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
250eb45d168SAlexander von Gluck IV  GLUT Xlib-based implementation.  11/29/94
251eb45d168SAlexander von Gluck IV 
252eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
253eb45d168SAlexander von Gluck IV  GLUT Xlib-based implementation providing GLUT version 2
254eb45d168SAlexander von Gluck IV  interfaces.
255eb45d168SAlexander von Gluck IV 
256eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
257eb45d168SAlexander von Gluck IV 
258eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
259eb45d168SAlexander von Gluck IV 
260eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
261eb45d168SAlexander von Gluck IV 
262eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
263eb45d168SAlexander von Gluck IV 
264eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
265eb45d168SAlexander von Gluck IV  and video resize.  1/3/97
266eb45d168SAlexander von Gluck IV 
267eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
268eb45d168SAlexander von Gluck IV 
269eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
270eb45d168SAlexander von Gluck IV 
271eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
272eb45d168SAlexander von Gluck IV 
273eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
274eb45d168SAlexander von Gluck IV 
275eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
276eb45d168SAlexander von Gluck IV 
277eb45d168SAlexander von Gluck IV  GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
278eb45d168SAlexander von Gluck IV **/
279eb45d168SAlexander von Gluck IV #ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
280eb45d168SAlexander von Gluck IV #define GLUT_XLIB_IMPLEMENTATION	15
281eb45d168SAlexander von Gluck IV #endif
282eb45d168SAlexander von Gluck IV 
283eb45d168SAlexander von Gluck IV /* Display mode bit masks. */
284eb45d168SAlexander von Gluck IV #define GLUT_RGB			0
285eb45d168SAlexander von Gluck IV #define GLUT_RGBA			GLUT_RGB
286eb45d168SAlexander von Gluck IV #define GLUT_INDEX			1
287eb45d168SAlexander von Gluck IV #define GLUT_SINGLE			0
288eb45d168SAlexander von Gluck IV #define GLUT_DOUBLE			2
289eb45d168SAlexander von Gluck IV #define GLUT_ACCUM			4
290eb45d168SAlexander von Gluck IV #define GLUT_ALPHA			8
291eb45d168SAlexander von Gluck IV #define GLUT_DEPTH			16
292eb45d168SAlexander von Gluck IV #define GLUT_STENCIL			32
293eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
294eb45d168SAlexander von Gluck IV #define GLUT_MULTISAMPLE		128
295eb45d168SAlexander von Gluck IV #define GLUT_STEREO			256
296eb45d168SAlexander von Gluck IV #endif
297eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
298eb45d168SAlexander von Gluck IV #define GLUT_LUMINANCE			512
299eb45d168SAlexander von Gluck IV #endif
300eb45d168SAlexander von Gluck IV 
301eb45d168SAlexander von Gluck IV /* Mouse buttons. */
302eb45d168SAlexander von Gluck IV #define GLUT_LEFT_BUTTON		0
303eb45d168SAlexander von Gluck IV #define GLUT_MIDDLE_BUTTON		1
304eb45d168SAlexander von Gluck IV #define GLUT_RIGHT_BUTTON		2
305eb45d168SAlexander von Gluck IV 
306eb45d168SAlexander von Gluck IV /* Mouse button  state. */
307eb45d168SAlexander von Gluck IV #define GLUT_DOWN			0
308eb45d168SAlexander von Gluck IV #define GLUT_UP				1
309eb45d168SAlexander von Gluck IV 
310eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
311eb45d168SAlexander von Gluck IV /* function keys */
312eb45d168SAlexander von Gluck IV #define GLUT_KEY_F1			1
313eb45d168SAlexander von Gluck IV #define GLUT_KEY_F2			2
314eb45d168SAlexander von Gluck IV #define GLUT_KEY_F3			3
315eb45d168SAlexander von Gluck IV #define GLUT_KEY_F4			4
316eb45d168SAlexander von Gluck IV #define GLUT_KEY_F5			5
317eb45d168SAlexander von Gluck IV #define GLUT_KEY_F6			6
318eb45d168SAlexander von Gluck IV #define GLUT_KEY_F7			7
319eb45d168SAlexander von Gluck IV #define GLUT_KEY_F8			8
320eb45d168SAlexander von Gluck IV #define GLUT_KEY_F9			9
321eb45d168SAlexander von Gluck IV #define GLUT_KEY_F10			10
322eb45d168SAlexander von Gluck IV #define GLUT_KEY_F11			11
323eb45d168SAlexander von Gluck IV #define GLUT_KEY_F12			12
324eb45d168SAlexander von Gluck IV /* directional keys */
325eb45d168SAlexander von Gluck IV #define GLUT_KEY_LEFT			100
326eb45d168SAlexander von Gluck IV #define GLUT_KEY_UP			101
327eb45d168SAlexander von Gluck IV #define GLUT_KEY_RIGHT			102
328eb45d168SAlexander von Gluck IV #define GLUT_KEY_DOWN			103
329eb45d168SAlexander von Gluck IV #define GLUT_KEY_PAGE_UP		104
330eb45d168SAlexander von Gluck IV #define GLUT_KEY_PAGE_DOWN		105
331eb45d168SAlexander von Gluck IV #define GLUT_KEY_HOME			106
332eb45d168SAlexander von Gluck IV #define GLUT_KEY_END			107
333eb45d168SAlexander von Gluck IV #define GLUT_KEY_INSERT			108
334eb45d168SAlexander von Gluck IV #endif
335eb45d168SAlexander von Gluck IV 
336eb45d168SAlexander von Gluck IV /* Entry/exit  state. */
337eb45d168SAlexander von Gluck IV #define GLUT_LEFT			0
338eb45d168SAlexander von Gluck IV #define GLUT_ENTERED			1
339eb45d168SAlexander von Gluck IV 
340eb45d168SAlexander von Gluck IV /* Menu usage  state. */
341eb45d168SAlexander von Gluck IV #define GLUT_MENU_NOT_IN_USE		0
342eb45d168SAlexander von Gluck IV #define GLUT_MENU_IN_USE		1
343eb45d168SAlexander von Gluck IV 
344eb45d168SAlexander von Gluck IV /* Visibility  state. */
345eb45d168SAlexander von Gluck IV #define GLUT_NOT_VISIBLE		0
346eb45d168SAlexander von Gluck IV #define GLUT_VISIBLE			1
347eb45d168SAlexander von Gluck IV 
348eb45d168SAlexander von Gluck IV /* Window status  state. */
349eb45d168SAlexander von Gluck IV #define GLUT_HIDDEN			0
350eb45d168SAlexander von Gluck IV #define GLUT_FULLY_RETAINED		1
351eb45d168SAlexander von Gluck IV #define GLUT_PARTIALLY_RETAINED		2
352eb45d168SAlexander von Gluck IV #define GLUT_FULLY_COVERED		3
353eb45d168SAlexander von Gluck IV 
354eb45d168SAlexander von Gluck IV /* Color index component selection values. */
355eb45d168SAlexander von Gluck IV #define GLUT_RED			0
356eb45d168SAlexander von Gluck IV #define GLUT_GREEN			1
357eb45d168SAlexander von Gluck IV #define GLUT_BLUE			2
358eb45d168SAlexander von Gluck IV 
359eb45d168SAlexander von Gluck IV /* Layers for use. */
360eb45d168SAlexander von Gluck IV #define GLUT_NORMAL			0
361eb45d168SAlexander von Gluck IV #define GLUT_OVERLAY			1
362eb45d168SAlexander von Gluck IV 
363eb45d168SAlexander von Gluck IV #if defined(_WIN32) || defined (GLUT_IMPORT_LIB)
364eb45d168SAlexander von Gluck IV /* Stroke font constants (use these in GLUT program). */
365eb45d168SAlexander von Gluck IV #define GLUT_STROKE_ROMAN		((void*)0)
366eb45d168SAlexander von Gluck IV #define GLUT_STROKE_MONO_ROMAN		((void*)1)
367eb45d168SAlexander von Gluck IV 
368eb45d168SAlexander von Gluck IV /* Bitmap font constants (use these in GLUT program). */
369eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_9_BY_15		((void*)2)
370eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_8_BY_13		((void*)3)
371eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_TIMES_ROMAN_10	((void*)4)
372eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_TIMES_ROMAN_24	((void*)5)
373eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
374eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_10	((void*)6)
375eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_12	((void*)7)
376eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_18	((void*)8)
377eb45d168SAlexander von Gluck IV #endif
378eb45d168SAlexander von Gluck IV #else
379eb45d168SAlexander von Gluck IV /* Stroke font opaque addresses (use constants instead in source code). */
380eb45d168SAlexander von Gluck IV GLUTAPI void *glutStrokeRoman;
381eb45d168SAlexander von Gluck IV GLUTAPI void *glutStrokeMonoRoman;
382eb45d168SAlexander von Gluck IV 
383eb45d168SAlexander von Gluck IV /* Stroke font constants (use these in GLUT program). */
384eb45d168SAlexander von Gluck IV #define GLUT_STROKE_ROMAN		(&glutStrokeRoman)
385eb45d168SAlexander von Gluck IV #define GLUT_STROKE_MONO_ROMAN		(&glutStrokeMonoRoman)
386eb45d168SAlexander von Gluck IV 
387eb45d168SAlexander von Gluck IV /* Bitmap font opaque addresses (use constants instead in source code). */
388eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmap9By15;
389eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmap8By13;
390eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmapTimesRoman10;
391eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmapTimesRoman24;
392eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmapHelvetica10;
393eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmapHelvetica12;
394eb45d168SAlexander von Gluck IV GLUTAPI void *glutBitmapHelvetica18;
395eb45d168SAlexander von Gluck IV 
396eb45d168SAlexander von Gluck IV /* Bitmap font constants (use these in GLUT program). */
397eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_9_BY_15		(&glutBitmap9By15)
398eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_8_BY_13		(&glutBitmap8By13)
399eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_TIMES_ROMAN_10	(&glutBitmapTimesRoman10)
400eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_TIMES_ROMAN_24	(&glutBitmapTimesRoman24)
401eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
402eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_10	(&glutBitmapHelvetica10)
403eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_12	(&glutBitmapHelvetica12)
404eb45d168SAlexander von Gluck IV #define GLUT_BITMAP_HELVETICA_18	(&glutBitmapHelvetica18)
405eb45d168SAlexander von Gluck IV #endif
406eb45d168SAlexander von Gluck IV #endif
407eb45d168SAlexander von Gluck IV 
408eb45d168SAlexander von Gluck IV /* glutGet parameters. */
409eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_X			100
410eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_Y			101
411eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_WIDTH		102
412eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_HEIGHT		103
413eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_BUFFER_SIZE		104
414eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_STENCIL_SIZE	105
415eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_DEPTH_SIZE		106
416eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_RED_SIZE		107
417eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_GREEN_SIZE		108
418eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_BLUE_SIZE		109
419eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_ALPHA_SIZE		110
420eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_ACCUM_RED_SIZE	111
421eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_ACCUM_GREEN_SIZE	112
422eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_ACCUM_BLUE_SIZE	113
423eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_ACCUM_ALPHA_SIZE	114
424eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_DOUBLEBUFFER	115
425eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_RGBA		116
426eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_PARENT		117
427eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_NUM_CHILDREN	118
428eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_COLORMAP_SIZE	119
429eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
430eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_NUM_SAMPLES		120
431eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_STEREO		121
432eb45d168SAlexander von Gluck IV #endif
433eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
434eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_CURSOR		122
435eb45d168SAlexander von Gluck IV #endif
436eb45d168SAlexander von Gluck IV #define GLUT_SCREEN_WIDTH		200
437eb45d168SAlexander von Gluck IV #define GLUT_SCREEN_HEIGHT		201
438eb45d168SAlexander von Gluck IV #define GLUT_SCREEN_WIDTH_MM		202
439eb45d168SAlexander von Gluck IV #define GLUT_SCREEN_HEIGHT_MM		203
440eb45d168SAlexander von Gluck IV #define GLUT_MENU_NUM_ITEMS		300
441eb45d168SAlexander von Gluck IV #define GLUT_DISPLAY_MODE_POSSIBLE	400
442eb45d168SAlexander von Gluck IV #define GLUT_INIT_WINDOW_X		500
443eb45d168SAlexander von Gluck IV #define GLUT_INIT_WINDOW_Y		501
444eb45d168SAlexander von Gluck IV #define GLUT_INIT_WINDOW_WIDTH		502
445eb45d168SAlexander von Gluck IV #define GLUT_INIT_WINDOW_HEIGHT		503
446eb45d168SAlexander von Gluck IV #define GLUT_INIT_DISPLAY_MODE		504
447eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
448eb45d168SAlexander von Gluck IV #define GLUT_ELAPSED_TIME		700
449eb45d168SAlexander von Gluck IV #endif
450eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
451eb45d168SAlexander von Gluck IV #define GLUT_WINDOW_FORMAT_ID		123
452eb45d168SAlexander von Gluck IV #endif
453eb45d168SAlexander von Gluck IV 
454eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
455eb45d168SAlexander von Gluck IV /* glutDeviceGet parameters. */
456eb45d168SAlexander von Gluck IV #define GLUT_HAS_KEYBOARD		600
457eb45d168SAlexander von Gluck IV #define GLUT_HAS_MOUSE			601
458eb45d168SAlexander von Gluck IV #define GLUT_HAS_SPACEBALL		602
459eb45d168SAlexander von Gluck IV #define GLUT_HAS_DIAL_AND_BUTTON_BOX	603
460eb45d168SAlexander von Gluck IV #define GLUT_HAS_TABLET			604
461eb45d168SAlexander von Gluck IV #define GLUT_NUM_MOUSE_BUTTONS		605
462eb45d168SAlexander von Gluck IV #define GLUT_NUM_SPACEBALL_BUTTONS	606
463eb45d168SAlexander von Gluck IV #define GLUT_NUM_BUTTON_BOX_BUTTONS	607
464eb45d168SAlexander von Gluck IV #define GLUT_NUM_DIALS			608
465eb45d168SAlexander von Gluck IV #define GLUT_NUM_TABLET_BUTTONS		609
466eb45d168SAlexander von Gluck IV #endif
467eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
468eb45d168SAlexander von Gluck IV #define GLUT_DEVICE_IGNORE_KEY_REPEAT   610
469eb45d168SAlexander von Gluck IV #define GLUT_DEVICE_KEY_REPEAT          611
470eb45d168SAlexander von Gluck IV #define GLUT_HAS_JOYSTICK		612
471eb45d168SAlexander von Gluck IV #define GLUT_OWNS_JOYSTICK		613
472eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_BUTTONS		614
473eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_AXES		615
474eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_POLL_RATE		616
475eb45d168SAlexander von Gluck IV #endif
476eb45d168SAlexander von Gluck IV 
477eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
478eb45d168SAlexander von Gluck IV /* glutLayerGet parameters. */
479eb45d168SAlexander von Gluck IV #define GLUT_OVERLAY_POSSIBLE           800
480eb45d168SAlexander von Gluck IV #define GLUT_LAYER_IN_USE		801
481eb45d168SAlexander von Gluck IV #define GLUT_HAS_OVERLAY		802
482eb45d168SAlexander von Gluck IV #define GLUT_TRANSPARENT_INDEX		803
483eb45d168SAlexander von Gluck IV #define GLUT_NORMAL_DAMAGED		804
484eb45d168SAlexander von Gluck IV #define GLUT_OVERLAY_DAMAGED		805
485eb45d168SAlexander von Gluck IV 
486eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
487eb45d168SAlexander von Gluck IV /* glutVideoResizeGet parameters. */
488eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_POSSIBLE	900
489eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_IN_USE	901
490eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_X_DELTA	902
491eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_Y_DELTA	903
492eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_WIDTH_DELTA	904
493eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA	905
494eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_X		906
495eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_Y		907
496eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_WIDTH		908
497eb45d168SAlexander von Gluck IV #define GLUT_VIDEO_RESIZE_HEIGHT	909
498eb45d168SAlexander von Gluck IV #endif
499eb45d168SAlexander von Gluck IV 
500eb45d168SAlexander von Gluck IV /* glutUseLayer parameters. */
501eb45d168SAlexander von Gluck IV #define GLUT_NORMAL			0
502eb45d168SAlexander von Gluck IV #define GLUT_OVERLAY			1
503eb45d168SAlexander von Gluck IV 
504eb45d168SAlexander von Gluck IV /* glutGetModifiers return mask. */
505eb45d168SAlexander von Gluck IV #define GLUT_ACTIVE_SHIFT               1
506eb45d168SAlexander von Gluck IV #define GLUT_ACTIVE_CTRL                2
507eb45d168SAlexander von Gluck IV #define GLUT_ACTIVE_ALT                 4
508eb45d168SAlexander von Gluck IV 
509eb45d168SAlexander von Gluck IV /* glutSetCursor parameters. */
510eb45d168SAlexander von Gluck IV /* Basic arrows. */
511eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_RIGHT_ARROW		0
512eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_LEFT_ARROW		1
513eb45d168SAlexander von Gluck IV /* Symbolic cursor shapes. */
514eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_INFO		2
515eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_DESTROY		3
516eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_HELP		4
517eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_CYCLE		5
518eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_SPRAY		6
519eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_WAIT		7
520eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_TEXT		8
521eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_CROSSHAIR		9
522eb45d168SAlexander von Gluck IV /* Directional cursors. */
523eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_UP_DOWN		10
524eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_LEFT_RIGHT		11
525eb45d168SAlexander von Gluck IV /* Sizing cursors. */
526eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_TOP_SIDE		12
527eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_BOTTOM_SIDE		13
528eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_LEFT_SIDE		14
529eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_RIGHT_SIDE		15
530eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_TOP_LEFT_CORNER	16
531eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_TOP_RIGHT_CORNER	17
532eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER	18
533eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_BOTTOM_LEFT_CORNER	19
534eb45d168SAlexander von Gluck IV /* Inherit from parent window. */
535eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_INHERIT		100
536eb45d168SAlexander von Gluck IV /* Blank cursor. */
537eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_NONE		101
538eb45d168SAlexander von Gluck IV /* Fullscreen crosshair (if available). */
539eb45d168SAlexander von Gluck IV #define GLUT_CURSOR_FULL_CROSSHAIR	102
540eb45d168SAlexander von Gluck IV #endif
541eb45d168SAlexander von Gluck IV 
542eb45d168SAlexander von Gluck IV /* GLUT initialization sub-API. */
543eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv);
544eb45d168SAlexander von Gluck IV #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
545eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
546eb45d168SAlexander von Gluck IV #ifndef GLUT_BUILDING_LIB
glutInit_ATEXIT_HACK(int * argcp,char ** argv)547eb45d168SAlexander von Gluck IV static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
548eb45d168SAlexander von Gluck IV #define glutInit glutInit_ATEXIT_HACK
549eb45d168SAlexander von Gluck IV #endif
550eb45d168SAlexander von Gluck IV #endif
551eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode);
552eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
553eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string);
554eb45d168SAlexander von Gluck IV #endif
555eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y);
556eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height);
557eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutMainLoop(void);
558eb45d168SAlexander von Gluck IV 
559eb45d168SAlexander von Gluck IV /* GLUT window sub-API. */
560eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title);
561eb45d168SAlexander von Gluck IV #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
562eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
563eb45d168SAlexander von Gluck IV #ifndef GLUT_BUILDING_LIB
glutCreateWindow_ATEXIT_HACK(const char * title)564eb45d168SAlexander von Gluck IV static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
565eb45d168SAlexander von Gluck IV #define glutCreateWindow glutCreateWindow_ATEXIT_HACK
566eb45d168SAlexander von Gluck IV #endif
567eb45d168SAlexander von Gluck IV #endif
568eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
569eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win);
570eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void);
571eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
572eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win);
573eb45d168SAlexander von Gluck IV #endif
574eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void);
575eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutGetWindow(void);
576eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetWindow(int win);
577eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title);
578eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title);
579eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y);
580eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height);
581eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPopWindow(void);
582eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPushWindow(void);
583eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void);
584eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutShowWindow(void);
585eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutHideWindow(void);
586eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
587eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutFullScreen(void);
588eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor);
589eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
590eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y);
591eb45d168SAlexander von Gluck IV #endif
592eb45d168SAlexander von Gluck IV 
593eb45d168SAlexander von Gluck IV /* GLUT overlay sub-API. */
594eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void);
595eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void);
596eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer);
597eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void);
598eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
599eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win);
600eb45d168SAlexander von Gluck IV #endif
601eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutShowOverlay(void);
602eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutHideOverlay(void);
603eb45d168SAlexander von Gluck IV #endif
604eb45d168SAlexander von Gluck IV 
605eb45d168SAlexander von Gluck IV /* GLUT menu sub-API. */
606eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int));
607eb45d168SAlexander von Gluck IV #if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
608eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int));
609eb45d168SAlexander von Gluck IV #ifndef GLUT_BUILDING_LIB
glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK * func)(int))610eb45d168SAlexander von Gluck IV static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); }
611eb45d168SAlexander von Gluck IV #define glutCreateMenu glutCreateMenu_ATEXIT_HACK
612eb45d168SAlexander von Gluck IV #endif
613eb45d168SAlexander von Gluck IV #endif
614eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu);
615eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutGetMenu(void);
616eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu);
617eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value);
618eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu);
619eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
620eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
621eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item);
622eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button);
623eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button);
624eb45d168SAlexander von Gluck IV 
625eb45d168SAlexander von Gluck IV /* GLUT window callback sub-API. */
626eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
627eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height));
628eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
629eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
630eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
631eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
632eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state));
633eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state));
634eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void));
635eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value);
636eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state));
637eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
638eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
639eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
640eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
641eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state));
642eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state));
643eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value));
644eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
645eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
646eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
647eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y));
648eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void));
649eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
650eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state));
651eb45d168SAlexander von Gluck IV #endif
652eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
653eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
654eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
655eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
656eb45d168SAlexander von Gluck IV #endif
657eb45d168SAlexander von Gluck IV #endif
658eb45d168SAlexander von Gluck IV #endif
659eb45d168SAlexander von Gluck IV 
660eb45d168SAlexander von Gluck IV /* GLUT color index sub-API. */
661eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetColor(int ndx, GLfloat red, GLfloat green, GLfloat blue);
662eb45d168SAlexander von Gluck IV GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component);
663eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win);
664eb45d168SAlexander von Gluck IV 
665eb45d168SAlexander von Gluck IV /* GLUT state retrieval sub-API. */
666eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutGet(GLenum type);
667eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type);
668eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 2)
669eb45d168SAlexander von Gluck IV /* GLUT extension support sub-API */
670eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name);
671eb45d168SAlexander von Gluck IV #endif
672eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 3)
673eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutGetModifiers(void);
674eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type);
675eb45d168SAlexander von Gluck IV #endif
676eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 5)
677eb45d168SAlexander von Gluck IV typedef void (*GLUTproc)();
678eb45d168SAlexander von Gluck IV GLUTAPI GLUTproc GLUTAPIENTRY glutGetProcAddress(const char *procName);
679eb45d168SAlexander von Gluck IV #endif
680eb45d168SAlexander von Gluck IV 
681eb45d168SAlexander von Gluck IV /* GLUT font sub-API */
682eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character);
683eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character);
684eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character);
685eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character);
686eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
687eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string);
688eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string);
689eb45d168SAlexander von Gluck IV #endif
690eb45d168SAlexander von Gluck IV 
691eb45d168SAlexander von Gluck IV /* GLUT pre-built models sub-API */
692eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
693eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
694eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
695eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
696eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size);
697eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size);
698eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
699eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
700eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void);
701eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void);
702eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size);
703eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size);
704eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void);
705eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void);
706eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void);
707eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void);
708eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void);
709eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void);
710eb45d168SAlexander von Gluck IV 
711eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
712eb45d168SAlexander von Gluck IV /* GLUT video resize sub-API. */
713eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param);
714eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void);
715eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void);
716eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height);
717eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height);
718eb45d168SAlexander von Gluck IV 
719eb45d168SAlexander von Gluck IV /* GLUT debugging sub-API. */
720eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutReportErrors(void);
721eb45d168SAlexander von Gluck IV #endif
722eb45d168SAlexander von Gluck IV 
723eb45d168SAlexander von Gluck IV #if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
724eb45d168SAlexander von Gluck IV /* GLUT device control sub-API. */
725eb45d168SAlexander von Gluck IV /* glutSetKeyRepeat modes. */
726eb45d168SAlexander von Gluck IV #define GLUT_KEY_REPEAT_OFF		0
727eb45d168SAlexander von Gluck IV #define GLUT_KEY_REPEAT_ON		1
728eb45d168SAlexander von Gluck IV #define GLUT_KEY_REPEAT_DEFAULT		2
729eb45d168SAlexander von Gluck IV 
730eb45d168SAlexander von Gluck IV /* Joystick button masks. */
731eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_BUTTON_A		1
732eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_BUTTON_B		2
733eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_BUTTON_C		4
734eb45d168SAlexander von Gluck IV #define GLUT_JOYSTICK_BUTTON_D		8
735eb45d168SAlexander von Gluck IV 
736eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore);
737eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode);
738eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void);
739eb45d168SAlexander von Gluck IV 
740eb45d168SAlexander von Gluck IV /* GLUT game mode sub-API. */
741eb45d168SAlexander von Gluck IV /* glutGameModeGet. */
742eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_ACTIVE           0
743eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_POSSIBLE         1
744eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_WIDTH            2
745eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_HEIGHT           3
746eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_PIXEL_DEPTH      4
747eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_REFRESH_RATE     5
748eb45d168SAlexander von Gluck IV #define GLUT_GAME_MODE_DISPLAY_CHANGED  6
749eb45d168SAlexander von Gluck IV 
750eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string);
751eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void);
752eb45d168SAlexander von Gluck IV GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void);
753eb45d168SAlexander von Gluck IV GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode);
754eb45d168SAlexander von Gluck IV #endif
755eb45d168SAlexander von Gluck IV 
756eb45d168SAlexander von Gluck IV #ifdef __cplusplus
757eb45d168SAlexander von Gluck IV }
758eb45d168SAlexander von Gluck IV #endif
759eb45d168SAlexander von Gluck IV 
760eb45d168SAlexander von Gluck IV 
761eb45d168SAlexander von Gluck IV #endif                  /* __glut_h__ */
762