configure: allow C{,XX}FLAGS override
[mesa.git] / src / glut / glx / glutwin32.h
1 #ifndef __glutwin32_h__
2 #define __glutwin32_h__
3
4 /* Copyright (c) Nate Robins, 1997. */
5
6 /* This program is freely distributable without licensing fees
7 and is provided without guarantee or warrantee expressed or
8 implied. This program is -not- in the public domain. */
9
10 #include "win32_x11.h"
11 #include "win32_glx.h"
12
13 /* We have to undef some things because Microsoft likes to pollute the
14 global namespace. */
15 #undef TRANSPARENT
16
17 /* Win32 "equivalent" cursors - eventually, the X glyphs should be
18 converted to Win32 cursors -- then they will look the same */
19 #define XC_arrow IDC_ARROW
20 #define XC_top_left_arrow IDC_ARROW
21 #define XC_hand1 IDC_SIZEALL
22 #define XC_pirate IDC_NO
23 #define XC_question_arrow IDC_HELP
24 #define XC_exchange IDC_NO
25 #define XC_spraycan IDC_SIZEALL
26 #define XC_watch IDC_WAIT
27 #define XC_xterm IDC_IBEAM
28 #define XC_crosshair IDC_CROSS
29 #define XC_sb_v_double_arrow IDC_SIZENS
30 #define XC_sb_h_double_arrow IDC_SIZEWE
31 #define XC_top_side IDC_UPARROW
32 #define XC_bottom_side IDC_SIZENS
33 #define XC_left_side IDC_SIZEWE
34 #define XC_right_side IDC_SIZEWE
35 #define XC_top_left_corner IDC_SIZENWSE
36 #define XC_top_right_corner IDC_SIZENESW
37 #define XC_bottom_right_corner IDC_SIZENWSE
38 #define XC_bottom_left_corner IDC_SIZENESW
39
40 #define XA_STRING 0
41
42 /* Private routines from win32_util.c */
43 #ifndef __CYGWIN32__
44 struct timeval;
45 extern int gettimeofday(struct timeval* tp, void* tzp);
46 #endif
47 extern void *__glutFont(void *font);
48 extern int __glutGetTransparentPixel(Display *dpy, XVisualInfo *vinfo);
49 extern void __glutAdjustCoords(Window parent, int *x, int *y, int *width, int *height);
50
51
52 /* Cygwin B20.1 misses the following definitions */
53 #ifdef __CYGWIN32__
54
55 /* from winuser.h */
56 #define CDS_FULLSCREEN 4
57
58 /* from mmsystem.h */
59 #define WINMMAPI __declspec(dllimport)
60 typedef UINT MMRESULT;
61
62 #define MM_JOY1MOVE 0x3A0
63 #define MM_JOY1ZMOVE 0x3A2
64 #define MM_JOY1BUTTONDOWN 0x3B5
65 #define MM_JOY1BUTTONUP 0x3B7
66
67 #define JOYERR_NOERROR 0
68 #define JOYERR_PARMS 165
69
70 #define JOY_RETURNALL 0x000000ffl
71
72 #define JOYSTICKID1 0
73
74 typedef struct joyinfoex_tag {
75 DWORD dwSize; /* size of structure */
76 DWORD dwFlags; /* flags to indicate what to return */
77 DWORD dwXpos; /* x position */
78 DWORD dwYpos; /* y position */
79 DWORD dwZpos; /* z position */
80 DWORD dwRpos; /* rudder/4th axis position */
81 DWORD dwUpos; /* 5th axis position */
82 DWORD dwVpos; /* 6th axis position */
83 DWORD dwButtons; /* button states */
84 DWORD dwButtonNumber; /* current button number pressed */
85 DWORD dwPOV; /* point of view state */
86 DWORD dwReserved1; /* reserved for communication between winmm & driver */
87 DWORD dwReserved2; /* reserved for future expansion */
88 } JOYINFOEX, *PJOYINFOEX, /* NEAR */ *NPJOYINFOEX, /* FAR */ *LPJOYINFOEX;
89
90 WINMMAPI MMRESULT WINAPI joyGetPosEx( UINT uJoyID, LPJOYINFOEX pji);
91 WINMMAPI MMRESULT WINAPI joyReleaseCapture( UINT uJoyID);
92 WINMMAPI MMRESULT WINAPI joySetCapture( HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged);
93 WINMMAPI MMRESULT WINAPI joySetThreshold( UINT uJoyID, UINT uThreshold);
94
95 #endif
96
97 #endif /* __glutwin32_h__ */