I'm working on Spaceball support for Altair HyperWorks, including HyperView, HyperGraph 3D, and Motion View.
With the 1.2.7 drivers on 64-bit CentOS 4 Linux, things worked well.
However, with 1.2.11 and 1.2.17, I've been running into problems.
With 1.2.11 and 1.2.17, any effort to customize the 3DConnexion configuration results in the app no longer receiving events.
This was not a problem with the 1.2.7 driver.
Our application runs under MainSoft's MainWin framework under Linux/Unix, allowing developers to largely target MFC as the development framework under both Windows and Unix.
Unfortunately, this means that I have no control over the X Event loop as required by your Unix driver. The X Event loop is buried in the MainWin runtime and there's no way to tell it to pass through the XEvents that 3DConnexion uses, or to interpret them as WM_USER events.
I was able to get around this limitation by opening a separate connection to the X display, create a hidden window, and use that window id in the call to MagellanInit().
There is then a MainWin call that I can make, passing the 2nd X connection file descriptor, and MainWin will trigger a callback in our code when it receives events on the 2nd display connection. The callback receives the 3DConnexion events that came via the hidden window, and we interpret them.
To keep the events flowing, I call MagellanSetWindow() whenever the user clicks in the client area of our app so that our app can re-establish focus with the 3dconnexion driver.
Like I said, this worked well with the 1.2.7 driver, but I'm having lots of problems using the 1.2.11 or 1.2.17 drivers. It seems to be sort of window focus related, and also tied to whether or not I try to customize the default configuration. If I have the default configuration, receiving events seems to work mostly okay, but there are still window focus quirks. If I try to customize the configuration by mapping different events to buttons, changing acceleration via the panel, etc, things break immediately.
What can be done to address this? 3Dconnexion support in our app is now questionable with later Linux (and I'm assuming HPUX, AIX, Solaris) drivers.
Jeff McWilliams
Senior Software Engineer - Altair

