diff options
author | bjarni <bjarni@openttd.org> | 2006-02-12 14:31:33 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2006-02-12 14:31:33 +0000 |
commit | 235e72829e55cbb1e7632fe1b2d1429f6f3be054 (patch) | |
tree | 69d0102238a85f5bd3d34ca4d93e1973a70ab771 | |
parent | 8cf72cdcabcf95da90dc152cb9459b94f4ff7041 (diff) | |
download | openttd-235e72829e55cbb1e7632fe1b2d1429f6f3be054.tar.xz |
(svn r3596) -Codechange: [OSX] changed to use Apple's macros instead of OTTD macros for endian conversion
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result
Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
-rw-r--r-- | music/qtmidi.c | 13 | ||||
-rw-r--r-- | os/macosx/osx_stdafx.h | 19 | ||||
-rw-r--r-- | stdafx.h | 7 | ||||
-rw-r--r-- | video/cocoa_v.m | 3 |
4 files changed, 30 insertions, 12 deletions
diff --git a/music/qtmidi.c b/music/qtmidi.c index dc668c8b0..f6b2bed6e 100644 --- a/music/qtmidi.c +++ b/music/qtmidi.c @@ -24,6 +24,10 @@ /* * OpenTTD includes. */ +#define WindowClass OSX_WindowClass +#include <QuickTime/QuickTime.h> +#undef WindowClass + #include "../stdafx.h" #include "../openttd.h" #include "qtmidi.h" @@ -32,19 +36,10 @@ * System includes. We need to workaround with some defines because there's * stuff already defined in QuickTime headers. */ -#define bool OSX_bool -#define Rect OSX_Rect -#define Point OSX_Point -#define SL_ERROR OSX_SL_ERROR -#define WindowClass OSX_WindowClass #define OTTD_Random OSX_OTTD_Random -#include <CoreServices/CoreServices.h> -#include <QuickTime/QuickTime.h> #undef OTTD_Random #undef WindowClass #undef SL_ERROR -#undef Point -#undef Rect #undef bool #include <assert.h> diff --git a/os/macosx/osx_stdafx.h b/os/macosx/osx_stdafx.h new file mode 100644 index 000000000..9567d70ba --- /dev/null +++ b/os/macosx/osx_stdafx.h @@ -0,0 +1,19 @@ +/* $Id$ */ + +#ifndef MACOS_STDAFX_H +#define MACOS_STDAFX_H + +#include <CoreServices/CoreServices.h> +// remove the variables that CoreServices defines, but we define ourselves too +#undef bool +#undef false +#undef true + +/* Name conflict */ +#define Rect OTTDRect +#define Point OTTDPoint +#define GetTime OTTDGetTime + +#define SL_ERROR OSX_SL_ERROR + +#endif /* MACOS_STDAFX_H */ @@ -52,8 +52,15 @@ # endif #endif /* __MORPHOS__ */ +#ifdef __APPLE__ +#include "os/macosx/osx_stdafx.h" +// make endian swapping use Apple's macros to increase speed +#define BSWAP32(x) Endian32_Swap(x) +#define BSWAP16(x) Endian16_Swap(x) +#else #define BSWAP32(x) ((((x) >> 24) & 0xFF) | (((x) >> 8) & 0xFF00) | (((x) << 8) & 0xFF0000) | (((x) << 24) & 0xFF000000)) #define BSWAP16(x) ((x) >> 8 | (x) << 8) +#endif // by default we use [] var arrays #define VARARRAY_SIZE diff --git a/video/cocoa_v.m b/video/cocoa_v.m index ed996bddd..7d6fd8b38 100644 --- a/video/cocoa_v.m +++ b/video/cocoa_v.m @@ -36,9 +36,6 @@ extern void HideMenuBar(void); #endif -/* Name conflict */ -#define Rect OTTDRect -#define Point OTTDPoint /* Defined in ppc/param.h or i386/param.h included from sys/param.h */ #undef ALIGN /* Defined in stdbool.h */ |