From 37f9d916fab04a96441771d38ecca428456cd47b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 17 Aug 2011 15:01:26 +0000 Subject: Fix #28265: blender 2.59 not starting on OS X with old ndof driver. Patch by Jens Verwiebe. --- intern/ghost/intern/GHOST_NDOFManagerCocoa.h | 1 + intern/ghost/intern/GHOST_NDOFManagerCocoa.mm | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h index e9897f30104..5e85808b5a6 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.h +++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.h @@ -43,6 +43,7 @@ public: // whether multi-axis functionality is available (via the OS or driver) // does not imply that a device is plugged in or being used bool available(); + bool oldDRV(); private: unsigned short m_clientID; diff --git a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm index 409ed953134..f665f5f6b39 100644 --- a/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm +++ b/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm @@ -143,7 +143,7 @@ GHOST_NDOFManagerCocoa::GHOST_NDOFManagerCocoa(GHOST_System& sys) // printf("ndof: client id = %d\n", m_clientID); - if (SetConnexionClientButtonMask != NULL) { + if (oldDRV()) { has_old_driver = false; SetConnexionClientButtonMask(m_clientID, kConnexionMaskAllButtons); } @@ -176,5 +176,14 @@ extern "C" { return InstallConnexionHandlers != NULL; // this means that the driver is installed and dynamically linked to blender } + + bool GHOST_NDOFManagerCocoa::oldDRV() + { + extern OSErr SetConnexionClientButtonMask() __attribute__((weak_import)); + // Make the linker happy for the framework check (see link below for more info) + // http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html + return SetConnexionClientButtonMask != NULL; + // this means that the driver has this symbol + } } #endif // WITH_INPUT_NDOF -- cgit v1.2.3 From 36f20f162caf83929e6eb07be6b73eb59740ead4 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 21 Aug 2011 13:31:46 +0000 Subject: Fix #28154: linux3-config.py doesn't exist Change OURPLATFORM from "linux" to simple "linux". Since new policy for linux kernel versions that major version in platform doesn't make much sense for building rules so the same rules could be used for both of linux2 and linux3 now/ Tested on both of linux2 and linux3 systems. --- intern/ghost/SConscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') diff --git a/intern/ghost/SConscript b/intern/ghost/SConscript index 234fc0a172e..82f65c1c8ae 100644 --- a/intern/ghost/SConscript +++ b/intern/ghost/SConscript @@ -26,7 +26,7 @@ if env['WITH_GHOST_SDL']: pass incs += ' ' + env['BF_SDL_INC'] defs += ['WITH_GHOST_SDL'] -elif window_system in ('linux2', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'freebsd9', 'irix6', 'aix4', 'aix5'): +elif window_system in ('linux', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'freebsd9', 'irix6', 'aix4', 'aix5'): for f in pf: try: sources.remove('intern' + os.sep + f + 'Win32.cpp') @@ -81,7 +81,7 @@ else: if env['WITH_BF_3DMOUSE']: defs.append('WITH_INPUT_NDOF') - if env['OURPLATFORM']=='linux2': + if env['OURPLATFORM']=='linux': incs += ' ' + env['BF_3DMOUSE_INC'] else: sources.remove('intern' + os.sep + 'GHOST_NDOFManager.cpp') -- cgit v1.2.3