kusano 7d535a
#ifndef __glut_h__
kusano 7d535a
#define __glut_h__
kusano 7d535a
kusano 7d535a
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
kusano 7d535a
kusano 7d535a
/* This program is freely distributable without licensing fees  and is
kusano 7d535a
   provided without guarantee or warrantee expressed or  implied. This
kusano 7d535a
   program is -not- in the public domain. */
kusano 7d535a
kusano 7d535a
#if defined(_WIN32)
kusano 7d535a
kusano 7d535a
/* GLUT 3.7 now tries to avoid including <windows.h></windows.h>
kusano 7d535a
   to avoid name space pollution, but Win32's <gl gl.h=""> </gl>
kusano 7d535a
   needs APIENTRY and WINGDIAPI defined properly. */
kusano 7d535a
# if 0
kusano 7d535a
   /* This would put tons of macros and crap in our clean name space. */
kusano 7d535a
#  define  WIN32_LEAN_AND_MEAN
kusano 7d535a
#  include <windows.h></windows.h>
kusano 7d535a
# else
kusano 7d535a
   /* XXX This is from Win32's <windef.h> */</windef.h>
kusano 7d535a
#  ifndef APIENTRY
kusano 7d535a
#   define GLUT_APIENTRY_DEFINED
kusano 7d535a
#   if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
kusano 7d535a
#    define APIENTRY    __stdcall
kusano 7d535a
#   else
kusano 7d535a
#    define APIENTRY
kusano 7d535a
#   endif
kusano 7d535a
#  endif
kusano 7d535a
   /* XXX This is from Win32's <winnt.h> */</winnt.h>
kusano 7d535a
#  ifndef CALLBACK
kusano 7d535a
#   if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__)
kusano 7d535a
#    define CALLBACK __stdcall
kusano 7d535a
#   else
kusano 7d535a
#    define CALLBACK
kusano 7d535a
#   endif
kusano 7d535a
#  endif
kusano 7d535a
   /* XXX Hack for lcc compiler.  It doesn't support __declspec(dllimport), just __stdcall. */
kusano 7d535a
#  if defined( __LCC__ )
kusano 7d535a
#   undef WINGDIAPI
kusano 7d535a
#   define WINGDIAPI __stdcall
kusano 7d535a
#  else
kusano 7d535a
   /* XXX This is from Win32's <wingdi.h> and <winnt.h> */</winnt.h></wingdi.h>
kusano 7d535a
#   ifndef WINGDIAPI
kusano 7d535a
#    define GLUT_WINGDIAPI_DEFINED
kusano 7d535a
#    define WINGDIAPI __declspec(dllimport)
kusano 7d535a
#   endif
kusano 7d535a
#  endif
kusano 7d535a
   /* XXX This is from Win32's <ctype.h> */</ctype.h>
kusano 7d535a
#  ifndef _WCHAR_T_DEFINED
kusano 7d535a
typedef unsigned short wchar_t;
kusano 7d535a
#   define _WCHAR_T_DEFINED
kusano 7d535a
#  endif
kusano 7d535a
# endif
kusano 7d535a
kusano 7d535a
/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
kusano 7d535a
   in your compile preprocessor options. */
kusano 7d535a
# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
kusano 7d535a
#  pragma comment (lib, "winmm.lib")      /* link with Windows MultiMedia lib */
kusano 7d535a
/* To enable automatic SGI OpenGL for Windows library usage for GLUT,
kusano 7d535a
   define GLUT_USE_SGI_OPENGL in your compile preprocessor options.  */
kusano 7d535a
#  ifdef GLUT_USE_SGI_OPENGL
kusano 7d535a
#   pragma comment (lib, "opengl.lib")    /* link with SGI OpenGL for Windows lib */
kusano 7d535a
#   pragma comment (lib, "glu.lib")       /* link with SGI OpenGL Utility lib */
kusano 7d535a
#   pragma comment (lib, "glut.lib")      /* link with Win32 GLUT for SGI OpenGL lib */
kusano 7d535a
#  else
kusano 7d535a
#   pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib */
kusano 7d535a
#   pragma comment (lib, "glu32.lib")     /* link with Microsoft OpenGL Utility lib */
kusano 7d535a
#   pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib */
kusano 7d535a
#  endif
kusano 7d535a
# endif
kusano 7d535a
kusano 7d535a
/* To disable supression of annoying warnings about floats being promoted
kusano 7d535a
   to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
kusano 7d535a
   options. */
kusano 7d535a
# ifndef GLUT_NO_WARNING_DISABLE
kusano 7d535a
#  pragma warning (disable:4244)  /* Disable bogus VC++ 4.2 conversion warnings. */
kusano 7d535a
#  pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
kusano 7d535a
# endif
kusano 7d535a
kusano 7d535a
/* Win32 has an annoying issue where there are multiple C run-time
kusano 7d535a
   libraries (CRTs).  If the executable is linked with a different CRT
kusano 7d535a
   from the GLUT DLL, the GLUT DLL will not share the same CRT static
kusano 7d535a
   data seen by the executable.  In particular, atexit callbacks registered
kusano 7d535a
   in the executable will not be called if GLUT calls its (different)
kusano 7d535a
   exit routine).  GLUT is typically built with the
kusano 7d535a
   "/MD" option (the CRT with multithreading DLL support), but the Visual
kusano 7d535a
   C++ linker default is "/ML" (the single threaded CRT).
kusano 7d535a
kusano 7d535a
   One workaround to this issue is requiring users to always link with
kusano 7d535a
   the same CRT as GLUT is compiled with.  That requires users supply a
kusano 7d535a
   non-standard option.  GLUT 3.7 has its own built-in workaround where
kusano 7d535a
   the executable's "exit" function pointer is covertly passed to GLUT.
kusano 7d535a
   GLUT then calls the executable's exit function pointer to ensure that
kusano 7d535a
   any "atexit" calls registered by the application are called if GLUT
kusano 7d535a
   needs to exit.
kusano 7d535a
kusano 7d535a
   Note that the __glut*WithExit routines should NEVER be called directly.
kusano 7d535a
   To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
kusano 7d535a
kusano 7d535a
/* XXX This is from Win32's <process.h> */</process.h>
kusano 7d535a
# if !defined(_MSC_VER) && !defined(__cdecl)
kusano 7d535a
   /* Define __cdecl for non-Microsoft compilers. */
kusano 7d535a
#  define __cdecl
kusano 7d535a
#  define GLUT_DEFINED___CDECL
kusano 7d535a
# endif
kusano 7d535a
# ifndef _CRTIMP
kusano 7d535a
#  ifdef _NTSDK
kusano 7d535a
    /* Definition compatible with NT SDK */
kusano 7d535a
#   define _CRTIMP
kusano 7d535a
#  else
kusano 7d535a
    /* Current definition */
kusano 7d535a
#   ifdef _DLL
kusano 7d535a
#    define _CRTIMP __declspec(dllimport)
kusano 7d535a
#   else
kusano 7d535a
#    define _CRTIMP
kusano 7d535a
#   endif
kusano 7d535a
#  endif
kusano 7d535a
#  define GLUT_DEFINED__CRTIMP
kusano 7d535a
# endif
kusano 7d535a
kusano 7d535a
/* GLUT API entry point declarations for Win32. */
kusano 7d535a
# ifdef GLUT_BUILDING_LIB
kusano 7d535a
#  define GLUTAPI __declspec(dllexport)
kusano 7d535a
# else
kusano 7d535a
#  ifdef _DLL
kusano 7d535a
#   define GLUTAPI __declspec(dllimport)
kusano 7d535a
#  else
kusano 7d535a
#   define GLUTAPI extern
kusano 7d535a
#  endif
kusano 7d535a
# endif
kusano 7d535a
kusano 7d535a
/* GLUT callback calling convention for Win32. */
kusano 7d535a
# define GLUTCALLBACK __cdecl
kusano 7d535a
kusano 7d535a
#endif  /* _WIN32 */
kusano 7d535a
kusano 7d535a
#include <gl gl.h=""></gl>
kusano 7d535a
#include <gl glu.h=""></gl>
kusano 7d535a
kusano 7d535a
#ifdef __cplusplus
kusano 7d535a
extern "C" {
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if defined(_WIN32)
kusano 7d535a
# ifndef GLUT_BUILDING_LIB
kusano 7d535a
extern _CRTIMP void __cdecl exit(int);
kusano 7d535a
# endif
kusano 7d535a
#else
kusano 7d535a
/* non-Win32 case. */
kusano 7d535a
/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */
kusano 7d535a
# define APIENTRY
kusano 7d535a
# define GLUT_APIENTRY_DEFINED
kusano 7d535a
# define CALLBACK
kusano 7d535a
/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */
kusano 7d535a
# define GLUTAPI extern
kusano 7d535a
# define GLUTCALLBACK
kusano 7d535a
/* Prototype exit for the non-Win32 case (see above). */
kusano 7d535a
extern void exit(int);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/**
kusano 7d535a
 GLUT API revision history:
kusano 7d535a
 
kusano 7d535a
 GLUT_API_VERSION is updated to reflect incompatible GLUT
kusano 7d535a
 API changes (interface changes, semantic changes, deletions,
kusano 7d535a
 or additions).
kusano 7d535a
 
kusano 7d535a
 GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
kusano 7d535a
kusano 7d535a
 GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
kusano 7d535a
 extension.  Supports new input devices like tablet, dial and button
kusano 7d535a
 box, and Spaceball.  Easy to query OpenGL extensions.
kusano 7d535a
kusano 7d535a
 GLUT_API_VERSION=3  glutMenuStatus added.
kusano 7d535a
kusano 7d535a
 GLUT_API_VERSION=4  glutInitDisplayString, glutWarpPointer,
kusano 7d535a
 glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
kusano 7d535a
 video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
kusano 7d535a
 glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
kusano 7d535a
 glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
kusano 7d535a
**/
kusano 7d535a
#ifndef GLUT_API_VERSION  /* allow this to be overriden */
kusano 7d535a
#define GLUT_API_VERSION		3
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/**
kusano 7d535a
 GLUT implementation revision history:
kusano 7d535a
 
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
kusano 7d535a
 API revisions and implementation revisions (ie, bug fixes).
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
kusano 7d535a
 GLUT Xlib-based implementation.  11/29/94
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
kusano 7d535a
 GLUT Xlib-based implementation providing GLUT version 2 
kusano 7d535a
 interfaces.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
kusano 7d535a
 and video resize.  1/3/97
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
kusano 7d535a
kusano 7d535a
 GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <gl glut.h=""></gl>
kusano 7d535a
**/
kusano 7d535a
#ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
kusano 7d535a
#define GLUT_XLIB_IMPLEMENTATION	15
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* Display mode bit masks. */
kusano 7d535a
#define GLUT_RGB			0
kusano 7d535a
#define GLUT_RGBA			GLUT_RGB
kusano 7d535a
#define GLUT_INDEX			1
kusano 7d535a
#define GLUT_SINGLE			0
kusano 7d535a
#define GLUT_DOUBLE			2
kusano 7d535a
#define GLUT_ACCUM			4
kusano 7d535a
#define GLUT_ALPHA			8
kusano 7d535a
#define GLUT_DEPTH			16
kusano 7d535a
#define GLUT_STENCIL			32
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
#define GLUT_MULTISAMPLE		128
kusano 7d535a
#define GLUT_STEREO			256
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
#define GLUT_LUMINANCE			512
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* Mouse buttons. */
kusano 7d535a
#define GLUT_LEFT_BUTTON		0
kusano 7d535a
#define GLUT_MIDDLE_BUTTON		1
kusano 7d535a
#define GLUT_RIGHT_BUTTON		2
kusano 7d535a
kusano 7d535a
/* Mouse button  state. */
kusano 7d535a
#define GLUT_DOWN			0
kusano 7d535a
#define GLUT_UP				1
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
/* function keys */
kusano 7d535a
#define GLUT_KEY_F1			1
kusano 7d535a
#define GLUT_KEY_F2			2
kusano 7d535a
#define GLUT_KEY_F3			3
kusano 7d535a
#define GLUT_KEY_F4			4
kusano 7d535a
#define GLUT_KEY_F5			5
kusano 7d535a
#define GLUT_KEY_F6			6
kusano 7d535a
#define GLUT_KEY_F7			7
kusano 7d535a
#define GLUT_KEY_F8			8
kusano 7d535a
#define GLUT_KEY_F9			9
kusano 7d535a
#define GLUT_KEY_F10			10
kusano 7d535a
#define GLUT_KEY_F11			11
kusano 7d535a
#define GLUT_KEY_F12			12
kusano 7d535a
/* directional keys */
kusano 7d535a
#define GLUT_KEY_LEFT			100
kusano 7d535a
#define GLUT_KEY_UP			101
kusano 7d535a
#define GLUT_KEY_RIGHT			102
kusano 7d535a
#define GLUT_KEY_DOWN			103
kusano 7d535a
#define GLUT_KEY_PAGE_UP		104
kusano 7d535a
#define GLUT_KEY_PAGE_DOWN		105
kusano 7d535a
#define GLUT_KEY_HOME			106
kusano 7d535a
#define GLUT_KEY_END			107
kusano 7d535a
#define GLUT_KEY_INSERT			108
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* Entry/exit  state. */
kusano 7d535a
#define GLUT_LEFT			0
kusano 7d535a
#define GLUT_ENTERED			1
kusano 7d535a
kusano 7d535a
/* Menu usage  state. */
kusano 7d535a
#define GLUT_MENU_NOT_IN_USE		0
kusano 7d535a
#define GLUT_MENU_IN_USE		1
kusano 7d535a
kusano 7d535a
/* Visibility  state. */
kusano 7d535a
#define GLUT_NOT_VISIBLE		0
kusano 7d535a
#define GLUT_VISIBLE			1
kusano 7d535a
kusano 7d535a
/* Window status  state. */
kusano 7d535a
#define GLUT_HIDDEN			0
kusano 7d535a
#define GLUT_FULLY_RETAINED		1
kusano 7d535a
#define GLUT_PARTIALLY_RETAINED		2
kusano 7d535a
#define GLUT_FULLY_COVERED		3
kusano 7d535a
kusano 7d535a
/* Color index component selection values. */
kusano 7d535a
#define GLUT_RED			0
kusano 7d535a
#define GLUT_GREEN			1
kusano 7d535a
#define GLUT_BLUE			2
kusano 7d535a
kusano 7d535a
#if defined(_WIN32)
kusano 7d535a
/* Stroke font constants (use these in GLUT program). */
kusano 7d535a
#define GLUT_STROKE_ROMAN		((void*)0)
kusano 7d535a
#define GLUT_STROKE_MONO_ROMAN		((void*)1)
kusano 7d535a
kusano 7d535a
/* Bitmap font constants (use these in GLUT program). */
kusano 7d535a
#define GLUT_BITMAP_9_BY_15		((void*)2)
kusano 7d535a
#define GLUT_BITMAP_8_BY_13		((void*)3)
kusano 7d535a
#define GLUT_BITMAP_TIMES_ROMAN_10	((void*)4)
kusano 7d535a
#define GLUT_BITMAP_TIMES_ROMAN_24	((void*)5)
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_10	((void*)6)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_12	((void*)7)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_18	((void*)8)
kusano 7d535a
#endif
kusano 7d535a
#else
kusano 7d535a
/* Stroke font opaque addresses (use constants instead in source code). */
kusano 7d535a
GLUTAPI void *glutStrokeRoman;
kusano 7d535a
GLUTAPI void *glutStrokeMonoRoman;
kusano 7d535a
kusano 7d535a
/* Stroke font constants (use these in GLUT program). */
kusano 7d535a
#define GLUT_STROKE_ROMAN		(&glutStrokeRoman)
kusano 7d535a
#define GLUT_STROKE_MONO_ROMAN		(&glutStrokeMonoRoman)
kusano 7d535a
kusano 7d535a
/* Bitmap font opaque addresses (use constants instead in source code). */
kusano 7d535a
GLUTAPI void *glutBitmap9By15;
kusano 7d535a
GLUTAPI void *glutBitmap8By13;
kusano 7d535a
GLUTAPI void *glutBitmapTimesRoman10;
kusano 7d535a
GLUTAPI void *glutBitmapTimesRoman24;
kusano 7d535a
GLUTAPI void *glutBitmapHelvetica10;
kusano 7d535a
GLUTAPI void *glutBitmapHelvetica12;
kusano 7d535a
GLUTAPI void *glutBitmapHelvetica18;
kusano 7d535a
kusano 7d535a
/* Bitmap font constants (use these in GLUT program). */
kusano 7d535a
#define GLUT_BITMAP_9_BY_15		(&glutBitmap9By15)
kusano 7d535a
#define GLUT_BITMAP_8_BY_13		(&glutBitmap8By13)
kusano 7d535a
#define GLUT_BITMAP_TIMES_ROMAN_10	(&glutBitmapTimesRoman10)
kusano 7d535a
#define GLUT_BITMAP_TIMES_ROMAN_24	(&glutBitmapTimesRoman24)
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_10	(&glutBitmapHelvetica10)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_12	(&glutBitmapHelvetica12)
kusano 7d535a
#define GLUT_BITMAP_HELVETICA_18	(&glutBitmapHelvetica18)
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* glutGet parameters. */
kusano 7d535a
#define GLUT_WINDOW_X			((GLenum) 100)
kusano 7d535a
#define GLUT_WINDOW_Y			((GLenum) 101)
kusano 7d535a
#define GLUT_WINDOW_WIDTH		((GLenum) 102)
kusano 7d535a
#define GLUT_WINDOW_HEIGHT		((GLenum) 103)
kusano 7d535a
#define GLUT_WINDOW_BUFFER_SIZE		((GLenum) 104)
kusano 7d535a
#define GLUT_WINDOW_STENCIL_SIZE	((GLenum) 105)
kusano 7d535a
#define GLUT_WINDOW_DEPTH_SIZE		((GLenum) 106)
kusano 7d535a
#define GLUT_WINDOW_RED_SIZE		((GLenum) 107)
kusano 7d535a
#define GLUT_WINDOW_GREEN_SIZE		((GLenum) 108)
kusano 7d535a
#define GLUT_WINDOW_BLUE_SIZE		((GLenum) 109)
kusano 7d535a
#define GLUT_WINDOW_ALPHA_SIZE		((GLenum) 110)
kusano 7d535a
#define GLUT_WINDOW_ACCUM_RED_SIZE	((GLenum) 111)
kusano 7d535a
#define GLUT_WINDOW_ACCUM_GREEN_SIZE	((GLenum) 112)
kusano 7d535a
#define GLUT_WINDOW_ACCUM_BLUE_SIZE	((GLenum) 113)
kusano 7d535a
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE	((GLenum) 114)
kusano 7d535a
#define GLUT_WINDOW_DOUBLEBUFFER	((GLenum) 115)
kusano 7d535a
#define GLUT_WINDOW_RGBA		((GLenum) 116)
kusano 7d535a
#define GLUT_WINDOW_PARENT		((GLenum) 117)
kusano 7d535a
#define GLUT_WINDOW_NUM_CHILDREN	((GLenum) 118)
kusano 7d535a
#define GLUT_WINDOW_COLORMAP_SIZE	((GLenum) 119)
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
#define GLUT_WINDOW_NUM_SAMPLES		((GLenum) 120)
kusano 7d535a
#define GLUT_WINDOW_STEREO		((GLenum) 121)
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
#define GLUT_WINDOW_CURSOR		((GLenum) 122)
kusano 7d535a
#endif
kusano 7d535a
#define GLUT_SCREEN_WIDTH		((GLenum) 200)
kusano 7d535a
#define GLUT_SCREEN_HEIGHT		((GLenum) 201)
kusano 7d535a
#define GLUT_SCREEN_WIDTH_MM		((GLenum) 202)
kusano 7d535a
#define GLUT_SCREEN_HEIGHT_MM		((GLenum) 203)
kusano 7d535a
#define GLUT_MENU_NUM_ITEMS		((GLenum) 300)
kusano 7d535a
#define GLUT_DISPLAY_MODE_POSSIBLE	((GLenum) 400)
kusano 7d535a
#define GLUT_INIT_WINDOW_X		((GLenum) 500)
kusano 7d535a
#define GLUT_INIT_WINDOW_Y		((GLenum) 501)
kusano 7d535a
#define GLUT_INIT_WINDOW_WIDTH		((GLenum) 502)
kusano 7d535a
#define GLUT_INIT_WINDOW_HEIGHT		((GLenum) 503)
kusano 7d535a
#define GLUT_INIT_DISPLAY_MODE		((GLenum) 504)
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
#define GLUT_ELAPSED_TIME		((GLenum) 700)
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
kusano 7d535a
#define GLUT_WINDOW_FORMAT_ID		((GLenum) 123)
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
/* glutDeviceGet parameters. */
kusano 7d535a
#define GLUT_HAS_KEYBOARD		((GLenum) 600)
kusano 7d535a
#define GLUT_HAS_MOUSE			((GLenum) 601)
kusano 7d535a
#define GLUT_HAS_SPACEBALL		((GLenum) 602)
kusano 7d535a
#define GLUT_HAS_DIAL_AND_BUTTON_BOX	((GLenum) 603)
kusano 7d535a
#define GLUT_HAS_TABLET			((GLenum) 604)
kusano 7d535a
#define GLUT_NUM_MOUSE_BUTTONS		((GLenum) 605)
kusano 7d535a
#define GLUT_NUM_SPACEBALL_BUTTONS	((GLenum) 606)
kusano 7d535a
#define GLUT_NUM_BUTTON_BOX_BUTTONS	((GLenum) 607)
kusano 7d535a
#define GLUT_NUM_DIALS			((GLenum) 608)
kusano 7d535a
#define GLUT_NUM_TABLET_BUTTONS		((GLenum) 609)
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
kusano 7d535a
#define GLUT_DEVICE_IGNORE_KEY_REPEAT   ((GLenum) 610)
kusano 7d535a
#define GLUT_DEVICE_KEY_REPEAT          ((GLenum) 611)
kusano 7d535a
#define GLUT_HAS_JOYSTICK		((GLenum) 612)
kusano 7d535a
#define GLUT_OWNS_JOYSTICK		((GLenum) 613)
kusano 7d535a
#define GLUT_JOYSTICK_BUTTONS		((GLenum) 614)
kusano 7d535a
#define GLUT_JOYSTICK_AXES		((GLenum) 615)
kusano 7d535a
#define GLUT_JOYSTICK_POLL_RATE		((GLenum) 616)
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
/* glutLayerGet parameters. */
kusano 7d535a
#define GLUT_OVERLAY_POSSIBLE           ((GLenum) 800)
kusano 7d535a
#define GLUT_LAYER_IN_USE		((GLenum) 801)
kusano 7d535a
#define GLUT_HAS_OVERLAY		((GLenum) 802)
kusano 7d535a
#define GLUT_TRANSPARENT_INDEX		((GLenum) 803)
kusano 7d535a
#define GLUT_NORMAL_DAMAGED		((GLenum) 804)
kusano 7d535a
#define GLUT_OVERLAY_DAMAGED		((GLenum) 805)
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
/* glutVideoResizeGet parameters. */
kusano 7d535a
#define GLUT_VIDEO_RESIZE_POSSIBLE	((GLenum) 900)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_IN_USE	((GLenum) 901)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_X_DELTA	((GLenum) 902)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_Y_DELTA	((GLenum) 903)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA	((GLenum) 904)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA	((GLenum) 905)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_X		((GLenum) 906)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_Y		((GLenum) 907)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_WIDTH		((GLenum) 908)
kusano 7d535a
#define GLUT_VIDEO_RESIZE_HEIGHT	((GLenum) 909)
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* glutUseLayer parameters. */
kusano 7d535a
#define GLUT_NORMAL			((GLenum) 0)
kusano 7d535a
#define GLUT_OVERLAY			((GLenum) 1)
kusano 7d535a
kusano 7d535a
/* glutGetModifiers return mask. */
kusano 7d535a
#define GLUT_ACTIVE_SHIFT               1
kusano 7d535a
#define GLUT_ACTIVE_CTRL                2
kusano 7d535a
#define GLUT_ACTIVE_ALT                 4
kusano 7d535a
kusano 7d535a
/* glutSetCursor parameters. */
kusano 7d535a
/* Basic arrows. */
kusano 7d535a
#define GLUT_CURSOR_RIGHT_ARROW		0
kusano 7d535a
#define GLUT_CURSOR_LEFT_ARROW		1
kusano 7d535a
/* Symbolic cursor shapes. */
kusano 7d535a
#define GLUT_CURSOR_INFO		2
kusano 7d535a
#define GLUT_CURSOR_DESTROY		3
kusano 7d535a
#define GLUT_CURSOR_HELP		4
kusano 7d535a
#define GLUT_CURSOR_CYCLE		5
kusano 7d535a
#define GLUT_CURSOR_SPRAY		6
kusano 7d535a
#define GLUT_CURSOR_WAIT		7
kusano 7d535a
#define GLUT_CURSOR_TEXT		8
kusano 7d535a
#define GLUT_CURSOR_CROSSHAIR		9
kusano 7d535a
/* Directional cursors. */
kusano 7d535a
#define GLUT_CURSOR_UP_DOWN		10
kusano 7d535a
#define GLUT_CURSOR_LEFT_RIGHT		11
kusano 7d535a
/* Sizing cursors. */
kusano 7d535a
#define GLUT_CURSOR_TOP_SIDE		12
kusano 7d535a
#define GLUT_CURSOR_BOTTOM_SIDE		13
kusano 7d535a
#define GLUT_CURSOR_LEFT_SIDE		14
kusano 7d535a
#define GLUT_CURSOR_RIGHT_SIDE		15
kusano 7d535a
#define GLUT_CURSOR_TOP_LEFT_CORNER	16
kusano 7d535a
#define GLUT_CURSOR_TOP_RIGHT_CORNER	17
kusano 7d535a
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER	18
kusano 7d535a
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER	19
kusano 7d535a
/* Inherit from parent window. */
kusano 7d535a
#define GLUT_CURSOR_INHERIT		100
kusano 7d535a
/* Blank cursor. */
kusano 7d535a
#define GLUT_CURSOR_NONE		101
kusano 7d535a
/* Fullscreen crosshair (if available). */
kusano 7d535a
#define GLUT_CURSOR_FULL_CROSSHAIR	102
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT initialization sub-API. */
kusano 7d535a
GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
kusano 7d535a
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
kusano 7d535a
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
kusano 7d535a
#ifndef GLUT_BUILDING_LIB
kusano 7d535a
static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
kusano 7d535a
#define glutInit glutInit_ATEXIT_HACK
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
GLUTAPI void APIENTRY glutInitDisplayString(const char *string);
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
kusano 7d535a
GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
kusano 7d535a
GLUTAPI void APIENTRY glutMainLoop(void);
kusano 7d535a
kusano 7d535a
/* GLUT window sub-API. */
kusano 7d535a
GLUTAPI int APIENTRY glutCreateWindow(const char *title);
kusano 7d535a
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
kusano 7d535a
GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
kusano 7d535a
#ifndef GLUT_BUILDING_LIB
kusano 7d535a
static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
kusano 7d535a
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
kusano 7d535a
GLUTAPI void APIENTRY glutDestroyWindow(int win);
kusano 7d535a
GLUTAPI void APIENTRY glutPostRedisplay(void);
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
kusano 7d535a
GLUTAPI void APIENTRY glutPostWindowRedisplay(int win);
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI void APIENTRY glutSwapBuffers(void);
kusano 7d535a
GLUTAPI int APIENTRY glutGetWindow(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSetWindow(int win);
kusano 7d535a
GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
kusano 7d535a
GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
kusano 7d535a
GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
kusano 7d535a
GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
kusano 7d535a
GLUTAPI void APIENTRY glutPopWindow(void);
kusano 7d535a
GLUTAPI void APIENTRY glutPushWindow(void);
kusano 7d535a
GLUTAPI void APIENTRY glutIconifyWindow(void);
kusano 7d535a
GLUTAPI void APIENTRY glutShowWindow(void);
kusano 7d535a
GLUTAPI void APIENTRY glutHideWindow(void);
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
GLUTAPI void APIENTRY glutFullScreen(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSetCursor(int cursor);
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
GLUTAPI void APIENTRY glutWarpPointer(int x, int y);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT overlay sub-API. */
kusano 7d535a
GLUTAPI void APIENTRY glutEstablishOverlay(void);
kusano 7d535a
GLUTAPI void APIENTRY glutRemoveOverlay(void);
kusano 7d535a
GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
kusano 7d535a
GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
kusano 7d535a
GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win);
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI void APIENTRY glutShowOverlay(void);
kusano 7d535a
GLUTAPI void APIENTRY glutHideOverlay(void);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT menu sub-API. */
kusano 7d535a
GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int));
kusano 7d535a
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
kusano 7d535a
GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int));
kusano 7d535a
#ifndef GLUT_BUILDING_LIB
kusano 7d535a
static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); }
kusano 7d535a
#define glutCreateMenu glutCreateMenu_ATEXIT_HACK
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
GLUTAPI void APIENTRY glutDestroyMenu(int menu);
kusano 7d535a
GLUTAPI int APIENTRY glutGetMenu(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSetMenu(int menu);
kusano 7d535a
GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value);
kusano 7d535a
GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu);
kusano 7d535a
GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
kusano 7d535a
GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
kusano 7d535a
GLUTAPI void APIENTRY glutRemoveMenuItem(int item);
kusano 7d535a
GLUTAPI void APIENTRY glutAttachMenu(int button);
kusano 7d535a
GLUTAPI void APIENTRY glutDetachMenu(int button);
kusano 7d535a
kusano 7d535a
/* GLUT window callback sub-API. */
kusano 7d535a
GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
kusano 7d535a
GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height));
kusano 7d535a
GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state));
kusano 7d535a
GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state));
kusano 7d535a
GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void));
kusano 7d535a
GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value);
kusano 7d535a
GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state));
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
kusano 7d535a
GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
kusano 7d535a
GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state));
kusano 7d535a
GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state));
kusano 7d535a
GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value));
kusano 7d535a
GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void));
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state));
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
kusano 7d535a
GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
kusano 7d535a
GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT color index sub-API. */
kusano 7d535a
GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
kusano 7d535a
GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component);
kusano 7d535a
GLUTAPI void APIENTRY glutCopyColormap(int win);
kusano 7d535a
kusano 7d535a
/* GLUT state retrieval sub-API. */
kusano 7d535a
GLUTAPI int APIENTRY glutGet(GLenum type);
kusano 7d535a
GLUTAPI int APIENTRY glutDeviceGet(GLenum type);
kusano 7d535a
#if (GLUT_API_VERSION >= 2)
kusano 7d535a
/* GLUT extension support sub-API */
kusano 7d535a
GLUTAPI int APIENTRY glutExtensionSupported(const char *name);
kusano 7d535a
#endif
kusano 7d535a
#if (GLUT_API_VERSION >= 3)
kusano 7d535a
GLUTAPI int APIENTRY glutGetModifiers(void);
kusano 7d535a
GLUTAPI int APIENTRY glutLayerGet(GLenum type);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT font sub-API */
kusano 7d535a
GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character);
kusano 7d535a
GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character);
kusano 7d535a
GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character);
kusano 7d535a
GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character);
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
kusano 7d535a
GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
/* GLUT pre-built models sub-API */
kusano 7d535a
GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
kusano 7d535a
GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
kusano 7d535a
GLUTAPI void APIENTRY glutWireCube(GLdouble size);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidCube(GLdouble size);
kusano 7d535a
GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
kusano 7d535a
GLUTAPI void APIENTRY glutWireDodecahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidDodecahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutWireTeapot(GLdouble size);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size);
kusano 7d535a
GLUTAPI void APIENTRY glutWireOctahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidOctahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutWireTetrahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidTetrahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutWireIcosahedron(void);
kusano 7d535a
GLUTAPI void APIENTRY glutSolidIcosahedron(void);
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
kusano 7d535a
/* GLUT video resize sub-API. */
kusano 7d535a
GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param);
kusano 7d535a
GLUTAPI void APIENTRY glutSetupVideoResizing(void);
kusano 7d535a
GLUTAPI void APIENTRY glutStopVideoResizing(void);
kusano 7d535a
GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height);
kusano 7d535a
GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height);
kusano 7d535a
kusano 7d535a
/* GLUT debugging sub-API. */
kusano 7d535a
GLUTAPI void APIENTRY glutReportErrors(void);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
kusano 7d535a
/* GLUT device control sub-API. */
kusano 7d535a
/* glutSetKeyRepeat modes. */
kusano 7d535a
#define GLUT_KEY_REPEAT_OFF		0
kusano 7d535a
#define GLUT_KEY_REPEAT_ON		1
kusano 7d535a
#define GLUT_KEY_REPEAT_DEFAULT		2
kusano 7d535a
kusano 7d535a
/* Joystick button masks. */
kusano 7d535a
#define GLUT_JOYSTICK_BUTTON_A		1
kusano 7d535a
#define GLUT_JOYSTICK_BUTTON_B		2
kusano 7d535a
#define GLUT_JOYSTICK_BUTTON_C		4
kusano 7d535a
#define GLUT_JOYSTICK_BUTTON_D		8
kusano 7d535a
kusano 7d535a
GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore);
kusano 7d535a
GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode);
kusano 7d535a
GLUTAPI void APIENTRY glutForceJoystickFunc(void);
kusano 7d535a
kusano 7d535a
/* GLUT game mode sub-API. */
kusano 7d535a
/* glutGameModeGet. */
kusano 7d535a
#define GLUT_GAME_MODE_ACTIVE           ((GLenum) 0)
kusano 7d535a
#define GLUT_GAME_MODE_POSSIBLE         ((GLenum) 1)
kusano 7d535a
#define GLUT_GAME_MODE_WIDTH            ((GLenum) 2)
kusano 7d535a
#define GLUT_GAME_MODE_HEIGHT           ((GLenum) 3)
kusano 7d535a
#define GLUT_GAME_MODE_PIXEL_DEPTH      ((GLenum) 4)
kusano 7d535a
#define GLUT_GAME_MODE_REFRESH_RATE     ((GLenum) 5)
kusano 7d535a
#define GLUT_GAME_MODE_DISPLAY_CHANGED  ((GLenum) 6)
kusano 7d535a
kusano 7d535a
GLUTAPI void APIENTRY glutGameModeString(const char *string);
kusano 7d535a
GLUTAPI int APIENTRY glutEnterGameMode(void);
kusano 7d535a
GLUTAPI void APIENTRY glutLeaveGameMode(void);
kusano 7d535a
GLUTAPI int APIENTRY glutGameModeGet(GLenum mode);
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef __cplusplus
kusano 7d535a
}
kusano 7d535a
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef GLUT_APIENTRY_DEFINED
kusano 7d535a
# undef GLUT_APIENTRY_DEFINED
kusano 7d535a
# undef APIENTRY
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef GLUT_WINGDIAPI_DEFINED
kusano 7d535a
# undef GLUT_WINGDIAPI_DEFINED
kusano 7d535a
# undef WINGDIAPI
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef GLUT_DEFINED___CDECL
kusano 7d535a
# undef GLUT_DEFINED___CDECL
kusano 7d535a
# undef __cdecl
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#ifdef GLUT_DEFINED__CRTIMP
kusano 7d535a
# undef GLUT_DEFINED__CRTIMP
kusano 7d535a
# undef _CRTIMP
kusano 7d535a
#endif
kusano 7d535a
kusano 7d535a
#endif                  /* __glut_h__ */