diff --git a/SConstruct b/SConstruct index 0974c39621..911147a3f4 100644 --- a/SConstruct +++ b/SConstruct @@ -264,9 +264,9 @@ if sys.platform == 'darwin': env['FRAMEWORKS'] += ['AppKit', 'CoreFoundation', 'CoreServices'] env['FRAMEWORKS'] += ['AudioUnit', 'CoreAudio'] env['FRAMEWORKS'] += ['IOBluetooth', 'IOKit', 'OpenGL'] - env['LIBS'] += ['gcc_s.10.5', 'iconv'] + env['LIBS'] += ['iconv'] env['LINKFLAGS'] += ['-arch', 'x86_64', '-arch', 'i386'] - # XXX env['LINKFLAGS'] += ['-mmacosx-version-min=10.5'] + env['LINKFLAGS'] += ['-mmacosx-version-min=10.5'] env['LINKFLAGS'] += ['-Z', '-L/Developer/SDKs/MacOSX10.5.sdk/usr/lib', '-F/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks', '-F/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks'] @@ -287,6 +287,8 @@ if sys.platform == 'darwin': env['FRAMEWORKS'].remove('AudioToolbox') if env['FRAMEWORKS'].count('Carbon'): env['FRAMEWORKS'].remove('Carbon') + if env['FRAMEWORKS'].count('System'): + env['FRAMEWORKS'].remove('System') if env['FRAMEWORKS'].count('QuickTime'): env['FRAMEWORKS'].remove('QuickTime') env['CPPPATH'] += ['#Externals'] diff --git a/Source/Core/DolphinWX/Src/SConscript b/Source/Core/DolphinWX/Src/SConscript index 8b96c08d2b..b8743e8820 100644 --- a/Source/Core/DolphinWX/Src/SConscript +++ b/Source/Core/DolphinWX/Src/SConscript @@ -11,7 +11,7 @@ files = [ ] libs = [ - 'core', 'lzo2', 'discio', 'bdisasm', 'videocommon', + 'core', 'lzo2', 'discio', 'bdisasm', 'inputcommon', 'common', 'lua', 'z', 'sfml-network', ] @@ -45,10 +45,6 @@ if wxenv['HAVE_WX']: 'NetWindow.cpp', ] - CPPDEFINES = [ - 'wxNEEDS_CHARPP', - ], - libs = [ 'debwx', 'debugger_ui_util', 'inputuicommon'] + libs else: files+= [ diff --git a/Source/Core/VideoCommon/Src/DataReader.h b/Source/Core/VideoCommon/Src/DataReader.h index 071e1169db..f98736c407 100644 --- a/Source/Core/VideoCommon/Src/DataReader.h +++ b/Source/Core/VideoCommon/Src/DataReader.h @@ -20,61 +20,59 @@ extern u8* g_pVideoData; -inline void DataSkip(u32 skip) +__forceinline void DataSkip(u32 skip) { g_pVideoData += skip; } -inline u8 DataPeek8(int _uOffset) +__forceinline u8 DataPeek8(int _uOffset) { return g_pVideoData[_uOffset]; } -inline u16 DataPeek16(int _uOffset) +__forceinline u16 DataPeek16(int _uOffset) { - return Common::swap16(*(u16*)&g_pVideoData[_uOffset]); + return Common::swap16(*(u16*)&g_pVideoData[_uOffset]); } -inline u32 DataPeek32(int _uOffset) +__forceinline u32 DataPeek32(int _uOffset) { - return Common::swap32(*(u32*)&g_pVideoData[_uOffset]); + return Common::swap32(*(u32*)&g_pVideoData[_uOffset]); } -inline u8 DataReadU8() +__forceinline u8 DataReadU8() { return *g_pVideoData++; } -inline s8 DataReadS8() +__forceinline s8 DataReadS8() { return (s8)(*g_pVideoData++); } -inline u16 DataReadU16() +__forceinline u16 DataReadU16() { - u16 tmp = Common::swap16(*(u16*)g_pVideoData); + u16 tmp = Common::swap16(*(u16*)g_pVideoData); g_pVideoData += 2; return tmp; } -inline u32 DataReadU32() +__forceinline u32 DataReadU32() { u32 tmp = Common::swap32(*(u32*)g_pVideoData); g_pVideoData += 4; return tmp; } -inline u32 DataReadU32Unswapped() +__forceinline u32 DataReadU32Unswapped() { u32 tmp = *(u32*)g_pVideoData; g_pVideoData += 4; return tmp; } - -// These are not used yet. If they don't build under Linux, delete them and let me know. -ector template -inline T DataRead() +__forceinline T DataRead() { T tmp = *(T*)g_pVideoData; g_pVideoData += sizeof(T); @@ -82,48 +80,47 @@ inline T DataRead() } template <> -inline u16 DataRead() +__forceinline u16 DataRead() { - u16 tmp = Common::swap16(*(u16*)g_pVideoData); + u16 tmp = Common::swap16(*(u16*)g_pVideoData); g_pVideoData += 2; return tmp; } template <> -inline s16 DataRead() +__forceinline s16 DataRead() { - s16 tmp = (s16)Common::swap16(*(u16*)g_pVideoData); + s16 tmp = (s16)Common::swap16(*(u16*)g_pVideoData); g_pVideoData += 2; return tmp; } template <> -inline u32 DataRead() +__forceinline u32 DataRead() { - u32 tmp = (u32)Common::swap32(*(u32*)g_pVideoData); + u32 tmp = (u32)Common::swap32(*(u32*)g_pVideoData); g_pVideoData += 4; return tmp; } template <> -inline s32 DataRead() +__forceinline s32 DataRead() { - s32 tmp = (s32)Common::swap32(*(u32*)g_pVideoData); + s32 tmp = (s32)Common::swap32(*(u32*)g_pVideoData); g_pVideoData += 4; return tmp; } - -inline float DataReadF32() +__forceinline float DataReadF32() { - union {u32 i; float f;} temp; + union {u32 i; float f;} temp; temp.i = Common::swap32(*(u32*)g_pVideoData); g_pVideoData += 4; float tmp = temp.f; return tmp; } -inline u8* DataGetPosition() +__forceinline u8* DataGetPosition() { return g_pVideoData; } diff --git a/Source/Core/VideoCommon/Src/VertexLoader_Position.cpp b/Source/Core/VideoCommon/Src/VertexLoader_Position.cpp index 7eb2767e7f..42c689ab9a 100644 --- a/Source/Core/VideoCommon/Src/VertexLoader_Position.cpp +++ b/Source/Core/VideoCommon/Src/VertexLoader_Position.cpp @@ -92,11 +92,21 @@ void Pos_ReadDirect() VertexManager::s_pCurBufferPointer += 12; } +// Explicitly instantiate these functions to decrease the possibility of +// symbol binding problems when (only) calling them from JIT compiled code. +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); +template void Pos_ReadDirect(); + void LOADERDECL Pos_ReadDirect_UByte3() { Pos_ReadDirect(); } void LOADERDECL Pos_ReadDirect_Byte3() { Pos_ReadDirect(); } void LOADERDECL Pos_ReadDirect_UShort3() { Pos_ReadDirect(); } void LOADERDECL Pos_ReadDirect_Short3() { Pos_ReadDirect(); } - void LOADERDECL Pos_ReadDirect_UByte2() { Pos_ReadDirect(); } void LOADERDECL Pos_ReadDirect_Byte2() { Pos_ReadDirect(); } void LOADERDECL Pos_ReadDirect_UShort2() { Pos_ReadDirect(); }