Moving the Windows-specific includes into the Windows-specific header file
[freeglut] / src / mswin / freeglut_internal_mswin.h
1 /*\r
2  * freeglut_internal_mswin.h\r
3  *\r
4  * The freeglut library private include file.\r
5  *\r
6  * Copyright (c) 2012 Stephen J. Baker. All Rights Reserved.\r
7  * Written by John F. Fay, <fayjf@sourceforge.net>\r
8  * Creation date: Thu Jan 19, 2012\r
9  *\r
10  * Permission is hereby granted, free of charge, to any person obtaining a\r
11  * copy of this software and associated documentation files (the "Software"),\r
12  * to deal in the Software without restriction, including without limitation\r
13  * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
14  * and/or sell copies of the Software, and to permit persons to whom the\r
15  * Software is furnished to do so, subject to the following conditions:\r
16  *\r
17  * The above copyright notice and this permission notice shall be included\r
18  * in all copies or substantial portions of the Software.\r
19  *\r
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
21  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
22  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r
23  * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
24  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
25  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
26  */\r
27 \r
28 #ifndef  FREEGLUT_INTERNAL_MSWIN_H\r
29 #define  FREEGLUT_INTERNAL_MSWIN_H\r
30 \r
31 \r
32 /* All Win32 headers depend on the huge windows.h recursive include.\r
33  * Note: Lower-case header names are used, for best cross-platform\r
34  * compatibility.\r
35  */\r
36 #if !defined(_WIN32_WCE)\r
37 #    include <windows.h>\r
38 #    include <windowsx.h>\r
39 #    include <mmsystem.h>\r
40 /* CYGWIN does not have tchar.h, but has TEXT(x), defined in winnt.h. */\r
41 #    ifndef __CYGWIN__\r
42 #      include <tchar.h>\r
43 #    else\r
44 #      define _TEXT(x) TEXT(x)\r
45 #      define _T(x)    TEXT(x)\r
46 #    endif\r
47 \r
48 #endif\r
49 \r
50 \r
51 \r
52 typedef struct tagSFG_PlatformDisplay SFG_PlatformDisplay;\r
53 struct tagSFG_PlatformDisplay\r
54 {\r
55     HINSTANCE       Instance;           /* The application's instance        */\r
56     DEVMODE         DisplayMode;        /* Desktop's display settings        */\r
57     char           *DisplayName;        /* Display name for multi display support*/ \r
58 };\r
59 \r
60 /*\r
61  * Make "freeglut" window handle and context types so that we don't need so\r
62  * much conditionally-compiled code later in the library.\r
63  */\r
64 typedef HWND    SFG_WindowHandleType ;\r
65 typedef HGLRC   SFG_WindowContextType ;\r
66 typedef struct tagSFG_PlatformContext SFG_PlatformContext;\r
67 struct tagSFG_PlatformContext\r
68 {\r
69     HDC             Device;          /* The window's device context         */\r
70 };\r
71 \r
72 \r
73 /* Joystick-Specific Definitions */\r
74 #if !defined(_WIN32_WCE)\r
75 #    define _JS_MAX_AXES  8\r
76 typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;\r
77 struct tagSFG_PlatformJoystick\r
78 {\r
79     JOYCAPS     jsCaps;\r
80     JOYINFOEX   js;\r
81     UINT        js_id;\r
82 };\r
83 #endif\r
84 \r
85 \r
86 \r
87 /* Function to be called on exit */\r
88 extern void (__cdecl *__glutExitFunc)( int return_value );\r
89 \r
90 \r
91 #endif  /* FREEGLUT_INTERNAL_MSWIN_H */