diff options
Diffstat (limited to 'include/GL/glut.h')
-rw-r--r-- | include/GL/glut.h | 117 |
1 files changed, 22 insertions, 95 deletions
diff --git a/include/GL/glut.h b/include/GL/glut.h index 137b8efa13a..022378fb9d7 100644 --- a/include/GL/glut.h +++ b/include/GL/glut.h @@ -7,35 +7,25 @@ provided without guarantee or warrantee expressed or implied. This program is -not- in the public domain. */ +#if defined(_WIN32) +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +# include <windows.h> +#endif + #include <GL/gl.h> #include <GL/glu.h> -#if defined(__MINGW32__) -#include <GL/mesa_wgl.h> -#endif - #ifdef __cplusplus extern "C" { #endif #if defined(_WIN32) -/* GLUT 3.7 now tries to avoid including <windows.h> - to avoid name space pollution, but Win32's <GL/gl.h> - needs APIENTRY and WINGDIAPI defined properly. - - [email protected] contributes: - If users are building glut code on MS Windows, then they should - make sure they include windows.h early, let's not get into a - header definitions war since MS has proven it's capability to - change header dependencies w/o publishing they have done so. - - So, let's not include windows.h here, as it's not really required and - MS own gl/gl.h *should* include it if the dependency is there. */ - /* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA in your compile preprocessor options. */ -# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) +# if defined(_MSC_VER) && !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) # pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ /* To enable automatic SGI OpenGL for Windows library usage for GLUT, define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ @@ -53,7 +43,7 @@ extern "C" { /* To disable supression of annoying warnings about floats being promoted to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor options. */ -# ifndef GLUT_NO_WARNING_DISABLE +# if defined(_MSC_VER) && !defined(GLUT_NO_WARNING_DISABLE) # pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ # pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ # endif @@ -119,88 +109,25 @@ extern _CRTIMP void __cdecl exit(int); #endif /* GLUT API entry point declarations for Win32. */ -#if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && defined(_DLL) +#if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && !defined(GLUT_STATIC) # define GLUTAPI __declspec(dllexport) -#elif defined(_DLL) +#elif !defined(GLUT_STATIC) # define GLUTAPI __declspec(dllimport) #else # define GLUTAPI extern #endif -#if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA) -# if !defined(MESA_MINWARN) -# pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" ) -# pragma message( "----: and PROC typedef. If you receive compiler warnings about either ") -# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" ) -# endif -# define CALLBACK __stdcall - -#if !defined(__MINGW32__) - typedef int (GLUTAPIENTRY *PROC)(); - typedef void *HGLRC; - typedef void *HDC; -#endif -typedef unsigned long COLORREF; -#endif - -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA) -# if !defined(MESA_MINWARN) -# pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" ) -# pragma message( "----: and macros. If you receive compiler warnings about any being multiply ") -# pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" ) -# endif -# define WGL_FONT_LINES 0 -# define WGL_FONT_POLYGONS 1 -# ifdef UNICODE -# define wglUseFontBitmaps wglUseFontBitmapsW -# define wglUseFontOutlines wglUseFontOutlinesW -# else -# define wglUseFontBitmaps wglUseFontBitmapsA -# define wglUseFontOutlines wglUseFontOutlinesA -# endif /* !UNICODE */ -typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; -typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; -# pragma warning( push ) -# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ -# define WGLAPI __declspec(dllimport) -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC); -WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc); -WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void); -WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC); -WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int); -WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void); -WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*); -WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int); -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR); -WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *); -WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC); -WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int); -WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *); -WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC); -WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int); -WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY SwapBuffers(HDC); -WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY GetPixelFormat(HDC); -WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); -# undef WGLAPI -# pragma warning( pop ) -#endif - -#else /* _WIN32 not defined */ - -/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */ -# define GLUTAPIENTRY GLAPIENTRY +#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 + +# define GLUTAPIENTRY +# define GLUTAPIENTRYV +# define GLUTCALLBACK +# define GLUTAPI __attribute__((visibility("default"))) + +#else + +/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing */ +# define GLUTAPIENTRY # define GLUTAPIENTRYV # define GLUTCALLBACK # define GLUTAPI extern |