diff options
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | build_files/scons/config/freebsd7-config.py | 2 | ||||
-rw-r--r-- | build_files/scons/config/freebsd8-config.py | 2 | ||||
-rw-r--r-- | build_files/scons/config/freebsd9-config.py | 2 | ||||
-rw-r--r-- | build_files/scons/tools/btools.py | 5 | ||||
-rw-r--r-- | doc/python_api/rst/info_gotcha.rst | 8 | ||||
-rw-r--r-- | extern/CMakeLists.txt | 6 | ||||
-rw-r--r-- | extern/SConscript | 6 | ||||
-rw-r--r-- | extern/libmv/third_party/glog/src/config_freebsd.h | 2 | ||||
-rw-r--r-- | extern/libmv/third_party/glog/src/utilities.h | 2 | ||||
-rw-r--r-- | intern/ghost/CMakeLists.txt | 18 | ||||
-rw-r--r-- | intern/ghost/SConscript | 7 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_SystemX11.cpp | 11 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_SystemX11.h | 2 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_WindowX11.cpp | 11 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_WindowX11.h | 7 | ||||
-rw-r--r-- | source/blender/blenkernel/BKE_sound.h | 2 | ||||
-rw-r--r-- | source/blenderplayer/CMakeLists.txt | 4 | ||||
-rw-r--r-- | source/creator/CMakeLists.txt | 5 |
19 files changed, 81 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c0b9157dba..9f6e8f88fd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -160,6 +160,11 @@ if(UNIX AND NOT APPLE) option(WITH_BUILTIN_GLEW "Use GLEW OpenGL wrapper library bundled with blender" ON) option(WITH_XDG_USER_DIRS "Build with XDG Base Directory Specification (only config and documents for now)" OFF) mark_as_advanced(WITH_XDG_USER_DIRS) + + # freebsd doesn't seems to support XDND + if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + option(WITH_GHOST_XDND "Enable drag'n'drop support on Linux using XDND protocol" ON) + endif() else() # not an option for other OS's set(WITH_BUILTIN_GLEW ON) diff --git a/build_files/scons/config/freebsd7-config.py b/build_files/scons/config/freebsd7-config.py index 7826ca226f6..8d0d09907bd 100644 --- a/build_files/scons/config/freebsd7-config.py +++ b/build_files/scons/config/freebsd7-config.py @@ -164,6 +164,8 @@ BF_EXPAT = '/usr/local' BF_EXPAT_LIB = 'expat' BF_EXPAT_LIBPATH = '${BF_EXPAT}/lib' +WITH_GHOST_XDND = False + WITH_BF_OPENMP = True #Ray trace optimization diff --git a/build_files/scons/config/freebsd8-config.py b/build_files/scons/config/freebsd8-config.py index f2d5cf2d0ed..6222d63c271 100644 --- a/build_files/scons/config/freebsd8-config.py +++ b/build_files/scons/config/freebsd8-config.py @@ -166,6 +166,8 @@ BF_EXPAT_LIBPATH = '${BF_EXPAT}/lib' WITH_BF_OPENMP = True +WITH_GHOST_XDND = False + #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-pthread'] diff --git a/build_files/scons/config/freebsd9-config.py b/build_files/scons/config/freebsd9-config.py index ea321b1a102..76539a330de 100644 --- a/build_files/scons/config/freebsd9-config.py +++ b/build_files/scons/config/freebsd9-config.py @@ -166,6 +166,8 @@ BF_EXPAT_LIBPATH = '${BF_EXPAT}/lib' WITH_BF_OPENMP = True +WITH_GHOST_XDND = False + #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-pthread'] diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index fe481d7ef34..f5f013c86fb 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -138,6 +138,7 @@ def validate_arguments(args, bc): 'WITH_BF_OPENMP', 'BF_OPENMP', 'BF_OPENMP_LIBPATH', 'WITH_GHOST_COCOA', 'WITH_GHOST_SDL', + 'WITH_GHOST_XDND', 'BF_GHOST_DEBUG', 'USE_QTKIT', 'BF_FANCY', 'BF_QUIET', 'BF_LINE_OVERWRITE', @@ -567,7 +568,9 @@ def read_opts(env, cfg, args): ('BF_BOOST_INC', 'Boost include path', ''), ('BF_BOOST_LIB', 'Boost library', ''), ('BF_BOOST_LIBPATH', 'Boost library path', ''), - ('BF_BOOST_LIB_STATIC', 'Boost static library', '') + ('BF_BOOST_LIB_STATIC', 'Boost static library', ''), + + (BoolVariable('WITH_GHOST_XDND', 'Build with drag-n-drop support on Linux platforms using XDND protocol', True)) ) # end of opts.AddOptions() return localopts diff --git a/doc/python_api/rst/info_gotcha.rst b/doc/python_api/rst/info_gotcha.rst index 281f0689044..be11e88b2fa 100644 --- a/doc/python_api/rst/info_gotcha.rst +++ b/doc/python_api/rst/info_gotcha.rst @@ -118,14 +118,6 @@ If you insist - yes its possible, but scripts that use this hack wont be conside bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1) -Matrix multiplication is wrong -============================== - -Every so often users complain that Blenders matrix math is wrong, the confusion comes from mathutils matrices being column-major to match OpenGL and the rest of Blenders matrix operations and stored matrix data. - -This is different to **numpy** which is row-major which matches what you would expect when using conventional matrix math notation. - - I can't edit the mesh in edit-mode! =================================== diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt index 5b2639ecb0d..1d83410a3d7 100644 --- a/extern/CMakeLists.txt +++ b/extern/CMakeLists.txt @@ -72,6 +72,8 @@ if(WITH_CARVE) add_subdirectory(carve) endif() -if(UNIX AND NOT APPLE) - add_subdirectory(xdnd) +if(WITH_GHOST_XDND) + if(UNIX AND NOT APPLE) + add_subdirectory(xdnd) + endif() endif() diff --git a/extern/SConscript b/extern/SConscript index 5ecf9b1b2af..67b74e9ee91 100644 --- a/extern/SConscript +++ b/extern/SConscript @@ -35,5 +35,7 @@ if env['WITH_BF_LIBMV']: if env['WITH_BF_CARVE']: SConscript(['carve/SConscript']) -if env['OURPLATFORM'] in ('linux', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'freebsd9', 'aix4', 'aix5'): - SConscript(['xdnd/SConscript']) +if env['WITH_GHOST_XDND']: + # FreeBSD doesn't seems to support XDND protocol + if env['OURPLATFORM'] in ('linux', 'openbsd3', 'sunos5', 'aix4', 'aix5'): + SConscript(['xdnd/SConscript']) diff --git a/extern/libmv/third_party/glog/src/config_freebsd.h b/extern/libmv/third_party/glog/src/config_freebsd.h index caaef9d998b..28fa1f1c78b 100644 --- a/extern/libmv/third_party/glog/src/config_freebsd.h +++ b/extern/libmv/third_party/glog/src/config_freebsd.h @@ -11,7 +11,7 @@ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the <execinfo.h> header file. */ -#define HAVE_EXECINFO_H 1 +#undef HAVE_EXECINFO_H /* Define if you have the `fcntl' function */ #define HAVE_FCNTL 1 diff --git a/extern/libmv/third_party/glog/src/utilities.h b/extern/libmv/third_party/glog/src/utilities.h index 5c841a0b90b..bbb0eb0746c 100644 --- a/extern/libmv/third_party/glog/src/utilities.h +++ b/extern/libmv/third_party/glog/src/utilities.h @@ -101,7 +101,7 @@ // correctly when GetStackTrace() is called with max_depth == 0. // Some code may do that. -#if __MINGW32__ +#if defined(__MINGW32__) || defined(__FreeBSD__) # undef STACKTRACE_H #elif defined(HAVE_LIB_UNWIND) # define STACKTRACE_H "stacktrace_libunwind-inl.h" diff --git a/intern/ghost/CMakeLists.txt b/intern/ghost/CMakeLists.txt index 3d65f4972c4..5693aea0865 100644 --- a/intern/ghost/CMakeLists.txt +++ b/intern/ghost/CMakeLists.txt @@ -220,18 +220,26 @@ elseif(UNIX) intern/GHOST_SystemX11.cpp intern/GHOST_SystemPathsX11.cpp intern/GHOST_WindowX11.cpp - intern/GHOST_DropTargetX11.cpp intern/GHOST_DisplayManagerX11.h intern/GHOST_SystemX11.h intern/GHOST_SystemPathsX11.h intern/GHOST_WindowX11.h - intern/GHOST_DropTargetX11.h ) - list(APPEND INC - ../../extern/xdnd - ) + if(WITH_GHOST_XDND) + add_definitions(-DWITH_XDND) + + list(APPEND INC + ../../extern/xdnd + ) + + list(APPEND SRC + intern/GHOST_DropTargetX11.cpp + + intern/GHOST_DropTargetX11.h + ) + endif() if(X11_XF86keysym_INCLUDE_PATH) add_definitions(-DWITH_XF86KEYSYM) diff --git a/intern/ghost/SConscript b/intern/ghost/SConscript index d83107717fc..3410f11a971 100644 --- a/intern/ghost/SConscript +++ b/intern/ghost/SConscript @@ -42,7 +42,12 @@ elif window_system in ('linux', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'f # defs += ['PREFIX=\\"/usr/local/\\"'] # XXX, make an option defs += ['WITH_X11_XINPUT'] # XXX, make an option - incs += ' #/extern/xdnd' + # freebsd doesn't seem to support XDND protocol + if env['WITH_GHOST_XDND'] and window_system not in ('freebsd7', 'freebsd8', 'freebsd9'): + incs += ' #/extern/xdnd' + defs += ['WITH_XDND'] + else: + sources.remove('intern' + os.sep + 'GHOST_DropTargetX11.cpp') elif window_system in ('win32-vc', 'win32-mingw', 'cygwin', 'linuxcross', 'win64-vc'): for f in pf: diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp index 7261770771a..857d9e79e57 100644 --- a/intern/ghost/intern/GHOST_SystemX11.cpp +++ b/intern/ghost/intern/GHOST_SystemX11.cpp @@ -42,12 +42,15 @@ #include "GHOST_EventButton.h" #include "GHOST_EventWheel.h" #include "GHOST_DisplayManagerX11.h" -#include "GHOST_DropTargetX11.h" #include "GHOST_EventDragnDrop.h" #ifdef WITH_INPUT_NDOF #include "GHOST_NDOFManagerX11.h" #endif +#ifdef WITH_XDND +#include "GHOST_DropTargetX11.h" +#endif + #include "GHOST_Debug.h" #include <X11/Xatom.h> @@ -711,10 +714,14 @@ GHOST_SystemX11::processEvent(XEvent *xe) } } } else { +#ifdef WITH_XDND /* try to handle drag event (if there's no such events, GHOST_HandleClientMessage will return zero) */ if (window->getDropTarget()->GHOST_HandleClientMessage(xe) == false) { /* Unknown client message, ignore */ } +#else + /* Unknown client message, ignore */ +#endif } break; @@ -1485,6 +1492,7 @@ void GHOST_SystemX11::putClipboard(GHOST_TInt8 *buffer, bool selection) const } } +#ifdef WITH_XDND GHOST_TSuccess GHOST_SystemX11::pushDragDropEvent(GHOST_TEventType eventType, GHOST_TDragnDropTypes draggedObjectType, GHOST_IWindow* window, @@ -1498,3 +1506,4 @@ GHOST_TSuccess GHOST_SystemX11::pushDragDropEvent(GHOST_TEventType eventType, window,mouseX,mouseY,data) ); } +#endif diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h index 1aec218d6f1..62f5ba341d4 100644 --- a/intern/ghost/intern/GHOST_SystemX11.h +++ b/intern/ghost/intern/GHOST_SystemX11.h @@ -235,6 +235,7 @@ public: */ void putClipboard(GHOST_TInt8 *buffer, bool selection) const; +#if WITH_XDND /** * Creates a drag'n'drop event and pushes it immediately onto the event queue. * Called by GHOST_DropTargetX11 class. @@ -246,6 +247,7 @@ public: * @return Indication whether the event was handled. */ static GHOST_TSuccess pushDragDropEvent(GHOST_TEventType eventType, GHOST_TDragnDropTypes draggedObjectType,GHOST_IWindow* window, int mouseX, int mouseY, void* data); +#endif /** * @see GHOST_ISystem diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp index ea99a9ea7b4..3ceafcab3ce 100644 --- a/intern/ghost/intern/GHOST_WindowX11.cpp +++ b/intern/ghost/intern/GHOST_WindowX11.cpp @@ -32,10 +32,13 @@ #include "GHOST_WindowX11.h" #include "GHOST_SystemX11.h" -#include "GHOST_DropTargetX11.h" #include "STR_String.h" #include "GHOST_Debug.h" +#ifdef WITH_XDND +#include "GHOST_DropTargetX11.h" +#endif + // For standard X11 cursors #include <X11/cursorfont.h> #include <X11/Xatom.h> @@ -326,10 +329,12 @@ GHOST_WindowX11( XSelectInput(m_display , parentWindow, SubstructureNotifyMask); } - + +#ifdef WITH_XDND /* initialize drop target for newly created window */ m_dropTarget = new GHOST_DropTargetX11(this, m_system); GHOST_PRINT("Set drop target\n"); +#endif /* * One of the problem with WM-spec is that can't set a property @@ -1323,7 +1328,9 @@ GHOST_WindowX11:: } #endif +#ifdef WITH_XDND delete m_dropTarget; +#endif XDestroyWindow(m_display, m_window); XFree(m_visual); diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h index eae6cad5a6d..5430c5916fc 100644 --- a/intern/ghost/intern/GHOST_WindowX11.h +++ b/intern/ghost/intern/GHOST_WindowX11.h @@ -45,7 +45,10 @@ class STR_String; class GHOST_SystemX11; + +#ifdef WITH_XDND class GHOST_DropTargetX11; +#endif /** * X11 implementation of GHOST_IWindow. @@ -225,8 +228,10 @@ public: XIC getX11_XIC() { return m_xic; } #endif +#ifdef WITH_XDND GHOST_DropTargetX11* getDropTarget() { return m_dropTarget; } +#endif /* * Need this in case that we want start the window @@ -365,7 +370,9 @@ private : /** Cache of XC_* ID's to XCursor structures */ std::map<unsigned int, Cursor> m_standard_cursors; +#ifdef WITH_XDND GHOST_DropTargetX11 * m_dropTarget; +#endif #ifdef WITH_X11_XINPUT /* Tablet devices */ diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h index 90477647b88..8b01dbde531 100644 --- a/source/blender/blenkernel/BKE_sound.h +++ b/source/blender/blenkernel/BKE_sound.h @@ -79,7 +79,7 @@ void sound_load(struct Main *main, struct bSound* sound); void sound_free(struct bSound* sound); -#ifdef AUD_CAPI +#ifdef __AUD_C_API_H__ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, float volume); #endif diff --git a/source/blenderplayer/CMakeLists.txt b/source/blenderplayer/CMakeLists.txt index d90668b7732..1bf55cd96de 100644 --- a/source/blenderplayer/CMakeLists.txt +++ b/source/blenderplayer/CMakeLists.txt @@ -186,6 +186,10 @@ endif() list(APPEND BLENDER_SORTED_LIBS extern_carve) endif() + if(WITH_GHOST_XDND) + list(APPEND BLENDER_SORTED_LIBS extern_xdnd) + endif() + if(WITH_CODEC_QUICKTIME) list(APPEND BLENDER_SORTED_LIBS bf_quicktime) endif() diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 057c19dd5c4..b39d2a5b5c2 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -830,7 +830,6 @@ endif() extern_minilzo extern_lzma extern_colamd - extern_xdnd ge_logic_ketsji extern_recastnavigation ge_phys_common @@ -894,6 +893,10 @@ endif() list(APPEND BLENDER_SORTED_LIBS extern_carve) endif() + if(WITH_GHOST_XDND) + list(APPEND BLENDER_SORTED_LIBS extern_xdnd) + endif() + foreach(SORTLIB ${BLENDER_SORTED_LIBS}) set(REMLIB ${SORTLIB}) foreach(SEARCHLIB ${BLENDER_LINK_LIBS}) |