Mercurial > sdl-ios-xcode
annotate src/video/windx5/directx.h @ 4440:7bb8f748a14d SDL-1.2
Fixed bug 978
Yann Leprince 2010-03-31 11:07:53 PDT
Please add a #serial line as below to sdl.m4 and increase the serial number
with each revision of this file. This allows using aclocal --install, thereby
enabling automatic updating of sdl.m4 in SDL-based packages that distribute it.
# serial 1
The complete documentation and rationale for #serial can be found in the
Automake documentation:
<http://www.gnu.org/software/automake/manual/html_node/Serials.html>.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 23 Apr 2010 02:19:19 -0700 |
parents | eada7e321df6 |
children | 134c6707b767 |
rev | line source |
---|---|
0 | 1 |
265 | 2 #ifndef _directx_h |
0 | 3 #define _directx_h |
4 | |
4427 | 5 #ifdef __GNUC__ |
6 #define NONAMELESSUNION | |
7 #endif | |
8 | |
0 | 9 /* Include all of the DirectX 5.0 headers and adds any necessary tweaks */ |
10 | |
1433
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
11 #define WIN32_LEAN_AND_MEAN |
bb6839704ed6
SDL_windows.h is no longer necessary
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
12 #include <windows.h> |
0 | 13 #include <mmsystem.h> |
14 #ifndef WIN32 | |
15 #define WIN32 | |
16 #endif | |
17 #undef WINNT | |
18 | |
19 /* Far pointers don't exist in 32-bit code */ | |
20 #ifndef FAR | |
21 #define FAR | |
22 #endif | |
23 | |
24 /* Error codes not yet included in Win32 API header files */ | |
25 #ifndef MAKE_HRESULT | |
26 #define MAKE_HRESULT(sev,fac,code) \ | |
27 ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) | |
28 #endif | |
29 | |
30 #ifndef S_OK | |
31 #define S_OK (HRESULT)0x00000000L | |
32 #endif | |
33 | |
34 #ifndef SUCCEEDED | |
35 #define SUCCEEDED(x) ((HRESULT)(x) >= 0) | |
36 #endif | |
37 #ifndef FAILED | |
38 #define FAILED(x) ((HRESULT)(x)<0) | |
39 #endif | |
40 | |
41 #ifndef E_FAIL | |
42 #define E_FAIL (HRESULT)0x80000008L | |
43 #endif | |
44 #ifndef E_NOINTERFACE | |
45 #define E_NOINTERFACE (HRESULT)0x80004002L | |
46 #endif | |
47 #ifndef E_OUTOFMEMORY | |
48 #define E_OUTOFMEMORY (HRESULT)0x8007000EL | |
49 #endif | |
50 #ifndef E_INVALIDARG | |
51 #define E_INVALIDARG (HRESULT)0x80070057L | |
52 #endif | |
53 #ifndef E_NOTIMPL | |
54 #define E_NOTIMPL (HRESULT)0x80004001L | |
55 #endif | |
56 #ifndef REGDB_E_CLASSNOTREG | |
57 #define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L | |
58 #endif | |
59 | |
60 /* Severity codes */ | |
61 #ifndef SEVERITY_ERROR | |
62 #define SEVERITY_ERROR 1 | |
63 #endif | |
64 | |
65 /* Error facility codes */ | |
66 #ifndef FACILITY_WIN32 | |
67 #define FACILITY_WIN32 7 | |
68 #endif | |
69 | |
70 #ifndef FIELD_OFFSET | |
71 #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) | |
72 #endif | |
73 | |
74 /* DirectX headers (if it isn't included, I haven't tested it yet) | |
75 */ | |
76 /* We need these defines to mark what version of DirectX API we use */ | |
77 #define DIRECTDRAW_VERSION 0x0700 | |
78 #define DIRECTSOUND_VERSION 0x0500 | |
4167 | 79 #define DIRECTINPUT_VERSION 0x0700 |
0 | 80 |
81 #include <ddraw.h> | |
82 #include <dsound.h> | |
83 #include <dinput.h> | |
84 | |
4167 | 85 #if DIRECTINPUT_VERSION >= 0x0700 && !defined(DIMOFS_BUTTON4) |
86 typedef struct _DIMOUSESTATE2 { | |
87 LONG lX; | |
88 LONG lY; | |
89 LONG lZ; | |
90 BYTE rgbButtons[8]; | |
91 } DIMOUSESTATE2, *LPDIMOUSESTATE2; | |
92 | |
93 #define DIMOFS_BUTTON4 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 4) | |
94 #define DIMOFS_BUTTON5 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 5) | |
95 #define DIMOFS_BUTTON6 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 6) | |
96 #define DIMOFS_BUTTON7 (FIELD_OFFSET(DIMOUSESTATE2, rgbButtons) + 7) | |
97 | |
98 extern const DIDATAFORMAT c_dfDIMouse2; | |
99 #endif | |
100 | |
0 | 101 #endif /* _directx_h */ |