Changeset 13665


Ignore:
Timestamp:
Mar 11, 2000, 6:07:46 PM (25 years ago)
Author:
sandervl
Message:

update

Location:
tags/trunk/src/opengl
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified tags/trunk/src/opengl/glut/glut_event.c

    r13662 r13665  
    1 /* $Id: glut_event.c,v 1.8 2000-03-11 15:07:44 sandervl Exp $ */
     1/* $Id: glut_event.c,v 1.9 2000-03-11 17:07:44 sandervl Exp $ */
    22/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1997, 1998. */
    33
     
    951951processWindowWorkList(GLUTwindow * window)
    952952{
    953 //_interrupt(3);
    954 
    955953  int workMask;
    956954
  • TabularUnified tags/trunk/src/opengl/glut/glut_win.c

    r13662 r13665  
    1 /* $Id: glut_win.c,v 1.7 2000-03-11 15:07:46 sandervl Exp $ */
     1/* $Id: glut_win.c,v 1.8 2000-03-11 17:07:45 sandervl Exp $ */
    22/* Copyright (c) Mark J. Kilgard, 1994, 1997.  */
    33
     
    399399}
    400400
    401 void GLCALLBACK
     401void GLUTCALLBACK
    402402__glutDefaultDisplay(void)
    403403{
     
    409409}
    410410
    411 void GLCALLBACK
     411void GLUTCALLBACK
    412412__glutDefaultReshape(int width, int height)
    413413{
     
    976976}
    977977
    978 static void GLCALLBACK
     978static void GLUTCALLBACK
    979979visibilityHelper(int status)
    980980{
  • TabularUnified tags/trunk/src/opengl/glut/glutint.h

    r13662 r13665  
    1 /* $Id: glutint.h,v 1.6 2000-03-11 15:07:47 sandervl Exp $ */
     1/* $Id: glutint.h,v 1.7 2000-03-11 17:07:46 sandervl Exp $ */
    22#ifndef __glutint_h__
    33#define __glutint_h__
     
    249249
    250250/* GLUT  function types */
    251 typedef void (* GLCALLBACK GLUTdisplayCB) (void);
    252 typedef void (* GLCALLBACK GLUTreshapeCB) (int, int);
    253 typedef void (* GLCALLBACK GLUTkeyboardCB) (unsigned char, int, int);
    254 typedef void (* GLCALLBACK GLUTmouseCB) (int, int, int, int);
    255 typedef void (* GLCALLBACK GLUTmotionCB) (int, int);
    256 typedef void (* GLCALLBACK GLUTpassiveCB) (int, int);
    257 typedef void (* GLCALLBACK GLUTentryCB) (int);
    258 typedef void (* GLCALLBACK GLUTvisibilityCB) (int);
    259 typedef void (* GLCALLBACK GLUTwindowStatusCB) (int);
    260 typedef void (* GLCALLBACK GLUTidleCB) (void);
    261 typedef void (* GLCALLBACK GLUTtimerCB) (int);
    262 typedef void (* GLCALLBACK GLUTmenuStateCB) (int);  /* DEPRICATED.              */
    263 typedef void (* GLCALLBACK GLUTmenuStatusCB) (int, int, int);
    264 typedef void (* GLCALLBACK GLUTselectCB) (int);
    265 typedef void (* GLCALLBACK GLUTspecialCB) (int, int, int);
    266 typedef void (* GLCALLBACK GLUTspaceMotionCB) (int, int, int);
    267 typedef void (* GLCALLBACK GLUTspaceRotateCB) (int, int, int);
    268 typedef void (* GLCALLBACK GLUTspaceButtonCB) (int, int);
    269 typedef void (* GLCALLBACK GLUTdialsCB) (int, int);
    270 typedef void (* GLCALLBACK GLUTbuttonBoxCB) (int, int);
    271 typedef void (* GLCALLBACK GLUTtabletMotionCB) (int, int);
    272 typedef void (* GLCALLBACK GLUTtabletButtonCB) (int, int, int, int);
    273 typedef void (* GLCALLBACK GLUTjoystickCB) (unsigned int buttonMask, int x, int y, int z);
     251typedef void (* GLUTCALLBACK GLUTdisplayCB) (void);
     252typedef void (* GLUTCALLBACK GLUTreshapeCB) (int, int);
     253typedef void (* GLUTCALLBACK GLUTkeyboardCB) (unsigned char, int, int);
     254typedef void (* GLUTCALLBACK GLUTmouseCB) (int, int, int, int);
     255typedef void (* GLUTCALLBACK GLUTmotionCB) (int, int);
     256typedef void (* GLUTCALLBACK GLUTpassiveCB) (int, int);
     257typedef void (* GLUTCALLBACK GLUTentryCB) (int);
     258typedef void (* GLUTCALLBACK GLUTvisibilityCB) (int);
     259typedef void (* GLUTCALLBACK GLUTwindowStatusCB) (int);
     260typedef void (* GLUTCALLBACK GLUTidleCB) (void);
     261typedef void (* GLUTCALLBACK GLUTtimerCB) (int);
     262typedef void (* GLUTCALLBACK GLUTmenuStateCB) (int);  /* DEPRICATED.              */
     263typedef void (* GLUTCALLBACK GLUTmenuStatusCB) (int, int, int);
     264typedef void (* GLUTCALLBACK GLUTselectCB) (int);
     265typedef void (* GLUTCALLBACK GLUTspecialCB) (int, int, int);
     266typedef void (* GLUTCALLBACK GLUTspaceMotionCB) (int, int, int);
     267typedef void (* GLUTCALLBACK GLUTspaceRotateCB) (int, int, int);
     268typedef void (* GLUTCALLBACK GLUTspaceButtonCB) (int, int);
     269typedef void (* GLUTCALLBACK GLUTdialsCB) (int, int);
     270typedef void (* GLUTCALLBACK GLUTbuttonBoxCB) (int, int);
     271typedef void (* GLUTCALLBACK GLUTtabletMotionCB) (int, int);
     272typedef void (* GLUTCALLBACK GLUTtabletButtonCB) (int, int, int, int);
     273typedef void (* GLUTCALLBACK GLUTjoystickCB) (unsigned int buttonMask, int x, int y, int z);
    274274#ifdef SUPPORT_FORTRAN
    275275typedef void (*GLUTdisplayFCB) (void);
     
    660660extern GLUTmenuItem *__glutItemSelected;
    661661extern GLUTmenu **__glutMenuList;
    662 extern void (* GLCALLBACK __glutMenuStatusFunc) (int, int, int);
     662extern void (* GLUTCALLBACK __glutMenuStatusFunc) (int, int, int);
    663663extern void __glutMenuModificationError(void);
    664664extern void __glutSetMenuItem(GLUTmenuItem * item,
     
    742742extern void __glutReshapeFunc(GLUTreshapeCB reshapeFunc,
    743743  int callingConvention);
    744 extern void  GLCALLBACK __glutDefaultReshape(int, int);
     744extern void  GLUTCALLBACK __glutDefaultReshape(int, int);
    745745extern GLUTwindow *__glutCreateWindow(
    746746  GLUTwindow * parent,
  • TabularUnified tags/trunk/src/opengl/glut/win32_menu.c

    r13662 r13665  
    1 /* $Id: win32_menu.c,v 1.5 2000-03-11 15:07:48 sandervl Exp $ */
     1/* $Id: win32_menu.c,v 1.6 2000-03-11 17:07:46 sandervl Exp $ */
    22/* Copyright (c) Mark J. Kilgard, 1994, 1997, 1998. */
    33/* Copyright (c) Nate Robins, 1997. */
     
    1919#include "glutint.h"
    2020
    21 void (* GLCALLBACK __glutMenuStatusFunc) (int, int, int);
     21void (* GLUTCALLBACK __glutMenuStatusFunc) (int, int, int);
    2222extern GLUTmenu *__glutMappedMenu;
    2323extern GLUTwindow *__glutMenuWindow;
  • TabularUnified tags/trunk/src/opengl/mesa/GL/gl.h

    r13603 r13665  
    1 /* $Id: gl.h,v 1.4 2000-03-05 10:26:17 jeroen Exp $ */
     1/* $Id: gl.h,v 1.5 2000-03-11 17:06:35 sandervl Exp $ */
    22
    33/*
     
    7979#       define GLAPI
    8080#       define GLAPIENTRY __stdcall
    81 #       define GLCALLBACK CDECL
     81#       define GLCALLBACK __stdcall
    8282#       define GLWINAPI __stdcall
    8383#       define GLWINAPIV __cdecl
  • TabularUnified tags/trunk/src/opengl/mesa/GL/glu.h

    r13663 r13665  
    1 /* $Id: glu.h,v 1.4 2000-03-11 15:08:36 sandervl Exp $ */
     1/* $Id: glu.h,v 1.5 2000-03-11 17:06:35 sandervl Exp $ */
    22
    33/*
     
    6666#endif
    6767
    68 #undef GLCALLBACK
    6968#ifndef GLCALLBACK
    70 #define GLCALLBACK __stdcall
     69#define GLCALLBACK
    7170#endif
    7271
  • TabularUnified tags/trunk/src/opengl/mesa/GL/glut.h

    r13663 r13665  
    1 /* $Id: glut.h,v 1.4 2000-03-11 15:08:37 sandervl Exp $ */
    21#ifndef __glut_h__
    32#define __glut_h__
     
    98   program is -not- in the public domain. */
    109
     10#include <GL/gl.h>
     11#include <GL/glu.h>
     12
     13#ifdef __cplusplus
     14extern "C" {
     15#endif
     16
    1117#if defined(_WIN32)
     18
    1219
    1320/* GLUT 3.7 now tries to avoid including <windows.h>
    1421   to avoid name space pollution, but Win32's <GL/gl.h>
    15    needs APIENTRY and WINGDIAPI defined properly. */
    16 # if 0
    17 #  define  WIN32_LEAN_AND_MEAN
    18 #  include <windows.h>
    19 # else
    20    /* XXX This is from Win32's <windef.h> */
    21 #  ifndef APIENTRY
    22 #   define GLUT_APIENTRY_DEFINED
    23 #   if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
    24 #    define APIENTRY    __stdcall
     22   needs APIENTRY and WINGDIAPI defined properly.
     23
     24   tjump@spgs.com contributes:
     25   If users are building glut code on MS Windows, then they should
     26   make sure they include windows.h early, let's not get into a
     27   header definitions war since MS has proven it's capability to
     28   change header dependencies w/o publishing they have done so.
     29
     30   So, let's not include windows.h here, as it's not really required and
     31   MS own gl/gl.h *should* include it if the dependency is there. */
     32
     33/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
     34   in your compile preprocessor options. */
     35# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
     36#  pragma comment (lib, "winmm.lib")      /* link with Windows MultiMedia lib */
     37/* To enable automatic SGI OpenGL for Windows library usage for GLUT,
     38   define GLUT_USE_SGI_OPENGL in your compile preprocessor options.  */
     39#  ifdef GLUT_USE_SGI_OPENGL
     40#   pragma comment (lib, "opengl.lib")    /* link with SGI OpenGL for Windows lib */
     41#   pragma comment (lib, "glu.lib")       /* link with SGI OpenGL Utility lib */
     42#   pragma comment (lib, "glut.lib")      /* link with Win32 GLUT for SGI OpenGL lib */
     43#  else
     44#   pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib */
     45#   pragma comment (lib, "glu32.lib")     /* link with Microsoft OpenGL Utility lib */
     46#   pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib */
     47#  endif
     48# endif
     49
     50/* To disable supression of annoying warnings about floats being promoted
     51   to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
     52   options. */
     53# ifndef GLUT_NO_WARNING_DISABLE
     54#  pragma warning (disable:4244)  /* Disable bogus VC++ 4.2 conversion warnings. */
     55#  pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
     56# endif
     57
     58/* Win32 has an annoying issue where there are multiple C run-time
     59   libraries (CRTs).  If the executable is linked with a different CRT
     60   from the GLUT DLL, the GLUT DLL will not share the same CRT static
     61   data seen by the executable.  In particular, atexit callbacks registered
     62   in the executable will not be called if GLUT calls its (different)
     63   exit routine).  GLUT is typically built with the
     64   "/MD" option (the CRT with multithreading DLL support), but the Visual
     65   C++ linker default is "/ML" (the single threaded CRT).
     66
     67   One workaround to this issue is requiring users to always link with
     68   the same CRT as GLUT is compiled with.  That requires users supply a
     69   non-standard option.  GLUT 3.7 has its own built-in workaround where
     70   the executable's "exit" function pointer is covertly passed to GLUT.
     71   GLUT then calls the executable's exit function pointer to ensure that
     72   any "atexit" calls registered by the application are called if GLUT
     73   needs to exit.
     74
     75   Note that the __glut*WithExit routines should NEVER be called directly.
     76   To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
     77
     78/* XXX This is from Win32's <process.h> */
     79# if !defined(_MSC_VER) && !defined(__cdecl)
     80   /* Define __cdecl for non-Microsoft compilers. */
     81#  define __cdecl
     82#  define GLUT_DEFINED___CDECL
     83# endif
     84# ifndef _CRTIMP
     85#  ifdef _NTSDK
     86    /* Definition compatible with NT SDK */
     87#   define _CRTIMP
     88#  else
     89    /* Current definition */
     90#   ifdef _DLL
     91#    define _CRTIMP __declspec(dllimport)
    2592#   else
    26 #    define APIENTRY
     93#    define _CRTIMP
    2794#   endif
    2895#  endif
    29    /* XXX This is from Win32's <winnt.h> */
    30 #  ifndef CALLBACK
    31 #   if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
    32 #    define CALLBACK __stdcall
    33 #   else
    34 #    define CALLBACK
    35 #   endif
    36 #  endif
    37    /* XXX This is from Win32's <wingdi.h> and <winnt.h> */
    38 #  ifndef WINGDIAPI
    39 #   define GLUT_WINGDIAPI_DEFINED
    40 #   define WINGDIAPI __declspec(dllimport)
    41 #  endif
    42    /* XXX This is from Win32's <ctype.h> */
    43 #  ifndef _WCHAR_T_DEFINED
    44 typedef unsigned short wchar_t;
    45 #   define _WCHAR_T_DEFINED
    46 #  endif
     96#  define GLUT_DEFINED__CRTIMP
    4797# endif
    48 
    49 #pragma comment (lib, "winmm.lib")     /* link with Windows MultiMedia lib */
    50 #pragma comment (lib, "opengl32.lib")  /* link with Microsoft OpenGL lib   */
    51 #pragma comment (lib, "glu32.lib")     /* link with OpenGL Utility lib     */
    52 #pragma comment (lib, "glut32.lib")    /* link with Win32 GLUT lib         */
    53 
    54 #pragma warning (disable:4244)        /* Disable bogus conversion warnings.*/
    55 #pragma warning (disable:4305)        /* VC++ 5.0 version of above warning.*/
    56 
    57 #endif
    58 
    59 #include <windows.h>
    60 #include "GL\gl.h"
    61 #include "glu.h"
    62 
    63 #include "glutstroke.h"
    64 #include "glutbitmap.h"
    65 
    66 /* define APIENTRY and CALLBACK to null string if we aren't on Win32 */
    67 #if !defined(_WIN32) && !defined(__WIN32OS2__)
    68 #define APIENTRY
    69 #define GLUT_APIENTRY_DEFINED
    70 #define CALLBACK
    71 #endif
    72 
    73 #ifdef __cplusplus
    74 extern "C" {
    75 #endif
     98# ifndef GLUT_BUILDING_LIB
     99extern _CRTIMP void __cdecl exit(int);
     100# endif
     101
     102/* GLUT callback calling convention for Win32. */
     103# define GLUTCALLBACK __cdecl
     104
     105/* for callback/function pointer defs */
     106# define GLUTAPIENTRYV __cdecl
     107
     108/* glut-win32 specific macros, defined to prevent collision with
     109   and redifinition of Windows system defs, also removes requirement of
     110   pretty much any standard windows header from this file */
     111
     112#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
     113#       define GLUTAPIENTRY __stdcall
     114#else
     115#       define GLUTAPIENTRY
     116#endif
     117
     118/* GLUT API entry point declarations for Win32. */
     119#if defined(GLUT_BUILDING_LIB) && defined(_DLL)
     120#       define GLUTAPI __declspec(dllexport)
     121#elif defined(_DLL)
     122#   define GLUTAPI __declspec(dllimport)
     123#else
     124#       define GLUTAPI extern
     125#endif
     126
     127#if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA)
     128#       if !defined(MESA_MINWARN)
     129#               pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" )
     130#               pragma message( "----: and PROC typedef. If you receive compiler warnings about either ")
     131#               pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
     132#       endif
     133#       define CALLBACK __stdcall
     134typedef int (GLUTAPIENTRY *PROC)();
     135typedef void *HGLRC;
     136typedef void *HDC;
     137typedef unsigned long COLORREF;
     138#endif
     139
     140#if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA)
     141#       if !defined(MESA_MINWARN)
     142#               pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" )
     143#               pragma message( "----: and macros. If you receive compiler warnings about any being multiply ")
     144#               pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" )
     145#       endif
     146#       define WGL_FONT_LINES      0
     147#       define WGL_FONT_POLYGONS   1
     148#       ifdef UNICODE
     149#               define wglUseFontBitmaps  wglUseFontBitmapsW
     150#               define wglUseFontOutlines  wglUseFontOutlinesW
     151#       else
     152#               define wglUseFontBitmaps  wglUseFontBitmapsA
     153#               define wglUseFontOutlines  wglUseFontOutlinesA
     154#       endif /* !UNICODE */
     155typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
     156typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
     157#  pragma warning( push )
     158#  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
     159#  define WGLAPI __declspec(dllimport)
     160WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
     161WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
     162WGLAPI int   GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
     163WGLAPI int   GLAPIENTRY wglSwapBuffers(HDC hdc);
     164WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
     165WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
     166WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
     167WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
     168WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
     169WGLAPI int   GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
     170WGLAPI int   GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
     171WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
     172WGLAPI int   GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
     173WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
     174WGLAPI int   GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
     175WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
     176WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
     177WGLAPI int   GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
     178WGLAPI int   GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
     179WGLAPI int   GLAPIENTRY wglShareLists(HGLRC, HGLRC);
     180WGLAPI int   GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int);
     181WGLAPI int   GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long);
     182WGLAPI int   GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
     183WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
     184WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
     185WGLAPI int   GLAPIENTRY SwapBuffers(HDC);
     186WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
     187WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
     188WGLAPI int   GLAPIENTRY GetPixelFormat(HDC);
     189WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
     190#  undef WGLAPI
     191#  pragma warning( pop )
     192#endif
     193
     194#else /* _WIN32 not defined */
     195#if defined(__WIN32OS2__)
     196/* GLUT callback calling convention for Win32. */
     197#define GLUTCALLBACK __cdecl
     198
     199/* for callback/function pointer defs */
     200#define GLUTAPIENTRYV __cdecl
     201
     202#define GLUTAPIENTRY __stdcall
     203
     204#define GLUTAPI extern
     205
     206#else
     207/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */
     208#  define GLUTAPIENTRY
     209#  define GLUTAPIENTRYV
     210#  define GLUT_APIENTRY_DEFINED
     211#  define GLUTCALLBACK
     212#  define GLUTAPI extern
     213/* Prototype exit for the non-Win32 case (see above). */
     214extern void exit(int);
     215#endif
     216
     217#endif
     218
    76219
    77220/**
     
    97240**/
    98241#ifndef GLUT_API_VERSION  /* allow this to be overriden */
    99 #define GLUT_API_VERSION                3
     242#define GLUT_API_VERSION                3
    100243#endif
    101244
     
    130273 GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
    131274
    132  GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 release with GameGLUT support.
     275 GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
     276
     277 GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
     278
     279 GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
    133280**/
    134281#ifndef GLUT_XLIB_IMPLEMENTATION  /* Allow this to be overriden. */
    135 #define GLUT_XLIB_IMPLEMENTATION        13
     282#define GLUT_XLIB_IMPLEMENTATION        15
    136283#endif
    137284
    138285/* Display mode bit masks. */
    139 #define GLUT_RGB                        0
    140 #define GLUT_RGBA                       GLUT_RGB
    141 #define GLUT_INDEX                      1
    142 #define GLUT_SINGLE                     0
    143 #define GLUT_DOUBLE                     2
    144 #define GLUT_ACCUM                      4
    145 #define GLUT_ALPHA                      8
    146 #define GLUT_DEPTH                      16
    147 #define GLUT_STENCIL                    32
     286#define GLUT_RGB                        0
     287#define GLUT_RGBA                       GLUT_RGB
     288#define GLUT_INDEX                      1
     289#define GLUT_SINGLE                     0
     290#define GLUT_DOUBLE                     2
     291#define GLUT_ACCUM                      4
     292#define GLUT_ALPHA                      8
     293#define GLUT_DEPTH                      16
     294#define GLUT_STENCIL                    32
    148295#if (GLUT_API_VERSION >= 2)
    149 #define GLUT_MULTISAMPLE                128
    150 #define GLUT_STEREO                     256
     296#define GLUT_MULTISAMPLE                128
     297#define GLUT_STEREO                     256
    151298#endif
    152299#if (GLUT_API_VERSION >= 3)
    153 #define GLUT_LUMINANCE                  512
     300#define GLUT_LUMINANCE                  512
    154301#endif
    155302
    156303/* Mouse buttons. */
    157 #define GLUT_LEFT_BUTTON                0
    158 #define GLUT_MIDDLE_BUTTON              1
    159 #define GLUT_RIGHT_BUTTON               2
     304#define GLUT_LEFT_BUTTON                0
     305#define GLUT_MIDDLE_BUTTON              1
     306#define GLUT_RIGHT_BUTTON               2
    160307
    161308/* Mouse button  state. */
    162 #define GLUT_DOWN                       0
    163 #define GLUT_UP                         1
     309#define GLUT_DOWN                       0
     310#define GLUT_UP                         1
    164311
    165312#if (GLUT_API_VERSION >= 2)
    166313/* function keys */
    167 #define GLUT_KEY_F1                     1
    168 #define GLUT_KEY_F2                     2
    169 #define GLUT_KEY_F3                     3
    170 #define GLUT_KEY_F4                     4
    171 #define GLUT_KEY_F5                     5
    172 #define GLUT_KEY_F6                     6
    173 #define GLUT_KEY_F7                     7
    174 #define GLUT_KEY_F8                     8
    175 #define GLUT_KEY_F9                     9
    176 #define GLUT_KEY_F10                    10
    177 #define GLUT_KEY_F11                    11
    178 #define GLUT_KEY_F12                    12
     314#define GLUT_KEY_F1                     1
     315#define GLUT_KEY_F2                     2
     316#define GLUT_KEY_F3                     3
     317#define GLUT_KEY_F4                     4
     318#define GLUT_KEY_F5                     5
     319#define GLUT_KEY_F6                     6
     320#define GLUT_KEY_F7                     7
     321#define GLUT_KEY_F8                     8
     322#define GLUT_KEY_F9                     9
     323#define GLUT_KEY_F10                    10
     324#define GLUT_KEY_F11                    11
     325#define GLUT_KEY_F12                    12
    179326/* directional keys */
    180 #define GLUT_KEY_LEFT                   100
    181 #define GLUT_KEY_UP                     101
    182 #define GLUT_KEY_RIGHT                  102
    183 #define GLUT_KEY_DOWN                   103
    184 #define GLUT_KEY_PAGE_UP                104
    185 #define GLUT_KEY_PAGE_DOWN              105
    186 #define GLUT_KEY_HOME                   106
    187 #define GLUT_KEY_END                    107
    188 #define GLUT_KEY_INSERT                 108
     327#define GLUT_KEY_LEFT                   100
     328#define GLUT_KEY_UP                     101
     329#define GLUT_KEY_RIGHT                  102
     330#define GLUT_KEY_DOWN                   103
     331#define GLUT_KEY_PAGE_UP                104
     332#define GLUT_KEY_PAGE_DOWN              105
     333#define GLUT_KEY_HOME                   106
     334#define GLUT_KEY_END                    107
     335#define GLUT_KEY_INSERT                 108
    189336#endif
    190337
    191338/* Entry/exit  state. */
    192 #define GLUT_LEFT                       0
    193 #define GLUT_ENTERED                    1
     339#define GLUT_LEFT                       0
     340#define GLUT_ENTERED                    1
    194341
    195342/* Menu usage  state. */
    196 #define GLUT_MENU_NOT_IN_USE            0
    197 #define GLUT_MENU_IN_USE                1
     343#define GLUT_MENU_NOT_IN_USE            0
     344#define GLUT_MENU_IN_USE                1
    198345
    199346/* Visibility  state. */
    200 #define GLUT_NOT_VISIBLE                0
    201 #define GLUT_VISIBLE                    1
     347#define GLUT_NOT_VISIBLE                0
     348#define GLUT_VISIBLE                    1
    202349
    203350/* Window status  state. */
    204 #define GLUT_HIDDEN                     0
    205 #define GLUT_FULLY_RETAINED             1
    206 #define GLUT_PARTIALLY_RETAINED         2
    207 #define GLUT_FULLY_COVERED              3
     351#define GLUT_HIDDEN                     0
     352#define GLUT_FULLY_RETAINED             1
     353#define GLUT_PARTIALLY_RETAINED         2
     354#define GLUT_FULLY_COVERED              3
    208355
    209356/* Color index component selection values. */
    210 #define GLUT_RED                        0
    211 #define GLUT_GREEN                      1
    212 #define GLUT_BLUE                       2
     357#define GLUT_RED                        0
     358#define GLUT_GREEN                      1
     359#define GLUT_BLUE                       2
    213360
    214361/* Layers for use. */
    215 #define GLUT_NORMAL                     0
    216 #define GLUT_OVERLAY                    1
     362#define GLUT_NORMAL                     0
     363#define GLUT_OVERLAY                    1
    217364
    218365#if defined(_WIN32) || defined(__WIN32OS2__)
     
    242389#else
    243390/* Stroke font opaque addresses (use constants instead in source code). */
    244 extern const StrokeFontRec glutStrokeRoman;
    245 extern const StrokeFontRec glutStrokeMonoRoman;
     391GLUTAPI void *glutStrokeRoman;
     392GLUTAPI void *glutStrokeMonoRoman;
    246393
    247394/* Stroke font constants (use these in GLUT program). */
    248 #define GLUT_STROKE_ROMAN               (&glutStrokeRoman)
    249 #define GLUT_STROKE_MONO_ROMAN          (&glutStrokeMonoRoman)
     395#define GLUT_STROKE_ROMAN               (&glutStrokeRoman)
     396#define GLUT_STROKE_MONO_ROMAN          (&glutStrokeMonoRoman)
    250397
    251398/* Bitmap font opaque addresses (use constants instead in source code). */
    252 extern const BitmapFontRec glutBitmap9By15;
    253 extern const BitmapFontRec glutBitmap8By13;
    254 extern const BitmapFontRec glutBitmapTimesRoman10;
    255 extern const BitmapFontRec glutBitmapTimesRoman24;
    256 extern const BitmapFontRec glutBitmapHelvetica10;
    257 extern const BitmapFontRec glutBitmapHelvetica12;
    258 extern const BitmapFontRec glutBitmapHelvetica18;
     399GLUTAPI void *glutBitmap9By15;
     400GLUTAPI void *glutBitmap8By13;
     401GLUTAPI void *glutBitmapTimesRoman10;
     402GLUTAPI void *glutBitmapTimesRoman24;
     403GLUTAPI void *glutBitmapHelvetica10;
     404GLUTAPI void *glutBitmapHelvetica12;
     405GLUTAPI void *glutBitmapHelvetica18;
    259406
    260407/* Bitmap font constants (use these in GLUT program). */
    261 #define GLUT_BITMAP_9_BY_15             (&glutBitmap9By15)
    262 #define GLUT_BITMAP_8_BY_13             (&glutBitmap8By13)
    263 #define GLUT_BITMAP_TIMES_ROMAN_10      (&glutBitmapTimesRoman10)
    264 #define GLUT_BITMAP_TIMES_ROMAN_24      (&glutBitmapTimesRoman24)
     408#define GLUT_BITMAP_9_BY_15             (&glutBitmap9By15)
     409#define GLUT_BITMAP_8_BY_13             (&glutBitmap8By13)
     410#define GLUT_BITMAP_TIMES_ROMAN_10      (&glutBitmapTimesRoman10)
     411#define GLUT_BITMAP_TIMES_ROMAN_24      (&glutBitmapTimesRoman24)
    265412#if (GLUT_API_VERSION >= 3)
    266 #define GLUT_BITMAP_HELVETICA_10        (&glutBitmapHelvetica10)
    267 #define GLUT_BITMAP_HELVETICA_12        (&glutBitmapHelvetica12)
    268 #define GLUT_BITMAP_HELVETICA_18        (&glutBitmapHelvetica18)
     413#define GLUT_BITMAP_HELVETICA_10        (&glutBitmapHelvetica10)
     414#define GLUT_BITMAP_HELVETICA_12        (&glutBitmapHelvetica12)
     415#define GLUT_BITMAP_HELVETICA_18        (&glutBitmapHelvetica18)
    269416#endif
    270417#endif
    271418
    272419/* glutGet parameters. */
    273 #define GLUT_WINDOW_X                   100
    274 #define GLUT_WINDOW_Y                   101
    275 #define GLUT_WINDOW_WIDTH               102
    276 #define GLUT_WINDOW_HEIGHT              103
    277 #define GLUT_WINDOW_BUFFER_SIZE         104
    278 #define GLUT_WINDOW_STENCIL_SIZE        105
    279 #define GLUT_WINDOW_DEPTH_SIZE          106
    280 #define GLUT_WINDOW_RED_SIZE            107
    281 #define GLUT_WINDOW_GREEN_SIZE          108
    282 #define GLUT_WINDOW_BLUE_SIZE           109
    283 #define GLUT_WINDOW_ALPHA_SIZE          110
    284 #define GLUT_WINDOW_ACCUM_RED_SIZE      111
    285 #define GLUT_WINDOW_ACCUM_GREEN_SIZE    112
    286 #define GLUT_WINDOW_ACCUM_BLUE_SIZE     113
    287 #define GLUT_WINDOW_ACCUM_ALPHA_SIZE    114
    288 #define GLUT_WINDOW_DOUBLEBUFFER        115
    289 #define GLUT_WINDOW_RGBA                116
    290 #define GLUT_WINDOW_PARENT              117
    291 #define GLUT_WINDOW_NUM_CHILDREN        118
    292 #define GLUT_WINDOW_COLORMAP_SIZE       119
     420#define GLUT_WINDOW_X                   100
     421#define GLUT_WINDOW_Y                   101
     422#define GLUT_WINDOW_WIDTH               102
     423#define GLUT_WINDOW_HEIGHT              103
     424#define GLUT_WINDOW_BUFFER_SIZE         104
     425#define GLUT_WINDOW_STENCIL_SIZE        105
     426#define GLUT_WINDOW_DEPTH_SIZE          106
     427#define GLUT_WINDOW_RED_SIZE            107
     428#define GLUT_WINDOW_GREEN_SIZE          108
     429#define GLUT_WINDOW_BLUE_SIZE           109
     430#define GLUT_WINDOW_ALPHA_SIZE          110
     431#define GLUT_WINDOW_ACCUM_RED_SIZE      111
     432#define GLUT_WINDOW_ACCUM_GREEN_SIZE    112
     433#define GLUT_WINDOW_ACCUM_BLUE_SIZE     113
     434#define GLUT_WINDOW_ACCUM_ALPHA_SIZE    114
     435#define GLUT_WINDOW_DOUBLEBUFFER        115
     436#define GLUT_WINDOW_RGBA                116
     437#define GLUT_WINDOW_PARENT              117
     438#define GLUT_WINDOW_NUM_CHILDREN        118
     439#define GLUT_WINDOW_COLORMAP_SIZE       119
    293440#if (GLUT_API_VERSION >= 2)
    294 #define GLUT_WINDOW_NUM_SAMPLES         120
    295 #define GLUT_WINDOW_STEREO              121
     441#define GLUT_WINDOW_NUM_SAMPLES         120
     442#define GLUT_WINDOW_STEREO              121
    296443#endif
    297444#if (GLUT_API_VERSION >= 3)
    298 #define GLUT_WINDOW_CURSOR              122
    299 #endif
    300 #define GLUT_SCREEN_WIDTH               200
    301 #define GLUT_SCREEN_HEIGHT              201
    302 #define GLUT_SCREEN_WIDTH_MM            202
    303 #define GLUT_SCREEN_HEIGHT_MM           203
    304 #define GLUT_MENU_NUM_ITEMS             300
    305 #define GLUT_DISPLAY_MODE_POSSIBLE      400
    306 #define GLUT_INIT_WINDOW_X              500
    307 #define GLUT_INIT_WINDOW_Y              501
    308 #define GLUT_INIT_WINDOW_WIDTH          502
    309 #define GLUT_INIT_WINDOW_HEIGHT         503
    310 #define GLUT_INIT_DISPLAY_MODE          504
     445#define GLUT_WINDOW_CURSOR              122
     446#endif
     447#define GLUT_SCREEN_WIDTH               200
     448#define GLUT_SCREEN_HEIGHT              201
     449#define GLUT_SCREEN_WIDTH_MM            202
     450#define GLUT_SCREEN_HEIGHT_MM           203
     451#define GLUT_MENU_NUM_ITEMS             300
     452#define GLUT_DISPLAY_MODE_POSSIBLE      400
     453#define GLUT_INIT_WINDOW_X              500
     454#define GLUT_INIT_WINDOW_Y              501
     455#define GLUT_INIT_WINDOW_WIDTH          502
     456#define GLUT_INIT_WINDOW_HEIGHT         503
     457#define GLUT_INIT_DISPLAY_MODE          504
    311458#if (GLUT_API_VERSION >= 2)
    312 #define GLUT_ELAPSED_TIME               700
     459#define GLUT_ELAPSED_TIME               700
    313460#endif
    314461#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    315 #define GLUT_WINDOW_FORMAT_ID           123
     462#define GLUT_WINDOW_FORMAT_ID           123
    316463#endif
    317464
    318465#if (GLUT_API_VERSION >= 2)
    319466/* glutDeviceGet parameters. */
    320 #define GLUT_HAS_KEYBOARD               600
    321 #define GLUT_HAS_MOUSE                  601
    322 #define GLUT_HAS_SPACEBALL              602
    323 #define GLUT_HAS_DIAL_AND_BUTTON_BOX    603
    324 #define GLUT_HAS_TABLET                 604
    325 #define GLUT_NUM_MOUSE_BUTTONS          605
    326 #define GLUT_NUM_SPACEBALL_BUTTONS      606
    327 #define GLUT_NUM_BUTTON_BOX_BUTTONS     607
    328 #define GLUT_NUM_DIALS                  608
    329 #define GLUT_NUM_TABLET_BUTTONS         609
     467#define GLUT_HAS_KEYBOARD               600
     468#define GLUT_HAS_MOUSE                  601
     469#define GLUT_HAS_SPACEBALL              602
     470#define GLUT_HAS_DIAL_AND_BUTTON_BOX    603
     471#define GLUT_HAS_TABLET                 604
     472#define GLUT_NUM_MOUSE_BUTTONS          605
     473#define GLUT_NUM_SPACEBALL_BUTTONS      606
     474#define GLUT_NUM_BUTTON_BOX_BUTTONS     607
     475#define GLUT_NUM_DIALS                  608
     476#define GLUT_NUM_TABLET_BUTTONS         609
    330477#endif
    331478#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    332479#define GLUT_DEVICE_IGNORE_KEY_REPEAT   610
    333480#define GLUT_DEVICE_KEY_REPEAT          611
    334 #define GLUT_HAS_JOYSTICK               612
    335 #define GLUT_OWNS_JOYSTICK              613
    336 #define GLUT_JOYSTICK_BUTTONS           614
    337 #define GLUT_JOYSTICK_AXES              615
    338 #define GLUT_JOYSTICK_POLL_RATE         616
     481#define GLUT_HAS_JOYSTICK               612
     482#define GLUT_OWNS_JOYSTICK              613
     483#define GLUT_JOYSTICK_BUTTONS           614
     484#define GLUT_JOYSTICK_AXES              615
     485#define GLUT_JOYSTICK_POLL_RATE         616
    339486#endif
    340487
     
    342489/* glutLayerGet parameters. */
    343490#define GLUT_OVERLAY_POSSIBLE           800
    344 #define GLUT_LAYER_IN_USE               801
    345 #define GLUT_HAS_OVERLAY                802
    346 #define GLUT_TRANSPARENT_INDEX          803
    347 #define GLUT_NORMAL_DAMAGED             804
    348 #define GLUT_OVERLAY_DAMAGED            805
     491#define GLUT_LAYER_IN_USE               801
     492#define GLUT_HAS_OVERLAY                802
     493#define GLUT_TRANSPARENT_INDEX          803
     494#define GLUT_NORMAL_DAMAGED             804
     495#define GLUT_OVERLAY_DAMAGED            805
    349496
    350497#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    351498/* glutVideoResizeGet parameters. */
    352 #define GLUT_VIDEO_RESIZE_POSSIBLE      900
    353 #define GLUT_VIDEO_RESIZE_IN_USE        901
    354 #define GLUT_VIDEO_RESIZE_X_DELTA       902
    355 #define GLUT_VIDEO_RESIZE_Y_DELTA       903
    356 #define GLUT_VIDEO_RESIZE_WIDTH_DELTA   904
    357 #define GLUT_VIDEO_RESIZE_HEIGHT_DELTA  905
    358 #define GLUT_VIDEO_RESIZE_X             906
    359 #define GLUT_VIDEO_RESIZE_Y             907
    360 #define GLUT_VIDEO_RESIZE_WIDTH         908
    361 #define GLUT_VIDEO_RESIZE_HEIGHT        909
     499#define GLUT_VIDEO_RESIZE_POSSIBLE      900
     500#define GLUT_VIDEO_RESIZE_IN_USE        901
     501#define GLUT_VIDEO_RESIZE_X_DELTA       902
     502#define GLUT_VIDEO_RESIZE_Y_DELTA       903
     503#define GLUT_VIDEO_RESIZE_WIDTH_DELTA   904
     504#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA  905
     505#define GLUT_VIDEO_RESIZE_X             906
     506#define GLUT_VIDEO_RESIZE_Y             907
     507#define GLUT_VIDEO_RESIZE_WIDTH         908
     508#define GLUT_VIDEO_RESIZE_HEIGHT        909
    362509#endif
    363510
    364511/* glutUseLayer parameters. */
    365 #define GLUT_NORMAL                     0
    366 #define GLUT_OVERLAY                    1
     512#define GLUT_NORMAL                     0
     513#define GLUT_OVERLAY                    1
    367514
    368515/* glutGetModifiers return mask. */
     
    373520/* glutSetCursor parameters. */
    374521/* Basic arrows. */
    375 #define GLUT_CURSOR_RIGHT_ARROW         0
    376 #define GLUT_CURSOR_LEFT_ARROW          1
     522#define GLUT_CURSOR_RIGHT_ARROW         0
     523#define GLUT_CURSOR_LEFT_ARROW          1
    377524/* Symbolic cursor shapes. */
    378 #define GLUT_CURSOR_INFO                2
    379 #define GLUT_CURSOR_DESTROY             3
    380 #define GLUT_CURSOR_HELP                4
    381 #define GLUT_CURSOR_CYCLE               5
    382 #define GLUT_CURSOR_SPRAY               6
    383 #define GLUT_CURSOR_WAIT                7
    384 #define GLUT_CURSOR_TEXT                8
    385 #define GLUT_CURSOR_CROSSHAIR           9
     525#define GLUT_CURSOR_INFO                2
     526#define GLUT_CURSOR_DESTROY             3
     527#define GLUT_CURSOR_HELP                4
     528#define GLUT_CURSOR_CYCLE               5
     529#define GLUT_CURSOR_SPRAY               6
     530#define GLUT_CURSOR_WAIT                7
     531#define GLUT_CURSOR_TEXT                8
     532#define GLUT_CURSOR_CROSSHAIR           9
    386533/* Directional cursors. */
    387 #define GLUT_CURSOR_UP_DOWN             10
    388 #define GLUT_CURSOR_LEFT_RIGHT          11
     534#define GLUT_CURSOR_UP_DOWN             10
     535#define GLUT_CURSOR_LEFT_RIGHT          11
    389536/* Sizing cursors. */
    390 #define GLUT_CURSOR_TOP_SIDE            12
    391 #define GLUT_CURSOR_BOTTOM_SIDE         13
    392 #define GLUT_CURSOR_LEFT_SIDE           14
    393 #define GLUT_CURSOR_RIGHT_SIDE          15
    394 #define GLUT_CURSOR_TOP_LEFT_CORNER     16
    395 #define GLUT_CURSOR_TOP_RIGHT_CORNER    17
    396 #define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
    397 #define GLUT_CURSOR_BOTTOM_LEFT_CORNER  19
     537#define GLUT_CURSOR_TOP_SIDE            12
     538#define GLUT_CURSOR_BOTTOM_SIDE         13
     539#define GLUT_CURSOR_LEFT_SIDE           14
     540#define GLUT_CURSOR_RIGHT_SIDE          15
     541#define GLUT_CURSOR_TOP_LEFT_CORNER     16
     542#define GLUT_CURSOR_TOP_RIGHT_CORNER    17
     543#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
     544#define GLUT_CURSOR_BOTTOM_LEFT_CORNER  19
    398545/* Inherit from parent window. */
    399 #define GLUT_CURSOR_INHERIT             100
     546#define GLUT_CURSOR_INHERIT             100
    400547/* Blank cursor. */
    401 #define GLUT_CURSOR_NONE                101
     548#define GLUT_CURSOR_NONE                101
    402549/* Fullscreen crosshair (if available). */
    403 #define GLUT_CURSOR_FULL_CROSSHAIR      102
     550#define GLUT_CURSOR_FULL_CROSSHAIR      102
    404551#endif
    405552
    406553/* GLUT initialization sub-API. */
    407 extern void GLAPIENTRY glutInit(int *argcp, char **argv);
    408 extern void GLAPIENTRY glutInitDisplayMode(unsigned int mode);
     554GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv);
     555#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
     556GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
     557#ifndef GLUT_BUILDING_LIB
     558static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
     559#define glutInit glutInit_ATEXIT_HACK
     560#endif
     561#endif
     562GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode);
    409563#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    410 extern void GLAPIENTRY glutInitDisplayString(const char *string);
    411 #endif
    412 extern void GLAPIENTRY glutInitWindowPosition(int x, int y);
    413 extern void GLAPIENTRY glutInitWindowSize(int width, int height);
    414 extern void GLAPIENTRY glutMainLoop(void);
     564GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string);
     565#endif
     566GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y);
     567GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height);
     568GLUTAPI void GLUTAPIENTRY glutMainLoop(void);
    415569
    416570/* GLUT window sub-API. */
    417 extern int GLAPIENTRY glutCreateWindow(const char *title);
    418 extern int GLAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
    419 extern void GLAPIENTRY glutDestroyWindow(int win);
    420 extern void GLAPIENTRY glutPostRedisplay(void);
     571GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title);
     572#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
     573GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
     574#ifndef GLUT_BUILDING_LIB
     575static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
     576#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
     577#endif
     578#endif
     579GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
     580GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win);
     581GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void);
    421582#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
    422 extern void GLAPIENTRY glutPostWindowRedisplay(int win);
    423 #endif
    424 extern void GLAPIENTRY glutSwapBuffers(void);
    425 extern int GLAPIENTRY glutGetWindow(void);
    426 extern void GLAPIENTRY glutSetWindow(int win);
    427 extern void GLAPIENTRY glutSetWindowTitle(const char *title);
    428 extern void GLAPIENTRY glutSetIconTitle(const char *title);
    429 extern void GLAPIENTRY glutPositionWindow(int x, int y);
    430 extern void GLAPIENTRY glutReshapeWindow(int width, int height);
    431 extern void GLAPIENTRY glutPopWindow(void);
    432 extern void GLAPIENTRY glutPushWindow(void);
    433 extern void GLAPIENTRY glutIconifyWindow(void);
    434 extern void GLAPIENTRY glutShowWindow(void);
    435 extern void GLAPIENTRY glutHideWindow(void);
     583GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win);
     584#endif
     585GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void);
     586GLUTAPI int GLUTAPIENTRY glutGetWindow(void);
     587GLUTAPI void GLUTAPIENTRY glutSetWindow(int win);
     588GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title);
     589GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title);
     590GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y);
     591GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height);
     592GLUTAPI void GLUTAPIENTRY glutPopWindow(void);
     593GLUTAPI void GLUTAPIENTRY glutPushWindow(void);
     594GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void);
     595GLUTAPI void GLUTAPIENTRY glutShowWindow(void);
     596GLUTAPI void GLUTAPIENTRY glutHideWindow(void);
    436597#if (GLUT_API_VERSION >= 3)
    437 extern void GLAPIENTRY glutFullScreen(void);
    438 extern void GLAPIENTRY glutSetCursor(int cursor);
     598GLUTAPI void GLUTAPIENTRY glutFullScreen(void);
     599GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor);
    439600#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    440 extern void GLAPIENTRY glutWarpPointer(int x, int y);
     601GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y);
    441602#endif
    442603
    443604/* GLUT overlay sub-API. */
    444 extern void GLAPIENTRY glutEstablishOverlay(void);
    445 extern void GLAPIENTRY glutRemoveOverlay(void);
    446 extern void GLAPIENTRY glutUseLayer(GLenum layer);
    447 extern void GLAPIENTRY glutPostOverlayRedisplay(void);
     605GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void);
     606GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void);
     607GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer);
     608GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void);
    448609#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
    449 extern void GLAPIENTRY glutPostWindowOverlayRedisplay(int win);
    450 #endif
    451 extern void GLAPIENTRY glutShowOverlay(void);
    452 extern void GLAPIENTRY glutHideOverlay(void);
     610GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win);
     611#endif
     612GLUTAPI void GLUTAPIENTRY glutShowOverlay(void);
     613GLUTAPI void GLUTAPIENTRY glutHideOverlay(void);
    453614#endif
    454615
    455616/* GLUT menu sub-API. */
    456 extern int GLAPIENTRY glutCreateMenu(void (* GLCALLBACK)(int));
    457 extern void GLAPIENTRY glutDestroyMenu(int menu);
    458 extern int GLAPIENTRY glutGetMenu(void);
    459 extern void GLAPIENTRY glutSetMenu(int menu);
    460 extern void GLAPIENTRY glutAddMenuEntry(const char *label, int value);
    461 extern void GLAPIENTRY glutAddSubMenu(const char *label, int submenu);
    462 extern void GLAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
    463 extern void GLAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
    464 extern void GLAPIENTRY glutRemoveMenuItem(int item);
    465 extern void GLAPIENTRY glutAttachMenu(int button);
    466 extern void GLAPIENTRY glutDetachMenu(int button);
     617GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (* GLUTCALLBACK func)(int));
     618#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
     619GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (* GLUTCALLBACK func)(int), void (__cdecl *exitfunc)(int));
     620#ifndef GLUT_BUILDING_LIB
     621static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (* GLUTCALLBACK func)(int)) { return __glutCreateMenuWithExit(func, exit); }
     622#define glutCreateMenu glutCreateMenu_ATEXIT_HACK
     623#endif
     624#endif
     625GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu);
     626GLUTAPI int GLUTAPIENTRY glutGetMenu(void);
     627GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu);
     628GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value);
     629GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu);
     630GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
     631GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
     632GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item);
     633GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button);
     634GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button);
    467635
    468636/* GLUT window callback sub-API. */
    469 extern void GLAPIENTRY glutDisplayFunc(void (* GLCALLBACK func)(void));
    470 extern void GLAPIENTRY glutReshapeFunc(void (* GLCALLBACK func)(int width, int height));
    471 extern void GLAPIENTRY glutKeyboardFunc(void (* GLCALLBACK func)(unsigned char key, int x, int y));
    472 extern void GLAPIENTRY glutMouseFunc(void (* GLCALLBACK func)(int button, int state, int x, int y));
    473 extern void GLAPIENTRY glutMotionFunc(void (* GLCALLBACK func)(int x, int y));
    474 extern void GLAPIENTRY glutPassiveMotionFunc(void (* GLCALLBACK func)(int x, int y));
    475 extern void GLAPIENTRY glutEntryFunc(void (* GLCALLBACK func)(int state));
    476 extern void GLAPIENTRY glutVisibilityFunc(void (* GLCALLBACK func)(int state));
    477 extern void GLAPIENTRY glutIdleFunc(void (* GLCALLBACK func)(void));
    478 extern void GLAPIENTRY glutTimerFunc(unsigned int millis, void (* GLCALLBACK func)(int value), int value);
    479 extern void GLAPIENTRY glutMenuStateFunc(void (* GLCALLBACK func)(int state));
     637GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (* GLUTCALLBACK func)(void));
     638GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (* GLUTCALLBACK func)(int width, int height));
     639GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (* GLUTCALLBACK func)(unsigned char key, int x, int y));
     640GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (* GLUTCALLBACK func)(int button, int state, int x, int y));
     641GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (* GLUTCALLBACK func)(int x, int y));
     642GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (* GLUTCALLBACK func)(int x, int y));
     643GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (* GLUTCALLBACK func)(int state));
     644GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (* GLUTCALLBACK func)(int state));
     645GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (* GLUTCALLBACK func)(void));
     646GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (* GLUTCALLBACK func)(int value), int value);
     647GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (* GLUTCALLBACK func)(int state));
    480648#if (GLUT_API_VERSION >= 2)
    481 extern void GLAPIENTRY glutSpecialFunc(void (* GLCALLBACK func)(int key, int x, int y));
    482 extern void GLAPIENTRY glutSpaceballMotionFunc(void (* GLCALLBACK func)(int x, int y, int z));
    483 extern void GLAPIENTRY glutSpaceballRotateFunc(void (* GLCALLBACK func)(int x, int y, int z));
    484 extern void GLAPIENTRY glutSpaceballButtonFunc(void (* GLCALLBACK func)(int button, int state));
    485 extern void GLAPIENTRY glutButtonBoxFunc(void (* GLCALLBACK func)(int button, int state));
    486 extern void GLAPIENTRY glutDialsFunc(void (* GLCALLBACK func)(int dial, int value));
    487 extern void GLAPIENTRY glutTabletMotionFunc(void (* GLCALLBACK func)(int x, int y));
    488 extern void GLAPIENTRY glutTabletButtonFunc(void (* GLCALLBACK func)(int button, int state, int x, int y));
     649GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (* GLUTCALLBACK func)(int key, int x, int y));
     650GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (* GLUTCALLBACK func)(int x, int y, int z));
     651GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (* GLUTCALLBACK func)(int x, int y, int z));
     652GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (* GLUTCALLBACK func)(int button, int state));
     653GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (* GLUTCALLBACK func)(int button, int state));
     654GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (* GLUTCALLBACK func)(int dial, int value));
     655GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (* GLUTCALLBACK func)(int x, int y));
     656GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (* GLUTCALLBACK func)(int button, int state, int x, int y));
    489657#if (GLUT_API_VERSION >= 3)
    490 extern void GLAPIENTRY glutMenuStatusFunc(void (* GLCALLBACK func)(int status, int x, int y));
    491 extern void GLAPIENTRY glutOverlayDisplayFunc(void (* GLCALLBACK func)(void));
     658GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (* GLUTCALLBACK func)(int status, int x, int y));
     659GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (* GLUTCALLBACK func)(void));
    492660#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    493 extern void GLAPIENTRY glutWindowStatusFunc(void (* GLCALLBACK func)(int state));
     661GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (* GLUTCALLBACK func)(int state));
    494662#endif
    495663#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
    496 extern void GLAPIENTRY glutKeyboardUpFunc(void (* GLCALLBACK func)(unsigned char key, int x, int y));
    497 extern void GLAPIENTRY glutSpecialUpFunc(void (* GLCALLBACK func)(int key, int x, int y));
    498 extern void GLAPIENTRY glutJoystickFunc(void (* GLCALLBACK func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
     664GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (* GLUTCALLBACK func)(unsigned char key, int x, int y));
     665GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (* GLUTCALLBACK func)(int key, int x, int y));
     666GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (* GLUTCALLBACK func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
    499667#endif
    500668#endif
     
    502670
    503671/* GLUT color index sub-API. */
    504 extern void GLAPIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
    505 extern GLfloat GLAPIENTRY glutGetColor(int ndx, int component);
    506 extern void GLAPIENTRY glutCopyColormap(int win);
     672GLUTAPI void GLUTAPIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
     673GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component);
     674GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win);
    507675
    508676/* GLUT state retrieval sub-API. */
    509 extern int GLAPIENTRY glutGet(GLenum type);
    510 extern int GLAPIENTRY glutDeviceGet(GLenum type);
     677GLUTAPI int GLUTAPIENTRY glutGet(GLenum type);
     678GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type);
    511679#if (GLUT_API_VERSION >= 2)
    512680/* GLUT extension support sub-API */
    513 extern int GLAPIENTRY glutExtensionSupported(const char *name);
     681GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name);
    514682#endif
    515683#if (GLUT_API_VERSION >= 3)
    516 extern int GLAPIENTRY glutGetModifiers(void);
    517 extern int GLAPIENTRY glutLayerGet(GLenum type);
     684GLUTAPI int GLUTAPIENTRY glutGetModifiers(void);
     685GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type);
    518686#endif
    519687
    520688/* GLUT font sub-API */
    521 extern void GLAPIENTRY glutBitmapCharacter(void *font, int character);
    522 extern int GLAPIENTRY glutBitmapWidth(void *font, int character);
    523 extern void GLAPIENTRY glutStrokeCharacter(void *font, int character);
    524 extern int GLAPIENTRY glutStrokeWidth(void *font, int character);
     689GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character);
     690GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character);
     691GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character);
     692GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character);
    525693#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    526 extern int GLAPIENTRY glutBitmapLength(void *font, const unsigned char *string);
    527 extern int GLAPIENTRY glutStrokeLength(void *font, const unsigned char *string);
     694GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string);
     695GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string);
    528696#endif
    529697
    530698/* GLUT pre-built models sub-API */
    531 extern void GLAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
    532 extern void GLAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
    533 extern void GLAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
    534 extern void GLAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
    535 extern void GLAPIENTRY glutWireCube(GLdouble size);
    536 extern void GLAPIENTRY glutSolidCube(GLdouble size);
    537 extern void GLAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
    538 extern void GLAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
    539 extern void GLAPIENTRY glutWireDodecahedron(void);
    540 extern void GLAPIENTRY glutSolidDodecahedron(void);
    541 extern void GLAPIENTRY glutWireTeapot(GLdouble size);
    542 extern void GLAPIENTRY glutSolidTeapot(GLdouble size);
    543 extern void GLAPIENTRY glutWireOctahedron(void);
    544 extern void GLAPIENTRY glutSolidOctahedron(void);
    545 extern void GLAPIENTRY glutWireTetrahedron(void);
    546 extern void GLAPIENTRY glutSolidTetrahedron(void);
    547 extern void GLAPIENTRY glutWireIcosahedron(void);
    548 extern void GLAPIENTRY glutSolidIcosahedron(void);
     699GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
     700GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
     701GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
     702GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
     703GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size);
     704GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size);
     705GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
     706GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
     707GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void);
     708GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void);
     709GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size);
     710GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size);
     711GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void);
     712GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void);
     713GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void);
     714GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void);
     715GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void);
     716GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void);
    549717
    550718#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
    551719/* GLUT video resize sub-API. */
    552 extern int GLAPIENTRY glutVideoResizeGet(GLenum param);
    553 extern void GLAPIENTRY glutSetupVideoResizing(void);
    554 extern void GLAPIENTRY glutStopVideoResizing(void);
    555 extern void GLAPIENTRY glutVideoResize(int x, int y, int width, int height);
    556 extern void GLAPIENTRY glutVideoPan(int x, int y, int width, int height);
     720GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param);
     721GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void);
     722GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void);
     723GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height);
     724GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height);
    557725
    558726/* GLUT debugging sub-API. */
    559 extern void GLAPIENTRY glutReportErrors(void);
     727GLUTAPI void GLUTAPIENTRY glutReportErrors(void);
    560728#endif
    561729
     
    563731/* GLUT device control sub-API. */
    564732/* glutSetKeyRepeat modes. */
    565 #define GLUT_KEY_REPEAT_OFF             0
    566 #define GLUT_KEY_REPEAT_ON              1
    567 #define GLUT_KEY_REPEAT_DEFAULT         2
     733#define GLUT_KEY_REPEAT_OFF             0
     734#define GLUT_KEY_REPEAT_ON              1
     735#define GLUT_KEY_REPEAT_DEFAULT         2
    568736
    569737/* Joystick button masks. */
    570 #define GLUT_JOYSTICK_BUTTON_A          1
    571 #define GLUT_JOYSTICK_BUTTON_B          2
    572 #define GLUT_JOYSTICK_BUTTON_C          4
    573 #define GLUT_JOYSTICK_BUTTON_D          8
    574 
    575 extern void GLAPIENTRY glutIgnoreKeyRepeat(int ignore);
    576 extern void GLAPIENTRY glutSetKeyRepeat(int repeatMode);
    577 extern void GLAPIENTRY glutForceJoystickFunc(void);
     738#define GLUT_JOYSTICK_BUTTON_A          1
     739#define GLUT_JOYSTICK_BUTTON_B          2
     740#define GLUT_JOYSTICK_BUTTON_C          4
     741#define GLUT_JOYSTICK_BUTTON_D          8
     742
     743GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore);
     744GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode);
     745GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void);
    578746
    579747/* GLUT game mode sub-API. */
     
    587755#define GLUT_GAME_MODE_DISPLAY_CHANGED  6
    588756
    589 extern void GLAPIENTRY glutGameModeString(const char *string);
    590 extern int GLAPIENTRY glutEnterGameMode(void);
    591 extern void GLAPIENTRY glutLeaveGameMode(void);
    592 extern int GLAPIENTRY glutGameModeGet(GLenum mode);
     757GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string);
     758GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void);
     759GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void);
     760GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode);
    593761#endif
    594762
    595763#ifdef __cplusplus
    596764}
    597 
    598 #endif
    599 
     765#endif
     766
     767#if 0
    600768#ifdef GLUT_APIENTRY_DEFINED
    601769# undef GLUT_APIENTRY_DEFINED
     
    608776#endif
    609777
     778#ifdef GLUT_DEFINED___CDECL
     779# undef GLUT_DEFINED___CDECL
     780# undef __cdecl
     781#endif
     782
     783#ifdef GLUT_DEFINED__CRTIMP
     784# undef GLUT_DEFINED__CRTIMP
     785# undef _CRTIMP
     786#endif
     787#endif
     788
    610789#endif                  /* __glut_h__ */
  • TabularUnified tags/trunk/src/opengl/mesa/initterm.cpp

    r13542 r13665  
    1 /* $Id: initterm.cpp,v 1.2 2000-03-01 18:49:30 jeroen Exp $ */
     1/* $Id: initterm.cpp,v 1.3 2000-03-11 17:06:34 sandervl Exp $ */
    22
    33/*
     
    3333#include <odin.h>
    3434#include <win32type.h>
     35#include <winconst.h>
    3536#include <odinlx.h>
    3637#include <misc.h>                      /* PLF Wed  98-03-18 23:18:15       */
     
    3940void CDECL _ctordtorInit( void );
    4041void CDECL _ctordtorTerm( void );
     42
     43 //Win32 resource table (produced by wrc)
     44 extern DWORD _Resource_PEResTab;
    4145}
    4246
     
    4650#endif
    4751
    48 /*-------------------------------------------------------------------*/
    49 /* A clean up routine registered with DosExitList must be used if    */
    50 /* runtime calls are required and the runtime is dynamically linked. */
    51 /* This will guarantee that this clean up routine is run before the  */
    52 /* library DLL is terminated.                                        */
    53 /*-------------------------------------------------------------------*/
    54 static void APIENTRY cleanup(ULONG reason);
     52//* ******************************************************************************/
     53//* ******************************************************************************/
     54BOOL WINAPI LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
     55{
     56   switch (fdwReason)
     57   {
     58     case DLL_PROCESS_ATTACH:
     59     case DLL_THREAD_ATTACH:
     60     case DLL_THREAD_DETACH:
     61       return TRUE;
    5562
     63     case DLL_PROCESS_DETACH:
     64       DiveGlobalTerminate();
     65       _ctordtorTerm();
     66       return TRUE;
     67   }
     68   return FALSE;
     69}
    5670
    5771/****************************************************************************/
     
    86100         /*******************************************************************/
    87101
    88          if(RegisterLxDll(hModule, 0, 0) == FALSE)
    89                 return 0UL;
    90 
    91          rc = DosExitList(0x0000F000|EXLST_ADD, cleanup);
    92          if(rc)
     102         if(RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab) == FALSE)
    93103                return 0UL;
    94104
     
    113123}
    114124
    115 
    116 static void APIENTRY cleanup(ULONG ulReason)
    117 {
    118    DiveGlobalTerminate();
    119 
    120    _ctordtorTerm();
    121 
    122    DosExitList(EXLST_EXIT, cleanup);
    123 
    124    return ;
    125 }
Note: See TracChangeset for help on using the changeset viewer.