Mercurial > sdl-ios-xcode
annotate src/audio/windx5/directx.h @ 4426:1bceff8f008f
Fixed bug #943
Ozkan Sezer 2010-02-06 12:31:06 PST
Hi:
Here are some small fixes for compiling SDL against mingw-w64.
(see http://mingw-w64.sourceforge.net/ . Despite the name, it
supports both win32 and win64.)
src/audio/windx5/directx.h and src/video/windx5/directx.h (both
SDL-1.2 and SDL-1.3.) I get compilation errors about some union
not having a member named u1 and alike, because of other system
headers being included before this one and them already defining
DUMMYUNIONNAME and stuff. This header probably assumes that those
stuff are defined in windef.h, but mingw-w64 headers define them
in _mingw.h. Easily fixed by moving NONAMELESSUNION definition to
the top of the file.
src/thread/win32/SDL_systhread.c (both SDL-1.2 and SDL-1.3.) :
The __GNUC__ case for pfnSDL_CurrentBeginThread is 32-bit centric
because _beginthreadex returns uintptr_t, not unsigned long which
is 32 bits in win64. Changing the return type to uintptr_t fixes
it.
video/SDL_blit.h (and configure.in) (SDL-1.3-only) : MinGW-w64
uses msvcrt version of _aligned_malloc and _aligned_free and
they are defined in intrin.h (similar to VC). Adding proper
ifdefs fixes it. (Notes about macros to check: __MINGW32__ is
defined for both mingw.org and for mingw-w64 for both win32 and
win64, __MINGW64__ is only defined for _WIN64, so __MINGW64__
can't be used to detect mingw-w64: including _mingw.h and then
checking for __MINGW64_VERSION_MAJOR does the trick.)
SDL_win32video.h (SDL-1.3-only) : Tweaked the VINWER definition
and location in order to avoid multiple redefinition warnings.
Hope these are useful. Thanks.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 10 Mar 2010 15:02:58 +0000 |
parents | c121d94672cb |
children | 80277d92551b |
rev | line source |
---|---|
1274
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 #ifndef _directx_h |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
3 #define _directx_h |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
4426 | 5 #ifdef __GNUC__ |
6 #define NONAMELESSUNION | |
7 #endif | |
8 | |
1274
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 /* Include all of the DirectX 5.0 headers and adds any necessary tweaks */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
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> |
1274
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
13 #include <mmsystem.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 #ifndef WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
15 #define WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
16 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
17 #undef WINNT |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 /* Far pointers don't exist in 32-bit code */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 #ifndef FAR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 #define FAR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
22 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 /* Error codes not yet included in Win32 API header files */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 #ifndef MAKE_HRESULT |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 #define MAKE_HRESULT(sev,fac,code) \ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 ((HRESULT)(((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code)))) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 #ifndef S_OK |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 #define S_OK (HRESULT)0x00000000L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
32 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 #ifndef SUCCEEDED |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
35 #define SUCCEEDED(x) ((HRESULT)(x) >= 0) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
36 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
37 #ifndef FAILED |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 #define FAILED(x) ((HRESULT)(x)<0) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
39 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
40 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
41 #ifndef E_FAIL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 #define E_FAIL (HRESULT)0x80000008L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
43 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
44 #ifndef E_NOINTERFACE |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
45 #define E_NOINTERFACE (HRESULT)0x80004002L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
46 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
47 #ifndef E_OUTOFMEMORY |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 #define E_OUTOFMEMORY (HRESULT)0x8007000EL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 #ifndef E_INVALIDARG |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 #define E_INVALIDARG (HRESULT)0x80070057L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 #ifndef E_NOTIMPL |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 #define E_NOTIMPL (HRESULT)0x80004001L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 #ifndef REGDB_E_CLASSNOTREG |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 #define REGDB_E_CLASSNOTREG (HRESULT)0x80040154L |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 /* Severity codes */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 #ifndef SEVERITY_ERROR |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 #define SEVERITY_ERROR 1 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 /* Error facility codes */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 #ifndef FACILITY_WIN32 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 #define FACILITY_WIN32 7 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 #ifndef FIELD_OFFSET |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 #define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field)) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 #endif |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 /* DirectX headers (if it isn't included, I haven't tested it yet) |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 /* We need these defines to mark what version of DirectX API we use */ |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 #define DIRECTDRAW_VERSION 0x0700 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 #define DIRECTSOUND_VERSION 0x0500 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 #define DIRECTINPUT_VERSION 0x0500 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 #include <ddraw.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 #include <dsound.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 #include <dinput.h> |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 |
4726fa79ede1
Date: Mon, 23 Feb 2004 23:29:20 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 #endif /* _directx_h */ |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1433
diff
changeset
|
86 /* vi: set ts=4 sw=4 expandtab: */ |