[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39307] trunk/blender: Commiting patch from jensverwiebe for NDOF support on OSX

Sergey Sharybin g.ulairi at gmail.com
Thu Aug 11 17:59:20 CEST 2011


Revision: 39307
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39307
Author:   nazgul
Date:     2011-08-11 15:59:19 +0000 (Thu, 11 Aug 2011)
Log Message:
-----------
Commiting patch from jensverwiebe for NDOF support on OSX

Modified Paths:
--------------
    trunk/blender/SConstruct
    trunk/blender/build_files/scons/config/darwin-config.py
    trunk/blender/build_files/scons/tools/btools.py
    trunk/blender/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm

Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct	2011-08-11 14:50:19 UTC (rev 39306)
+++ trunk/blender/SConstruct	2011-08-11 15:59:19 UTC (rev 39307)
@@ -268,7 +268,8 @@
     if env['WITH_BF_3DMOUSE'] == 1 and not os.path.exists('/Library/Frameworks/3DconnexionClient.framework'):
         print "3D_CONNEXION_CLIENT_LIBRARY not found, disabling WITH_BF_3DMOUSE" # avoid build errors !
         env['WITH_BF_3DMOUSE'] = 0
-        env['FOUND_NDOF_DRIVERS'] = 0
+    else:
+        env.Append(LINKFLAGS=['-weak_framework','3DconnexionClient'])
 
 
 if env['WITH_BF_OPENMP'] == 1:

Modified: trunk/blender/build_files/scons/config/darwin-config.py
===================================================================
--- trunk/blender/build_files/scons/config/darwin-config.py	2011-08-11 14:50:19 UTC (rev 39306)
+++ trunk/blender/build_files/scons/config/darwin-config.py	2011-08-11 15:59:19 UTC (rev 39307)
@@ -284,7 +284,7 @@
 elif MACOSX_ARCHITECTURE == 'x86_64':
     BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-msse2']
 
-# SpaceNavigator and related 3D mice
+# SpaceNavigator and related 3D mice, driver must be 3DxWare 10 Beta 4 (Mac OS X) or later !
 WITH_BF_3DMOUSE = True
 
 #############################################################################
@@ -315,9 +315,6 @@
 	else:
 		PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS+['-framework','QuickTime']
 
-if FOUND_NDOF_DRIVERS:
-	PLATFORM_LINKFLAGS = PLATFORM_LINKFLAGS + ['-weak_framework','3DconnexionClient']
-
 #note to build succesfully on 10.3.9 SDK you need to patch  10.3.9 by adding the SystemStubs.a lib from 10.4
 LLIBS = ['stdc++', 'SystemStubs']
 

Modified: trunk/blender/build_files/scons/tools/btools.py
===================================================================
--- trunk/blender/build_files/scons/tools/btools.py	2011-08-11 14:50:19 UTC (rev 39306)
+++ trunk/blender/build_files/scons/tools/btools.py	2011-08-11 15:59:19 UTC (rev 39307)
@@ -136,7 +136,7 @@
             'BF_NO_ELBEEM',
             'WITH_BF_CXX_GUARDEDALLOC',
             'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
-            'BUILDBOT_BRANCH', 'WITH_BF_3DMOUSE', 'FOUND_NDOF_DRIVERS', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC'
+            'BUILDBOT_BRANCH', 'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC'
             ]
     
     # Have options here that scons expects to be lists
@@ -439,7 +439,6 @@
         (BoolVariable('WITH_BF_NOBLENDER', 'Do not build blender if true', False)),
 
         (BoolVariable('WITH_BF_3DMOUSE', 'Build blender with support of 3D mouses', False)),
-        (BoolVariable('FOUND_NDOF_DRIVERS', 'We detected NDOF libs or framework', False)),
         (BoolVariable('WITH_BF_STATIC3DMOUSE', 'Staticly link to 3d mouse library', False)),
         ('BF_3DMOUSE', '3d mouse library base path', ''),
         ('BF_3DMOUSE_INC', '3d mouse library include path', ''),

Modified: trunk/blender/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm	2011-08-11 14:50:19 UTC (rev 39306)
+++ trunk/blender/intern/ghost/intern/GHOST_NDOFManagerCocoa.mm	2011-08-11 15:59:19 UTC (rev 39307)
@@ -159,18 +159,22 @@
 
 GHOST_NDOFManagerCocoa::~GHOST_NDOFManagerCocoa()
 {
-	UnregisterConnexionClient(m_clientID);
-	CleanupConnexionHandlers();
-	ghost_system = NULL;
-	ndof_manager = NULL;
+	if (available())
+	{
+		UnregisterConnexionClient(m_clientID);
+		CleanupConnexionHandlers();
+		ghost_system = NULL;
+		ndof_manager = NULL;
+	}
 }
-
-bool GHOST_NDOFManagerCocoa::available()
-{
-	// extern OSErr InstallConnexionHandlers() __attribute__((weak_import));
-	// ^^ not needed since the entire framework is weak-linked
-	return InstallConnexionHandlers != NULL;
-	// this means that the driver is installed and dynamically linked to blender
+extern "C" {
+	bool GHOST_NDOFManagerCocoa::available()
+	{
+		extern OSErr InstallConnexionHandlers() __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 InstallConnexionHandlers != NULL;
+		// this means that the driver is installed and dynamically linked to blender
+	}
 }
-
 #endif // WITH_INPUT_NDOF




More information about the Bf-blender-cvs mailing list