annotate include/begin_code.h @ 4249:429c8dd3175d SDL-1.2

Fixed bug #713 Don't clamp the mouse coordinates to the video surface size, instead clamp them to the last known window size. This allows users to get the correct mouse coordinates even if they don't call SDL_SetVideoMode() in response to an SDL_VIDEORESIZE event (used as a hack to retain the OpenGL context on Windows and Linux after a window resize)
author Sam Lantinga <slouken@libsdl.org>
date Sun, 27 Sep 2009 05:18:43 +0000
parents 4c4113c2162c
children 0d4756e57224
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1 /*
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
4159
a1b03ba2fcd0 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 4091
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
6 modify it under the terms of the GNU Library General Public
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
8 version 2 of the License, or (at your option) any later version.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
9
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
13 Library General Public License for more details.
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
15 You should have received a copy of the GNU Library General Public
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
16 License along with this library; if not, write to the Free
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
18
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
19 Sam Lantinga
251
b8688cfdc232 Updated the headers with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents: 195
diff changeset
20 slouken@libsdl.org
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
21 */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
22
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
23 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
24 * @file begin_code.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
25 * This file sets things up for C dynamic library function definitions,
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
26 * static inlined functions, and structures aligned at 4-byte alignment.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
27 * If you don't like ugly C preprocessor code, don't look at this file. :)
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
28 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
29
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
30 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
31 * @file begin_code.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
32 * This shouldn't be nested -- included it around code only.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
33 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
34 #ifdef _begin_code_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
35 #error Nested inclusion of begin_code.h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
36 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
37 #define _begin_code_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
39 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
40 * @def DECLSPEC
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
41 * Some compilers use a special export keyword
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
42 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
43 #ifndef DECLSPEC
4164
7a4c511c980a Date: Fri, 6 Mar 2009 12:41:17 -0800
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
44 # if defined(__BEOS__) || defined(__HAIKU__)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
45 # if defined(__GNUC__)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
46 # define DECLSPEC __declspec(dllexport)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
47 # else
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
48 # define DECLSPEC __declspec(export)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
49 # endif
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
50 # elif defined(__WIN32__)
274
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
51 # ifdef __BORLANDC__
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
52 # ifdef BUILD_SDL
636
d9c2ab142f2f *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 346
diff changeset
53 # define DECLSPEC
274
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
54 # else
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
55 # define DECLSPEC __declspec(dllimport)
274
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
56 # endif
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
57 # else
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
58 # define DECLSPEC __declspec(dllexport)
051b991765ba David Snopek added Borland compiler support
Sam Lantinga <slouken@libsdl.org>
parents: 251
diff changeset
59 # endif
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
60 # elif defined(__OS2__)
1190
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
61 # ifdef __WATCOMC__
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
62 # ifdef BUILD_SDL
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
63 # define DECLSPEC __declspec(dllexport)
1190
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
64 # else
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
65 # define DECLSPEC
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
66 # endif
4193
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
67 # elif defined (__GNUC__) && __GNUC__ < 4
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
68 # /* Added support for GCC-EMX <v4.x */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
69 # /* this is needed for XFree86/OS2 developement */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
70 # /* F. Ambacher(anakor@snafu.de) 05.2008 */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
71 # ifdef BUILD_SDL
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
72 # define DECLSPEC __declspec(dllexport)
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
73 # else
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
74 # define DECLSPEC
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
75 # endif
1190
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
76 # else
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
77 # define DECLSPEC
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
78 # endif
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1025
diff changeset
79 # else
1595
4aa7df2476e7 Only use the visibility attribute in gcc 4.0 or newer
Sam Lantinga <slouken@libsdl.org>
parents: 1574
diff changeset
80 # if defined(__GNUC__) && __GNUC__ >= 4
1574
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
81 # define DECLSPEC __attribute__ ((visibility("default")))
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
82 # else
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
83 # define DECLSPEC
0fd72308659e Default to use the visibility attribute, on gcc (is this okay?)
Sam Lantinga <slouken@libsdl.org>
parents: 1573
diff changeset
84 # endif
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
85 # endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
86 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
87
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
88 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
89 * @def SDLCALL
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
90 * By default SDL uses the C calling convention
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
91 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
92 #ifndef SDLCALL
4193
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
93 # if defined(__WIN32__) && !defined(__GNUC__)
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
94 # define SDLCALL __cdecl
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
95 # elif defined(__OS2__)
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
96 # if defined (__GNUC__) && __GNUC__ < 4
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
97 # /* Added support for GCC-EMX <v4.x */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
98 # /* this is needed for XFree86/OS2 developement */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
99 # /* F. Ambacher(anakor@snafu.de) 05.2008 */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
100 # define SDLCALL _cdecl
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
101 # else
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
102 # /* On other compilers on OS/2, we use the _System calling convention */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
103 # /* to be compatible with every compiler */
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
104 # define SDLCALL _System
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
105 # endif
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
106 # else
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
107 # define SDLCALL
430e6690c4cd GCC 3.03 support on OS/2.
Ryan C. Gordon <icculus@icculus.org>
parents: 4164
diff changeset
108 # endif
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
109 #endif /* SDLCALL */
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
110
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 85
diff changeset
111 #ifdef __SYMBIAN32__
3975
e85e65aec22f Added S60 port.
Ryan C. Gordon <icculus@icculus.org>
parents: 3965
diff changeset
112 #ifndef EKA2
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 85
diff changeset
113 #undef DECLSPEC
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 85
diff changeset
114 #define DECLSPEC
3975
e85e65aec22f Added S60 port.
Ryan C. Gordon <icculus@icculus.org>
parents: 3965
diff changeset
115 #elif !defined(__WINS__)
e85e65aec22f Added S60 port.
Ryan C. Gordon <icculus@icculus.org>
parents: 3965
diff changeset
116 #undef DECLSPEC
e85e65aec22f Added S60 port.
Ryan C. Gordon <icculus@icculus.org>
parents: 3965
diff changeset
117 #define DECLSPEC __declspec(dllexport)
4091
98b219f9ff17 Removed some C++ style comments from the public headers.
Ryan C. Gordon <icculus@icculus.org>
parents: 3975
diff changeset
118 #endif /* !EKA2 */
98b219f9ff17 Removed some C++ style comments from the public headers.
Ryan C. Gordon <icculus@icculus.org>
parents: 3975
diff changeset
119 #endif /* __SYMBIAN32__ */
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 85
diff changeset
120
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
121 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
122 * @file begin_code.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
123 * Force structure packing at 4 byte alignment.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
124 * This is necessary if the header is included in code which has structure
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
125 * packing set to an alternate value, say for loading structures from disk.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
126 * The packing is reset to the previous value in close_code.h
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
127 */
288
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
128 #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
129 #ifdef _MSC_VER
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
130 #pragma warning(disable: 4103)
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
131 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
132 #ifdef __BORLANDC__
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
133 #pragma nopackwarning
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
134 #endif
195
3669d47b07d3 *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 189
diff changeset
135 #pragma pack(push,4)
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1190
diff changeset
136 #elif (defined(__MWERKS__) && defined(__MACOS__))
189
175917167aac Date: Thu, 13 Sep 2001 14:14:42 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 187
diff changeset
137 #pragma options align=mac68k4byte
175917167aac Date: Thu, 13 Sep 2001 14:14:42 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 187
diff changeset
138 #pragma enumsalwaysint on
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
139 #endif /* Compiler needs structure packing set */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
140
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
141 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
142 * @def SDL_INLINE_OKAY
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
143 * Set up compiler-specific options for inlining functions
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
144 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
145 #ifndef SDL_INLINE_OKAY
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
146 #ifdef __GNUC__
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
147 #define SDL_INLINE_OKAY
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
148 #else
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
149 /* Add any special compiler-specific cases here */
288
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
150 #if defined(_MSC_VER) || defined(__BORLANDC__) || \
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
151 defined(__DMC__) || defined(__SC__) || \
1019
e3b3130f3af8 Date: Fri, 31 Dec 2004 04:14:09 +0900
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
152 defined(__WATCOMC__) || defined(__LCC__) || \
3975
e85e65aec22f Added S60 port.
Ryan C. Gordon <icculus@icculus.org>
parents: 3965
diff changeset
153 defined(__DECC) || defined(__EABI__)
288
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
154 #ifndef __inline__
85
60c7960354e0 Added support for Visual C++ inline keyword
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
155 #define __inline__ __inline
288
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
156 #endif
85
60c7960354e0 Added support for Visual C++ inline keyword
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
157 #define SDL_INLINE_OKAY
60c7960354e0 Added support for Visual C++ inline keyword
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
158 #else
60c7960354e0 Added support for Visual C++ inline keyword
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
159 #if !defined(__MRC__) && !defined(_SGI_SOURCE)
3965
19d708301fab Make sure __inline__ isn't defined before #defining it, since some compilers
Ryan C. Gordon <icculus@icculus.org>
parents: 1621
diff changeset
160 #ifndef __inline__
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
161 #define __inline__ inline
3965
19d708301fab Make sure __inline__ isn't defined before #defining it, since some compilers
Ryan C. Gordon <icculus@icculus.org>
parents: 1621
diff changeset
162 #endif
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
163 #define SDL_INLINE_OKAY
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
164 #endif /* Not a funky compiler */
85
60c7960354e0 Added support for Visual C++ inline keyword
Sam Lantinga <slouken@lokigames.com>
parents: 0
diff changeset
165 #endif /* Visual C++ */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
166 #endif /* GNU C */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
167 #endif /* SDL_INLINE_OKAY */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
168
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
169 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
170 * @def __inline__
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
171 * If inlining isn't supported, remove "__inline__", turning static
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
172 * inlined functions into static functions (resulting in code bloat
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
173 * in all files which include the offending header files)
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
174 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
175 #ifndef SDL_INLINE_OKAY
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
176 #define __inline__
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
177 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
178
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
179 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
180 * @def NULL
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
181 * Apparently this is needed by several Windows compilers
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4193
diff changeset
182 */
346
a18ea34d9efe Fixed precompiled headers on MacOS X
Sam Lantinga <slouken@libsdl.org>
parents: 337
diff changeset
183 #if !defined(__MACH__)
288
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
184 #ifndef NULL
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
185 #ifdef __cplusplus
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
186 #define NULL 0
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
187 #else
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
188 #define NULL ((void *)0)
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
189 #endif
2f5a6062db86 Updated for Watcom C++ and LCC compilers
Sam Lantinga <slouken@libsdl.org>
parents: 274
diff changeset
190 #endif /* NULL */
1621
f12379c41042 Fixes bug #195:
Sam Lantinga <slouken@libsdl.org>
parents: 1595
diff changeset
191 #endif /* ! Mac OS X - breaks precompiled headers */