[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14208] trunk/blender: NDOF support added to trunk from ndof branch.
JLuc Peuriere
jlp at nerim.net
Sat Mar 22 02:39:19 CET 2008
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. @@
More information about the Bf-blender-cvs
mailing list