diff options
-rw-r--r-- | include/GL/glut.h | 2 | ||||
-rw-r--r-- | src/glut/glx/glut_input.c | 2 | ||||
-rw-r--r-- | src/glut/glx/glut_joy.c | 2 | ||||
-rw-r--r-- | src/glut/glx/glutint.h | 2 | ||||
-rw-r--r-- | src/glut/glx/glutwin32.h | 48 | ||||
-rw-r--r-- | src/glut/glx/win32_util.c | 6 | ||||
-rw-r--r-- | src/glut/glx/win32_winproc.c | 6 |
7 files changed, 57 insertions, 11 deletions
diff --git a/include/GL/glut.h b/include/GL/glut.h index 225bb87e52..20605cb358 100644 --- a/include/GL/glut.h +++ b/include/GL/glut.h @@ -108,7 +108,7 @@ extern _CRTIMP void __cdecl exit(int); and redifinition of Windows system defs, also removes requirement of pretty much any standard windows header from this file */ -#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__) # define GLUTAPIENTRY __stdcall #else # define GLUTAPIENTRY diff --git a/src/glut/glx/glut_input.c b/src/glut/glx/glut_input.c index a8d3c61cfe..eea96349ea 100644 --- a/src/glut/glx/glut_input.c +++ b/src/glut/glx/glut_input.c @@ -20,7 +20,9 @@ #include <X11/Xutil.h> #else #include <windows.h> +#ifndef __CYGWIN32__ #include <mmsystem.h> /* Win32 Multimedia API header. */ +#endif #endif /* !_WIN32 */ #include "glutint.h" diff --git a/src/glut/glx/glut_joy.c b/src/glut/glx/glut_joy.c index a7db032f53..a6f54f4a6a 100644 --- a/src/glut/glx/glut_joy.c +++ b/src/glut/glx/glut_joy.c @@ -7,8 +7,10 @@ #ifdef _WIN32 #include <windows.h> +#ifndef __CYGWIN32 #include <mmsystem.h> /* Win32 Multimedia API header. */ #endif +#endif #include "glutint.h" diff --git a/src/glut/glx/glutint.h b/src/glut/glx/glutint.h index 554958ed01..6c825819c0 100644 --- a/src/glut/glx/glutint.h +++ b/src/glut/glx/glutint.h @@ -24,7 +24,7 @@ #define GLUT_BUILDING_LIB /* Building the GLUT library itself. */ #include <GL/glut.h> -#if defined( MESA ) && defined( _WIN32 ) +#if defined(MESA) && defined(_WIN32) && !defined(__CYGWIN32__) #include <gl/mesa_wgl.h> #endif diff --git a/src/glut/glx/glutwin32.h b/src/glut/glx/glutwin32.h index 0852389019..304eeb20a2 100644 --- a/src/glut/glx/glutwin32.h +++ b/src/glut/glx/glutwin32.h @@ -40,9 +40,57 @@ #define XA_STRING 0 /* Private routines from win32_util.c */ +#ifndef __CYGWIN32__ extern int gettimeofday(struct timeval* tp, void* tzp); +#endif extern void *__glutFont(void *font); extern int __glutGetTransparentPixel(Display *dpy, XVisualInfo *vinfo); extern void __glutAdjustCoords(Window parent, int *x, int *y, int *width, int *height); + +/* Cygwin B20.1 misses the following definitions */ +#ifdef __CYGWIN32__ + +/* from winuser.h */ +#define CDS_FULLSCREEN 4 + +/* from mmsystem.h */ +#define WINMMAPI __declspec(dllimport) +typedef UINT MMRESULT; + +#define MM_JOY1MOVE 0x3A0 +#define MM_JOY1ZMOVE 0x3A2 +#define MM_JOY1BUTTONDOWN 0x3B5 +#define MM_JOY1BUTTONUP 0x3B7 + +#define JOYERR_NOERROR 0 +#define JOYERR_PARMS 165 + +#define JOY_RETURNALL 0x000000ffl + +#define JOYSTICKID1 0 + +typedef struct joyinfoex_tag { + DWORD dwSize; /* size of structure */ + DWORD dwFlags; /* flags to indicate what to return */ + DWORD dwXpos; /* x position */ + DWORD dwYpos; /* y position */ + DWORD dwZpos; /* z position */ + DWORD dwRpos; /* rudder/4th axis position */ + DWORD dwUpos; /* 5th axis position */ + DWORD dwVpos; /* 6th axis position */ + DWORD dwButtons; /* button states */ + DWORD dwButtonNumber; /* current button number pressed */ + DWORD dwPOV; /* point of view state */ + DWORD dwReserved1; /* reserved for communication between winmm & driver */ + DWORD dwReserved2; /* reserved for future expansion */ +} JOYINFOEX, *PJOYINFOEX, /* NEAR */ *NPJOYINFOEX, /* FAR */ *LPJOYINFOEX; + +WINMMAPI MMRESULT WINAPI joyGetPosEx( UINT uJoyID, LPJOYINFOEX pji); +WINMMAPI MMRESULT WINAPI joyReleaseCapture( UINT uJoyID); +WINMMAPI MMRESULT WINAPI joySetCapture( HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged); +WINMMAPI MMRESULT WINAPI joySetThreshold( UINT uJoyID, UINT uThreshold); + +#endif + #endif /* __glutwin32_h__ */ diff --git a/src/glut/glx/win32_util.c b/src/glut/glx/win32_util.c index 8dc714c035..d05d1d1e82 100644 --- a/src/glut/glx/win32_util.c +++ b/src/glut/glx/win32_util.c @@ -11,11 +11,7 @@ #include "glutint.h" #include "glutstroke.h" #include "glutbitmap.h" -#if defined(__CYGWIN32__) -typedef MINMAXINFO* LPMINMAXINFO; -#else #include <sys/timeb.h> -#endif /* The following added by Paul Garceau <pgarceau@teleport.com> */ #if defined(__MINGW32__) @@ -27,6 +23,7 @@ struct timeval; extern StrokeFontRec glutStrokeRoman, glutStrokeMonoRoman; extern BitmapFontRec glutBitmap8By13, glutBitmap9By15, glutBitmapTimesRoman10, glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12, glutBitmapHelvetica18; +#ifndef __CYGWIN32__ int gettimeofday(struct timeval* tp, void* tzp) { @@ -39,6 +36,7 @@ gettimeofday(struct timeval* tp, void* tzp) /* 0 indicates that the call succeeded. */ return 0; } +#endif /* To get around the fact that Microsoft DLLs only allow functions to be exported and now data addresses (as Unix DSOs support), the diff --git a/src/glut/glx/win32_winproc.c b/src/glut/glx/win32_winproc.c index 2607a205cd..945b7eb9ca 100644 --- a/src/glut/glx/win32_winproc.c +++ b/src/glut/glx/win32_winproc.c @@ -8,13 +8,9 @@ #include "glutint.h" -#if defined(__CYGWIN32__) -typedef MINMAXINFO* LPMINMAXINFO; -#else #include <sys/timeb.h> -#endif -#ifdef _WIN32 +#if defined(_WIN32) && !defined(__CYGWIN32__) #include <mmsystem.h> /* Win32 Multimedia API header. */ #endif |