Revision: 14208
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14208
Author:   lukep
Date:     2008-03-22 02:39:11 +0100 (Sat, 22 Mar 2008)

Log Message:
-----------
NDOF support added to trunk from ndof branch.

The latter is now obsolete and will be soon 
removed.

Some tiny build tweaks for darwin committed
in preparation of bigger changes for proper
SDK suport both on intel and ppc

Modified Paths:
--------------
    trunk/blender/SConstruct
    trunk/blender/config/darwin-config.py
    trunk/blender/extern/ffmpeg/SConscript
    trunk/blender/intern/ghost/GHOST_C-api.h
    trunk/blender/intern/ghost/GHOST_ISystem.h
    trunk/blender/intern/ghost/GHOST_Types.h
    trunk/blender/intern/ghost/intern/GHOST_C-api.cpp
    trunk/blender/intern/ghost/intern/GHOST_System.cpp
    trunk/blender/intern/ghost/intern/GHOST_System.h
    trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemCarbon.h
    trunk/blender/intern/ghost/intern/GHOST_SystemWin32.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemX11.cpp
    trunk/blender/intern/ghost/intern/GHOST_SystemX11.h
    trunk/blender/intern/ghost/intern/Makefile
    trunk/blender/intern/ghost/make/msvc_7_0/ghost.vcproj
    trunk/blender/release/datafiles/blenderbuttons
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/blenlib/BLI_blenlib.h
    trunk/blender/source/blender/blenloader/intern/writefile.c
    trunk/blender/source/blender/include/BIF_mywindow.h
    trunk/blender/source/blender/include/BIF_resources.h
    trunk/blender/source/blender/include/BIF_transform.h
    trunk/blender/source/blender/include/BSE_view.h
    trunk/blender/source/blender/include/blendef.h
    trunk/blender/source/blender/include/mydevice.h
    trunk/blender/source/blender/include/transform.h
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/makesdna/DNA_view3d_types.h
    trunk/blender/source/blender/src/blenderbuttons.c
    trunk/blender/source/blender/src/editscreen.c
    trunk/blender/source/blender/src/ghostwinlay.c
    trunk/blender/source/blender/src/header_view3d.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/blender/src/transform.c
    trunk/blender/source/blender/src/transform_generics.c
    trunk/blender/source/blender/src/usiblender.c
    trunk/blender/source/blender/src/view.c
    trunk/blender/source/blender/src/winlay.h

Added Paths:
-----------
    trunk/blender/intern/ghost/intern/GHOST_EventNDOF.h
    trunk/blender/intern/ghost/intern/GHOST_NDOFManager.cpp
    trunk/blender/intern/ghost/intern/GHOST_NDOFManager.h
    trunk/blender/source/blender/src/transform_ndofinput.c

Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct    2008-03-21 23:10:23 UTC (rev 14207)
+++ trunk/blender/SConstruct    2008-03-22 01:39:11 UTC (rev 14208)
@@ -350,33 +350,36 @@
     blenderinstall = env.Install(dir=env['BF_INSTALLDIR'], 
source=B.program_list)
 
 #-- .blender
+#- dont do .blender and scripts for darwin, it is already in the bundle
 dotblendlist = []
 dottargetlist = []
-for dp, dn, df in os.walk('bin/.blender'):
-    if 'CVS' in dn:
-        dn.remove('CVS')
-    if '.svn' in dn:
-        dn.remove('.svn')
-    for f in df:
-        dotblendlist.append(dp+os.sep+f)
-        dottargetlist.append(env['BF_INSTALLDIR']+dp[3:]+os.sep+f)
+scriptinstall = []
 
-dotblenderinstall = []
-for targetdir,srcfile in zip(dottargetlist, dotblendlist):
-    td, tf = os.path.split(targetdir)
-    dotblenderinstall.append(env.Install(dir=td, source=srcfile))
+if  env['OURPLATFORM']!='darwin':
+       for dp, dn, df in os.walk('bin/.blender'):
+           if 'CVS' in dn:
+               dn.remove('CVS')
+           if '.svn' in dn:
+               dn.remove('.svn')
+           for f in df:
+               dotblendlist.append(dp+os.sep+f)
+               dottargetlist.append(env['BF_INSTALLDIR']+dp[3:]+os.sep+f)
 
-#-- .blender/scripts
-scriptinstall = []
-scriptpath='release/scripts'
-for dp, dn, df in os.walk(scriptpath):
-    if 'CVS' in dn:
-        dn.remove('CVS')
-    if '.svn' in dn:
-        dn.remove('.svn')
-    dir=env['BF_INSTALLDIR']+'/.blender/scripts'+dp[len(scriptpath):]
-    source=[dp+os.sep+f for f in df]
-    scriptinstall.append(env.Install(dir=dir,source=source))
+       dotblenderinstall = []
+       for targetdir,srcfile in zip(dottargetlist, dotblendlist):
+           td, tf = os.path.split(targetdir)
+           dotblenderinstall.append(env.Install(dir=td, source=srcfile))
+       
+       #-- .blender/scripts    
+       scriptpath='release/scripts'
+       for dp, dn, df in os.walk(scriptpath):
+           if 'CVS' in dn:
+               dn.remove('CVS')
+           if '.svn' in dn:
+               dn.remove('.svn')
+           dir=env['BF_INSTALLDIR']+'/.blender/scripts'+dp[len(scriptpath):]
+           source=[dp+os.sep+f for f in df]
+           scriptinstall.append(env.Install(dir=dir,source=source))
 
 #-- plugins
 pluglist = []
@@ -407,7 +410,10 @@
 
 textinstall = env.Install(dir=env['BF_INSTALLDIR'], source=textlist)
 
-allinstall = [blenderinstall, dotblenderinstall, scriptinstall, plugininstall, 
textinstall]
+if  env['OURPLATFORM']=='darwin':
+       allinstall = [blenderinstall, plugininstall, textinstall]
+else:
+       allinstall = [blenderinstall, dotblenderinstall, scriptinstall, 
plugininstall, textinstall]
 
 if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'):
     dllsources = ['${LCGDIR}/gettext/lib/gnu_gettext.dll',

Modified: trunk/blender/config/darwin-config.py
===================================================================
--- trunk/blender/config/darwin-config.py       2008-03-21 23:10:23 UTC (rev 
14207)
+++ trunk/blender/config/darwin-config.py       2008-03-22 01:39:11 UTC (rev 
14208)
@@ -3,10 +3,10 @@
 
 # enable ffmpeg  support
 WITH_BF_FFMPEG = 'true'  # -DWITH_FFMPEG
-BF_FFMPEG = LIBDIR +'/ffmpeg'
+BF_FFMPEG = "#extern/ffmpeg"
 BF_FFMPEG_INC = '${BF_FFMPEG}/include'
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat.a avcodec.a avutil.a'
+#BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
+#BF_FFMPEG_LIB = 'avformat.a avcodec.a avutil.a'
 
 WITH_BF_VERSE = 'false'
 BF_VERSE = "#extern/verse/dist"
@@ -15,7 +15,7 @@
 BF_VERSE_LIBS = "libverse"
 
 # python.org libs install in /library 
-BF_PYTHON_VERSION = '2.3'
+BF_PYTHON_VERSION = '2.5'
 if BF_PYTHON_VERSION=='2.3':
        BF_PYTHON = '/System/Library/Frameworks/Python.framework/Versions/'
 else:
@@ -131,11 +131,11 @@
 
 WITH_BF_QUICKTIME = 'true' # -DWITH_QUICKTIME
 
-WITH_BF_ICONV = 'false'
+WITH_BF_ICONV = 'true'
 BF_ICONV = LIBDIR + "/iconv"
 BF_ICONV_INC = '${BF_ICONV}/include'
 BF_ICONV_LIB = 'iconv'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
+#BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
 # Mesa Libs should go here if your using them as well....
 WITH_BF_STATICOPENGL = 'true'

Modified: trunk/blender/extern/ffmpeg/SConscript
===================================================================
--- trunk/blender/extern/ffmpeg/SConscript      2008-03-21 23:10:23 UTC (rev 
14207)
+++ trunk/blender/extern/ffmpeg/SConscript      2008-03-22 01:39:11 UTC (rev 
14208)
@@ -125,7 +125,6 @@
 
     if env['OURPLATFORM'] in ['win32-mingw', 'win32-vc' , 'darwin'] :
        defs = "HAVE_AV_CONFIG_H  _ISOC9X_SOURCE"
-       print "passing switch"
     else :
                defs = "HAVE_AV_CONFIG_H _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE 
_ISOC9X_SOURCE"
     cflags = ""

Modified: trunk/blender/intern/ghost/GHOST_C-api.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_C-api.h    2008-03-21 23:10:23 UTC (rev 
14207)
+++ trunk/blender/intern/ghost/GHOST_C-api.h    2008-03-22 01:39:11 UTC (rev 
14208)
@@ -265,6 +265,19 @@
                                                                                
          GHOST_EventConsumerHandle consumerhandle);
        
 
+/***************************************************************************************
+ ** N-degree of freedom device management functionality
+ 
***************************************************************************************/
+ 
+/**
+* Open N-degree of freedom devices
+ */
+extern int GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, 
+                           GHOST_WindowHandle windowhandle,
+                          GHOST_NDOFLibraryInit_fp setNdofLibraryInit, 
+                          GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown,
+                          GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen
+                          );
 
 
/***************************************************************************************
  ** Cursor management functionality

Modified: trunk/blender/intern/ghost/GHOST_ISystem.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_ISystem.h  2008-03-21 23:10:23 UTC (rev 
14207)
+++ trunk/blender/intern/ghost/GHOST_ISystem.h  2008-03-22 01:39:11 UTC (rev 
14208)
@@ -295,6 +295,22 @@
         */
        virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer* consumer) 
= 0;
        
+        
/***************************************************************************************
+        ** N-degree of freedom device management functionality
+        
***************************************************************************************/
+
+   /**
+    * Starts the N-degree of freedom device manager
+    */
+   virtual int openNDOF(GHOST_IWindow*,
+       GHOST_NDOFLibraryInit_fp setNdofLibraryInit, 
+       GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown,
+       GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen
+       // original patch only
+      // GHOST_NDOFEventHandler_fp setNdofEventHandler
+       ) = 0;
+
+
        
/***************************************************************************************
         ** Cursor management functionality
         
***************************************************************************************/

Modified: trunk/blender/intern/ghost/GHOST_Types.h
===================================================================
--- trunk/blender/intern/ghost/GHOST_Types.h    2008-03-21 23:10:23 UTC (rev 
14207)
+++ trunk/blender/intern/ghost/GHOST_Types.h    2008-03-22 01:39:11 UTC (rev 
14208)
@@ -39,6 +39,11 @@
 typedef        int                                     GHOST_TInt32;
 typedef        unsigned int            GHOST_TUns32;
 
+#ifdef WIN32
+#define WM_BLND_NDOF_AXIS      WM_USER + 1
+#define WM_BLND_NDOF_BTN       WM_USER + 2
+#endif
+
 #if defined(WIN32) && !defined(FREE_WINDOWS)
 typedef __int64                                GHOST_TInt64;
 typedef unsigned __int64       GHOST_TUns64;
@@ -133,6 +138,9 @@
        GHOST_kEventButtonUp,           /// Mouse button event
        GHOST_kEventWheel,                      /// Mouse wheel event
 
+       GHOST_kEventNDOFMotion,         /// N degree of freedom device motion 
event
+       GHOST_kEventNDOFButton,         /// N degree of freedom device button 
event
+
        GHOST_kEventKeyDown,
        GHOST_kEventKeyUp,
 //     GHOST_kEventKeyAuto,
@@ -336,7 +344,39 @@
        GHOST_TInt32 z; 
 } GHOST_TEventWheelData;
 
+
+/* original patch used floats, but the driver return ints and uns. We will 
calibrate in view, no sense on doing conversions twice */
+/* as all USB device controls are likely to use ints, this is also more future 
proof */
+//typedef struct {
+//   /** N-degree of freedom device data */
+//   float tx, ty, tz;   /** -x left, +y up, +z forward */
+//   float rx, ry, rz;
+//   float dt;
+//} GHOST_TEventNDOFData;
+
 typedef struct {
+   /** N-degree of freedom device data v2*/
+   int changed;
+   GHOST_TUns64 client;
+   GHOST_TUns64 address;
+   GHOST_TInt16 tx, ty, tz;   /** -x left, +y up, +z forward */
+   GHOST_TInt16 rx, ry, rz;
+   GHOST_TInt16 buttons;
+   GHOST_TUns64 time;
+   GHOST_TUns64 delta;
+} GHOST_TEventNDOFData;
+
+typedef int     (*GHOST_NDOFLibraryInit_fp)();
+typedef void    (*GHOST_NDOFLibraryShutdown_fp)(void* deviceHandle);
+typedef void*   (*GHOST_NDOFDeviceOpen_fp)(void* platformData);
+
+// original patch windows callback. In mac os X version the callback is 
internal to the plug-in and post an event to main thead.
+// not necessary faster, but better integration with other events. 
+
+//typedef int     (*GHOST_NDOFEventHandler_fp)(float* result7, void* 
deviceHandle, unsigned int message, unsigned int* wParam, unsigned long* 
lParam);
+//typedef void     (*GHOST_NDOFCallBack_fp)(GHOST_TEventNDOFDataV2 *VolDatas);
+
+typedef struct {
        /** The key code. */
        GHOST_TKey              key;
        /** The ascii code for the key event ('\0' if none). */

Modified: trunk/blender/intern/ghost/intern/GHOST_C-api.cpp
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_C-api.cpp   2008-03-21 23:10:23 UTC 
(rev 14207)
+++ trunk/blender/intern/ghost/intern/GHOST_C-api.cpp   2008-03-22 01:39:11 UTC 
(rev 14208)
@@ -259,8 +259,23 @@
        return 
system->addEventConsumer((GHOST_CallbackEventConsumer*)consumerhandle);
 }
 
+int GHOST_OpenNDOF(GHOST_SystemHandle systemhandle, GHOST_WindowHandle 
windowhandle,
+   GHOST_NDOFLibraryInit_fp setNdofLibraryInit, 
+    GHOST_NDOFLibraryShutdown_fp setNdofLibraryShutdown,
+    GHOST_NDOFDeviceOpen_fp setNdofDeviceOpen)
+  //original patch only
+  /*  GHOST_NDOFEventHandler_fp setNdofEventHandler)*/
+{
+       GHOST_ISystem* system = (GHOST_ISystem*) systemhandle;
 
+    return system->openNDOF((GHOST_IWindow*) windowhandle,
+        setNdofLibraryInit, setNdofLibraryShutdown, setNdofDeviceOpen);
+//     original patch

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to