Fix #28265: blender 2.59 not starting on OS X with old ndof driver.

Patch by Jens Verwiebe.
This commit is contained in:
Brecht Van Lommel 2011-08-17 15:01:26 +00:00
parent feb7afe671
commit 37f9d916fa
2 changed files with 11 additions and 1 deletions

@ -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;

@ -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