s4504kr pushed to blender (f22). "Fix regression for 3D mice support"
notifications at fedoraproject.org
notifications at fedoraproject.org
Tue May 5 15:34:43 UTC 2015
>From c4d4e4bcbda3ced18fa28954f5c32fc4074c8e6a Mon Sep 17 00:00:00 2001
From: Jochen Schmitt <Jochen at herr-schmitt.de>
Date: Tue, 5 May 2015 17:33:13 +0200
Subject: Fix regression for 3D mice support
diff --git a/blender-2.74-reg.patch b/blender-2.74-reg.patch
new file mode 100644
index 0000000..5200205
--- /dev/null
+++ b/blender-2.74-reg.patch
@@ -0,0 +1,153 @@
+diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
+index de44b36..75e476c 100644
+--- a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
++++ b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
+@@ -1,147 +1,147 @@
+ /*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s):
+ * Mike Erwin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+ #ifdef WITH_INPUT_NDOF
+
+ #include "GHOST_NDOFManagerX11.h"
+ #include "GHOST_SystemX11.h"
+ #include <spnav.h>
+ #include <stdio.h>
+
+
+ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys)
+ : GHOST_NDOFManager(sys),
+ m_available(false)
+ {
+ setDeadZone(0.1f); /* how to calibrate on Linux? throw away slight motion! */
+
+ if (spnav_open() != -1) {
+ m_available = true;
+
+ /* determine exactly which device (if any) is plugged in */
+
+ #define MAX_LINE_LENGTH 100
+
+ /* look for USB devices with Logitech or 3Dconnexion's vendor ID */
+- FILE *command_output = popen("lsusb | grep '046d:\|256f:'", "r");
++ FILE *command_output = popen("lsusb | grep '046d:\\|256f:'", "r");
+ if (command_output) {
+ char line[MAX_LINE_LENGTH] = {0};
+ while (fgets(line, MAX_LINE_LENGTH, command_output)) {
+ unsigned short vendor_id = 0, product_id = 0;
+ if (sscanf(line, "Bus %*d Device %*d: ID %hx:%hx", &vendor_id, &product_id) == 2)
+ if (setDevice(vendor_id, product_id)) {
+ break; /* stop looking once the first 3D mouse is found */
+ }
+ }
+ pclose(command_output);
+ }
+ }
+ else {
+ #ifdef DEBUG
+ /* annoying for official builds, just adds noise and most people don't own these */
+ puts("ndof: spacenavd not found");
+ /* This isn't a hard error, just means the user doesn't have a 3D mouse. */
+ #endif
+ }
+ }
+
+ GHOST_NDOFManagerX11::~GHOST_NDOFManagerX11()
+ {
+ if (m_available)
+ spnav_close();
+ }
+
+ bool GHOST_NDOFManagerX11::available()
+ {
+ return m_available;
+ }
+
+ /*
+ * Workaround for a problem where we don't enter the 'GHOST_kFinished' state,
+ * this causes any proceeding event to have a very high 'dt' (time delta),
+ * many seconds for eg, causing the view to jump.
+ *
+ * this workaround expects continuous events, if we miss a motion event,
+ * immediately send a dummy event with no motion to ensure the finished state is reached.
+ */
+ #define USE_FINISH_GLITCH_WORKAROUND
+ /* TODO: make this available on all platforms */
+
+ #ifdef USE_FINISH_GLITCH_WORKAROUND
+ static bool motion_test_prev = false;
+ #endif
+
+ bool GHOST_NDOFManagerX11::processEvents()
+ {
+ bool anyProcessed = false;
+
+ if (m_available) {
+ spnav_event e;
+
+ #ifdef USE_FINISH_GLITCH_WORKAROUND
+ bool motion_test = false;
+ #endif
+
+ while (spnav_poll_event(&e)) {
+ switch (e.type) {
+ case SPNAV_EVENT_MOTION:
+ {
+ /* convert to blender view coords */
+ GHOST_TUns64 now = m_system.getMilliSeconds();
+ const short t[3] = {(short)e.motion.x, (short)e.motion.y, (short)-e.motion.z};
+ const short r[3] = {(short)-e.motion.rx, (short)-e.motion.ry, (short)e.motion.rz};
+
+ updateTranslation(t, now);
+ updateRotation(r, now);
+ #ifdef USE_FINISH_GLITCH_WORKAROUND
+ motion_test = true;
+ #endif
+ break;
+ }
+ case SPNAV_EVENT_BUTTON:
+ GHOST_TUns64 now = m_system.getMilliSeconds();
+ updateButton(e.button.bnum, e.button.press, now);
+ break;
+ }
+ anyProcessed = true;
+ }
+
+ #ifdef USE_FINISH_GLITCH_WORKAROUND
+ if (motion_test_prev == true && motion_test == false) {
+ GHOST_TUns64 now = m_system.getMilliSeconds();
+ const short v[3] = {0, 0, 0};
+
+ updateTranslation(v, now);
+ updateRotation(v, now);
+
+ anyProcessed = true;
+ }
+ motion_test_prev = motion_test;
+ #endif
+
+ }
+
+ return anyProcessed;
+ }
+
+ #endif /* WITH_INPUT_NDOF */
diff --git a/blender.spec b/blender.spec
index a1afc3d..9c0af09 100644
--- a/blender.spec
+++ b/blender.spec
@@ -22,7 +22,7 @@
Name: blender
Epoch: 1
Version: %{blender_api}
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: 3D modeling, animation, rendering and post-production
@@ -30,6 +30,7 @@ Group: Applications/Multimedia
License: GPLv2
URL: http://www.blender.org
+
Source0: http://download.blender.org/source/blender-%{version}.tar.gz
Source1: blenderplayer.1
Source5: blender.xml
@@ -38,6 +39,9 @@ Source10: macros.blender
Patch2: blender-2.73-droid.patch
+# Regression patch taken from upstream
+Patch100: blender-2.74-reg.patch
+
BuildRequires: desktop-file-utils
BuildRequires: gettext
BuildRequires: libtool
@@ -149,6 +153,8 @@ sets.
%patch2 -p1 -b .droid
+%patch100 -p1
+
find -name '.svn' -print | xargs rm -rf
%build
@@ -297,6 +303,9 @@ fi
%doc release/datafiles/LICENSE-bmonofont-i18n.ttf.txt
%changelog
+* Tue May 5 2015 Jochen Schmitt <Jochen herr-schmitt de> - 1:2.74-4
+- Fix regression for 3D mice support
+
* Mon May 4 2015 Jochen Schmitt <Jochen herr-schmitt de> - 1:2.74-3
- Enable 3D mice support
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/blender.git/commit/?h=f22&id=c4d4e4bcbda3ced18fa28954f5c32fc4074c8e6a
More information about the scm-commits
mailing list