VR Juggler 3.0.0 released

71 views
Skip to first unread message

Patrick Hartling

unread,
Nov 27, 2010, 10:49:13 AM11/27/10
to vrjuggler...@googlegroups.com, vrjuggler...@googlegroups.com
VR Juggler 3.0.1 has finally been released. This release took longer than I would have liked, but every delay was to ensure high code quality. To that end, this is a bug-fix release focused on enhancing stability and fixing issues reported by users of VR Juggler 3.0.0. The source code for this release can be found here:


Archives containing updates to the rendered documentation will be available soon.

NOTE: Flagpoll 0.9.4 or newer is required to build this VR Juggler release from source code. Version 0.9.1 was the previous minimum required version, but recent bug fixes in Flagpoll pertain to ensuring that VR Juggler can be built correctly on Mac OS X in all circumstances.

VR Juggler 3.0 represents the culmination of three years of development and testing, and as a result, this is probably the most well tested VR Juggler version yet. A great deal of care was taken to ensure that this would be a solid release because of its significance. Specifically, VR Juggler 3.0 has a totally redesigned cluster infrastructure.

The new cluster infrastructure is based on a formal client/server model rather than the peer-to-peer approach with an ad hoc server used by VR Juggler 2.x. The new architecture is vastly more scalable and more performant. It should also prove easier to configure in at least two ways. First, the server node distributes configuration information to clients rather than requiring users to maintain per-machine configuration arrangements. Second, it is no longer necessary to identify which cluster node is hosting a device because all devices have to be hosted by the server.

Since VR Juggler 3.0.0 was released nearly a year ago, there have been many fixes and enhancements applied. The majority of this work was done based on user feedback and user submissions, which is greatly appreciated. Highlights include the following:
  • Added support for Boost.Filesytem v3 when using Boost 1.46.0 and newer.
  • Fixed a VRJConfig startup problem on Windows.
  • Fixed vrj::Kernel::loadConfigFile() to ignore config files given on cluster slave nodes.
  • Added vrj::User::setHeadPosProxy().
  • Fixed a regression where rotations would not be applied to simulator viewports.
  • Fixed problems when shutting down the VRPN driver.
  • Fixed off-by-one errors in the VRPN driver.
  • Fixed serialization of gadget::Glove angle values.
  • Fixed Cocoa keyboard and mouse events on to be measured in milliseconds to match X11 and Win32.
  • Fixed gadget::MouseEvent generation to include the pressed (released) mouse button for X11 mouse button press (release) events.
  • Fixed mishandling of the value returned by FreeLibrary().
  • Fixed DNS lookup problems when IPv6 is enabled on Windows.
  • Fixed networking issues when using Boost.Asio.
  • Fixed UDP recvfrom() timeout handling on Windows XP.
Other highlights of the VR Juggler 3.0 release series include the following:

  • Support for OpenGL 3.0 contexts.
  • NSPR is no longer a dependency on Windows. Boost.Asio is now used for networking, and that means that Boost 1.35.0 is the minimum required version of Boost on Windows. Using 1.40.0 or newer is highly recommended. For 64-bit Windows builds, 1.40.0 is the minimum required version.
  • Use of a CORBA Naming Service by Tweek is now optional as direct connections to Subject Manager servants are now supported.
  • VRJConfig now uses a direct connection to the configuration subject manager, thus making dynamic run-time reconfiguration easier to utilize.
  • Use of reference counted memory (through boost::shared_ptr<T>) has been expanded to help protect against dangling references and memory leaks. This pertains mostly to input device objects and input proxy objects.
  • Simulated analog devices now have an optional "auto-return" feature that can be enabled through the configuration.
  • Mouse locking use and behavior within keyboard/mouse input areas (i.e., windows) is now more configurable, and it can be controlled by application code when necessary.
  • Two new Open Scene Graph application object types have been added: vrj::osg::AppViewer and vrj::osg::AppPager. See the documentation for the respective classes for more details.
  • The OpenSG application object class, vrj::opensg::App, support both OpenSG 1.8 and 2.0. The decision about which API to use is made at compile time.
  • Many improvements have been made to the use of Cocoa on Mac OS X.

There are some "breaking" changes relative to VR Juggler 2.x of which application programmers need to be aware. They include the following:

  • The X,Y position for mouse events is now reported using a lower left-hand corner origin to match the window positioning convention of Juggler.
  • Mouse scroll events in the X and Y axes are now treated as first class mouse events rather than pretending that they are button presses.
  • Classes for each Draw Manager implementation now use distinct C++ namespaces. Backward compatibility typedefs have been included to aid with migrating code.

Finally, this release marks the first time that support for legacy features has been removed. The following may be of interest to users with old equipment or operating systems:

  • Support for SPROC threads on IRIX has been removed.
  • Support for Mac OS X 10.3 has been removed. 10.4 (Tiger) is now the minimum required version.
  • Support for AudioWorks has been removed.
  • Support for Visual C++ 7.1 (.NET 2003) has been dropped. Visual C++ 8.0 (2005) is the minimum supported version now.

As usual, there are changes to configuration files required to take advantage of new features. For details in migrating applications and configurations from VR Juggler 2.2 to 3.0, please see the migration page on the wiki:


Please submit bug reports through the issue tracker here:


--
Patrick L. Hartling
Senior Software Engineer, Priority 5
http://www.priority5.com/

Reply all
Reply to author
Forward
0 new messages