| 1 |
VR Juggler Release Notes |
|---|
| 2 |
------------------------ |
|---|
| 3 |
|
|---|
| 4 |
For all versions: |
|---|
| 5 |
|
|---|
| 6 |
- See the ChangeLog for more system-level changes that do not directly |
|---|
| 7 |
affect applications. |
|---|
| 8 |
- See the Known Bugs page on the VR Juggler website (www.vrjuggler.org) |
|---|
| 9 |
for the current list of bugs. |
|---|
| 10 |
|
|---|
| 11 |
=============================================================================== |
|---|
| 12 |
|
|---|
| 13 |
Version: 2.0.0 |
|---|
| 14 |
Released: July 5, 2005 |
|---|
| 15 |
Please refer to the following to get started with VR Juggler 2.0.0: |
|---|
| 16 |
|
|---|
| 17 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 18 |
|
|---|
| 19 |
In general, there are no required application or configuration changes |
|---|
| 20 |
to update from VR Juggler 2.0 Beta 3 to 2.0.0. To update from |
|---|
| 21 |
2.0 Alpha 4, please refer to the instructions below for VR Juggler 2.0 |
|---|
| 22 |
Beta 1. |
|---|
| 23 |
|
|---|
| 24 |
New in this release: |
|---|
| 25 |
* Support for Windows XP x64 Edition. |
|---|
| 26 |
* Improved stabilitiy for Open Scene Graph applications, especially |
|---|
| 27 |
in multi-threaded, multi-pipe configurations. |
|---|
| 28 |
* OpenGL display windows are closed cleanly now, and overrides of |
|---|
| 29 |
vrj::GlApp::contextClose() are invoked. |
|---|
| 30 |
|
|---|
| 31 |
Version: 2.0 Beta 3 (1.1.172-0) |
|---|
| 32 |
Released: June 7, 2005 |
|---|
| 33 |
|
|---|
| 34 |
Please refer to the following to get started with VR Juggler 2.0 Beta 3: |
|---|
| 35 |
|
|---|
| 36 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 37 |
|
|---|
| 38 |
In general, there are no required application or configuration changes |
|---|
| 39 |
to update from VR Juggler 2.0 Beta 2 to 2.0 Beta 3. To update from |
|---|
| 40 |
2.0 Alpha 4, please refer to the instructions below for VR Juggler 2.0 |
|---|
| 41 |
Beta 1. All users updating to 2.0 Beta 3 should read the following |
|---|
| 42 |
carefully: |
|---|
| 43 |
|
|---|
| 44 |
* Users of OpenSG and VR Juggler with application objects derived |
|---|
| 45 |
from vrj::OpenSGApp should verify three things: |
|---|
| 46 |
|
|---|
| 47 |
1) If vrj::App::getDrawScaleFactor() is overridden, make sure |
|---|
| 48 |
that the method returns the correct scaling value. |
|---|
| 49 |
2) Requests for position matrices from gadget::PositionInterface |
|---|
| 50 |
(or gadget::PositionProxy) objects should use the same |
|---|
| 51 |
conversion factor that is returned by getDrawScaleFactor(). |
|---|
| 52 |
3) The application scene graph does not have an extraneous scale |
|---|
| 53 |
node left over from older VR Juggler releases. There is no |
|---|
| 54 |
need to perform manual scene scaling to handle proper |
|---|
| 55 |
rendering. |
|---|
| 56 |
|
|---|
| 57 |
* More parameters can now be configured in the OpenGL frame |
|---|
| 58 |
buffer settings for display windows. Users are encouraged to |
|---|
| 59 |
load all local .jconf files containing display_window config |
|---|
| 60 |
elements into VRJConfig to be updated. (After the automatic |
|---|
| 61 |
update, click the "Save All" button to save the updates.) The |
|---|
| 62 |
update is not required, but it is recommended. |
|---|
| 63 |
|
|---|
| 64 |
Version: 2.0 Beta 2 (1.1.167-0) |
|---|
| 65 |
Released: January 18, 2005 |
|---|
| 66 |
|
|---|
| 67 |
Please refer to the following to get started with VR Juggler 2.0 Beta 2: |
|---|
| 68 |
|
|---|
| 69 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 70 |
|
|---|
| 71 |
There are no required application or configuration changes to update |
|---|
| 72 |
from VR Juggler 2.0 Beta 1 to 2.0 Beta 2. To update from 2.0 Alpha 4, |
|---|
| 73 |
please refer to the instructions below for VR Juggler 2.0 Beta 1. |
|---|
| 74 |
|
|---|
| 75 |
This release includes many bug fixes and feature enhancements & |
|---|
| 76 |
additions to VRJConfig. In particular, custom editors have been |
|---|
| 77 |
added for configuring Ascension MotionStar Wireless and Ascension |
|---|
| 78 |
Flock of Birds devices. All bugs reported with VR Juggler 2.0 Beta 1 |
|---|
| 79 |
have been fixed. |
|---|
| 80 |
|
|---|
| 81 |
Version: 2.0 Beta 1 (1.1.166-0) |
|---|
| 82 |
Released: December 24, 2004 |
|---|
| 83 |
|
|---|
| 84 |
Please refer to the following to get started with VR Juggler 2.0 Beta 1: |
|---|
| 85 |
|
|---|
| 86 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 87 |
|
|---|
| 88 |
Required application and configuration changes for upgrading from all |
|---|
| 89 |
previous versions (including 2.0 Alpha 1 up through 2.0 Alpha 4): |
|---|
| 90 |
|
|---|
| 91 |
* XSLT has been added to allow upgrading from old configuration |
|---|
| 92 |
files easier. The following directory contains a collection of |
|---|
| 93 |
XSLT stylesheets that can be used for updating XML-based |
|---|
| 94 |
VR Juggler/JCCL configuration files. The update process is |
|---|
| 95 |
iterative with each step corresponding to one release of VR Juggler. |
|---|
| 96 |
|
|---|
| 97 |
$VJ_BASE_DIR/share/vrjuggler/data/xslt/ |
|---|
| 98 |
|
|---|
| 99 |
All .jconf files created for VR Juggler 2.0 Alpha 4 or any version |
|---|
| 100 |
of the code since that release must be updated using the script |
|---|
| 101 |
2.0a4-2.0b1.xsl. Changes were made since 2.0 Alpha 4 that cannot |
|---|
| 102 |
be expressed with the automated updating built in to VRJConfig. |
|---|
| 103 |
|
|---|
| 104 |
* After you have performed the update, you should load the migrated |
|---|
| 105 |
configuration file using VRJConfig to complete the update process |
|---|
| 106 |
and to review your configuration. Some additions to the XML |
|---|
| 107 |
content may be made automatically, and generic identifiers are |
|---|
| 108 |
often used for these additions. Using VRJConfig, you can make |
|---|
| 109 |
customizations for your specific configuration. |
|---|
| 110 |
|
|---|
| 111 |
* Custom configuration definitions (.jdef files) must be updated to |
|---|
| 112 |
versrion 3.1 of the definition file format. Use the following |
|---|
| 113 |
XSLT to perform the update on all your custom .jdef files: |
|---|
| 114 |
|
|---|
| 115 |
$VJ_BASE_DIR/share/jccl/tools/xmlupdate/jdef_3.0-3.1.xsl |
|---|
| 116 |
|
|---|
| 117 |
* gadget::EventWindow has been renamed to use the more meaningful |
|---|
| 118 |
name gadget::KeyboardMouse. Application objects using |
|---|
| 119 |
gadget::EventWindowInterface must simply change the name of the |
|---|
| 120 |
type to gadget::KeyboardMouseInterface. |
|---|
| 121 |
|
|---|
| 122 |
* The method vrj::OpenSGApp::getSceneRoot() has been renamed to |
|---|
| 123 |
vrj::OpenSGApp::getScene() to be in line with the OpenGL Performer |
|---|
| 124 |
and OSG application object base classes. |
|---|
| 125 |
|
|---|
| 126 |
* The use of GMTL 0.4.5 may require application changes to fix |
|---|
| 127 |
compile errors. Refer to the following explanation of what to |
|---|
| 128 |
do if uses of gmtl::Vec* cause compile errors: |
|---|
| 129 |
|
|---|
| 130 |
http://sourceforge.net/mailarchive/message.php?msg_id=9550350 |
|---|
| 131 |
|
|---|
| 132 |
* The Sonix class sonix is now in the snx namespace. To update, |
|---|
| 133 |
change calls to snx::sonix or add 'using namespace snx;' to your |
|---|
| 134 |
code. |
|---|
| 135 |
|
|---|
| 136 |
* VPR_PROFILE() has been renamed to VPR_PROFILE_GUARD(). |
|---|
| 137 |
VPR_PROFILE_HISTORY() has been renamed to |
|---|
| 138 |
VPR_PROFILE_GUARD_HISTORY(). |
|---|
| 139 |
|
|---|
| 140 |
* The pseudo-device TweekGadget has been removed from Gadgeteer. |
|---|
| 141 |
Its sole purpose was to work around the lack of support for |
|---|
| 142 |
shared application-specific data in a cluster configuration. |
|---|
| 143 |
That feature has existed since VR Juggler 2.0 Alpha 1, and |
|---|
| 144 |
therefore, TweekGadget had out-lived its usefullness a long |
|---|
| 145 |
time ago. Users of TweekGadget must switch their code to use |
|---|
| 146 |
the Tweek Java and C++ APIs directly in conjunction with the |
|---|
| 147 |
Gadgeteer type cluster::UserData<T> for sharing arbitrary |
|---|
| 148 |
application-specific data structures. Programmer's unfamiliar |
|---|
| 149 |
with the direct use of the Tweek C++ and Java APIs are |
|---|
| 150 |
referred to the Tweek /Programmer's Guide/: |
|---|
| 151 |
|
|---|
| 152 |
http://www.vrjuggler.org/tweek/docs.php |
|---|
| 153 |
|
|---|
| 154 |
Version: 2.0 Alpha 4 (1.1.150-0) |
|---|
| 155 |
Released: April 28, 2004 |
|---|
| 156 |
|
|---|
| 157 |
Please refer to the following to get started with VR Juggler 2.0 Alpha 4: |
|---|
| 158 |
|
|---|
| 159 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 160 |
|
|---|
| 161 |
Required application and configuration changes for upgrading from all |
|---|
| 162 |
previous versions (including 2.0 Alpha 1 up through 2.0 Alpha 3): |
|---|
| 163 |
|
|---|
| 164 |
* XSLT has been added to allow upgrading from old configuration |
|---|
| 165 |
files easier. The following directory contains a collection of |
|---|
| 166 |
XSLT stylesheets that can be used for updating XML-based |
|---|
| 167 |
VR Juggler/JCCL configuration files. The update process is |
|---|
| 168 |
iterative with each step corresponding to one release of VR Juggler. |
|---|
| 169 |
|
|---|
| 170 |
$VJ_BASE_DIR/share/vrjuggler/data/xslt/ |
|---|
| 171 |
|
|---|
| 172 |
* After you have performed the update, you should load the generated |
|---|
| 173 |
configuration file using VRJConfig and review your configuration. |
|---|
| 174 |
Some additions to the XML content may be made, and generic |
|---|
| 175 |
identifiers are often used for these additions. Using VRJConfig, |
|---|
| 176 |
you can make customizations for your specific configuration. |
|---|
| 177 |
|
|---|
| 178 |
|
|---|
| 179 |
Performance Monitoring |
|---|
| 180 |
====================== |
|---|
| 181 |
|
|---|
| 182 |
Added the ability to acquire performance statistics in order to analyze |
|---|
| 183 |
the different parts of your application and VR Juggler. The interface |
|---|
| 184 |
is very clean and easy to use. There are three macros that can be used: |
|---|
| 185 |
|
|---|
| 186 |
|
|---|
| 187 |
* VPR_PROFILE("MyDraw") |
|---|
| 188 |
|
|---|
| 189 |
- Creates a guard that adds a timesample to the entry in the |
|---|
| 190 |
profile tree with the given name. |
|---|
| 191 |
|
|---|
| 192 |
* VPR_PROFILE_HISTORY("MyDraw", num) |
|---|
| 193 |
|
|---|
| 194 |
- Creates a guard that adds a timesample to the entry in the |
|---|
| 195 |
profile tree with the given name and also keep a record |
|---|
| 196 |
of the past num samples. |
|---|
| 197 |
|
|---|
| 198 |
* VPR_PROFILE_RESULTS() |
|---|
| 199 |
|
|---|
| 200 |
- Prints the profile tree: giving the number of calls, total time, |
|---|
| 201 |
average time, and last num samples. |
|---|
| 202 |
|
|---|
| 203 |
|
|---|
| 204 |
Run Time Reconfiguration |
|---|
| 205 |
======================== |
|---|
| 206 |
|
|---|
| 207 |
Implemented the CORBA-based remote run-time reconfiguration feature of |
|---|
| 208 |
VRJConfig which had been missing for quite a while. VR Juggler now has |
|---|
| 209 |
an exceptionally robust, multi-language architecture for reconfiguring |
|---|
| 210 |
running applications with external tools. The C++/CORBA part of the |
|---|
| 211 |
remote reconfiguration feature is loaded as a plug-in at run time. |
|---|
| 212 |
This allows us to distribute pre-compiled code without requiring that |
|---|
| 213 |
everyone have omniORB installed just to be able to try out VR Juggler. |
|---|
| 214 |
Improved the ability of various parts of the C++ code to be |
|---|
| 215 |
reconfigurable. Most notably ensuring that device drivers can be |
|---|
| 216 |
reconfigured correctly. |
|---|
| 217 |
|
|---|
| 218 |
VRJConfig |
|---|
| 219 |
========= |
|---|
| 220 |
|
|---|
| 221 |
Replaced the old JTreeTable with a much better looking TableLayout that |
|---|
| 222 |
visualizes the structure of the configuration in a more useful manner. |
|---|
| 223 |
Implemented are the much-desired features of drag & drop, copy & paste, |
|---|
| 224 |
and undo/redo. You can now drag configuration elements between |
|---|
| 225 |
configuration contexts. |
|---|
| 226 |
|
|---|
| 227 |
|
|---|
| 228 |
Config Element Versioning |
|---|
| 229 |
========================= |
|---|
| 230 |
|
|---|
| 231 |
Automatic updating of out-of-date configuration elements has been added. |
|---|
| 232 |
VRJConfig can detect when a configuration element is out of date with |
|---|
| 233 |
respect to its definition. Through the magic of XSLT, the configuration |
|---|
| 234 |
element can be transformed into the new version automatically. This means |
|---|
| 235 |
that manual updating of configuration files will be a thing of the past |
|---|
| 236 |
for about 99% of the cases. (XSLT is not perfect, but it works pretty |
|---|
| 237 |
darn well.) With the addition of XML Schema support for structural |
|---|
| 238 |
validation of XML input, we are now reaching a point where the full |
|---|
| 239 |
potential of XML is being realized for VR Juggler. |
|---|
| 240 |
|
|---|
| 241 |
|
|---|
| 242 |
Config Element Definition Inheritance |
|---|
| 243 |
===================================== |
|---|
| 244 |
|
|---|
| 245 |
Work has been completed for adding inheritance to configuration |
|---|
| 246 |
definitions. VRJConfig can now handle configuration elements in a more |
|---|
| 247 |
abstract manner. For example, consider the following snippets of |
|---|
| 248 |
configuration definition files (input_device.jdef, |
|---|
| 249 |
positional_device.jdef, and flock.jdef): |
|---|
| 250 |
|
|---|
| 251 |
<definition name="input_device" ...> |
|---|
| 252 |
<definition_version version="1" ...> |
|---|
| 253 |
<property name="device_host" ...> |
|---|
| 254 |
... |
|---|
| 255 |
</property> |
|---|
| 256 |
</definition_version> |
|---|
| 257 |
</deinition> |
|---|
| 258 |
|
|---|
| 259 |
<definition name="positional_device" ...> |
|---|
| 260 |
<definition_version version="1" ...> |
|---|
| 261 |
<parent>input_device</parent> |
|---|
| 262 |
<property name="position_filters" ...> |
|---|
| 263 |
... |
|---|
| 264 |
</property> |
|---|
| 265 |
</definition_version> |
|---|
| 266 |
</definition> |
|---|
| 267 |
|
|---|
| 268 |
<definition name="flock" ...> |
|---|
| 269 |
<definition_version version="1" ...> |
|---|
| 270 |
<parent>positional_device</parent> |
|---|
| 271 |
... |
|---|
| 272 |
</definition_version> |
|---|
| 273 |
</definition> |
|---|
| 274 |
|
|---|
| 275 |
The configuration element for the Ascension Flock of Birds inherits from |
|---|
| 276 |
'positional_device' which in turn inherits from 'input_device'. Thus, |
|---|
| 277 |
it gets the properties of device_host (needed for the cluster support) |
|---|
| 278 |
and position_filters (needed for all positional devices) automatically |
|---|
| 279 |
without having to redefine them. VRJConfig can now handle instances of |
|---|
| 280 |
the 'flock' element type as instances of 'positional_device' or |
|---|
| 281 |
'input_device'. There are a lot of benefits of this capability, |
|---|
| 282 |
although the most useful one for many users is that custom configuration |
|---|
| 283 |
elements can now be integrated into the configuration editing process |
|---|
| 284 |
seamlessly. For example, if you are writing your own device driver, |
|---|
| 285 |
you can make its configuration definition inherit from the appropriate |
|---|
| 286 |
base types, and then proxy pointers, custom editors, etc. can handle |
|---|
| 287 |
your definition type without requiring modification to the "core" files |
|---|
| 288 |
that come with a VR Juggler distribution. |
|---|
| 289 |
|
|---|
| 290 |
|
|---|
| 291 |
VRJConfig - Custom Editors |
|---|
| 292 |
========================== |
|---|
| 293 |
|
|---|
| 294 |
Much work has been put into the design of high-level editors for |
|---|
| 295 |
complex tasks such as device configuration including proxies, aliases, |
|---|
| 296 |
and screen placement for projection VR systems. These pieces |
|---|
| 297 |
are still being worked on and represent some of the most cutting-edge |
|---|
| 298 |
features of VRJConfig. In the case of device configuration, the first |
|---|
| 299 |
custom editor developed was for the Intersense tracking system. You |
|---|
| 300 |
can create a VR Juggler configuration from the ground up using a very |
|---|
| 301 |
intuitive interface that greatly simplifies the complexity of this task. |
|---|
| 302 |
|
|---|
| 303 |
|
|---|
| 304 |
VRJConfig - Wizards |
|---|
| 305 |
=================== |
|---|
| 306 |
|
|---|
| 307 |
Wizards have been added into VRJConfig to simplify the creation of |
|---|
| 308 |
general purpose configurations. These include a wizard that steps |
|---|
| 309 |
the user through all steps necessary to create a clustered simulator |
|---|
| 310 |
configuration. This is a rather new feature and will be expanded |
|---|
| 311 |
in the future. |
|---|
| 312 |
|
|---|
| 313 |
|
|---|
| 314 |
Building Device Drivers |
|---|
| 315 |
======================= |
|---|
| 316 |
|
|---|
| 317 |
Related to people writing their own device drivers, the Gadgeteer |
|---|
| 318 |
build system has been revamped to make it much, much easier for users to |
|---|
| 319 |
compile their device driver plug-ins with all the correct options. It |
|---|
| 320 |
is now possible for developers to write a *four-line* makefile that will |
|---|
| 321 |
build a device driver correctly on all supported platforms. |
|---|
| 322 |
|
|---|
| 323 |
|
|---|
| 324 |
VR Juggler dynamic application loader/launcher |
|---|
| 325 |
============================================== |
|---|
| 326 |
|
|---|
| 327 |
The basic idea with this application is to allow remote launching of |
|---|
| 328 |
dynamically loaded VR Juggler application objects. In other words, it |
|---|
| 329 |
realizes a goal we have had for a long time: a VR Juggler daemon. If |
|---|
| 330 |
you would like to check it out, it is in the VR Juggler Toolbox CVS |
|---|
| 331 |
repository in the module 'vrjugglerd' (go to http://vrjtoolbox.sf.net/ |
|---|
| 332 |
if you're not familiar with the VR Juggler Toolbox). |
|---|
| 333 |
|
|---|
| 334 |
The vrjugglerd application is quite simple--surprisingly so. At this |
|---|
| 335 |
time, it loads application objects written in C++, but it has been |
|---|
| 336 |
designed to allow loading of code from other languages. In particular, |
|---|
| 337 |
Python and .NET are the two primary non-C++ language options, and support |
|---|
| 338 |
for dynamically loading application objects written in those language |
|---|
| 339 |
platforms will be added very soon. |
|---|
| 340 |
|
|---|
| 341 |
Below is an example configuration element that shows how to dynamically |
|---|
| 342 |
load an application using vrjugglerd. |
|---|
| 343 |
|
|---|
| 344 |
|
|---|
| 345 |
<vrjuggler_app_loader name="Cubes Loader" version="1"> |
|---|
| 346 |
<app_object> |
|---|
| 347 |
<vrj_cpp_app name="Cubes App" version="1"> |
|---|
| 348 |
<search_path>${VJ_BASE_DIR}/share/vrjuggler/test/Draw/OGL/cubes</search_path> |
|---|
| 349 |
<application>cubes</application> |
|---|
| 350 |
</vrj_cpp_app> |
|---|
| 351 |
</app_object> |
|---|
| 352 |
</vrjuggler_app_loader> |
|---|
| 353 |
|
|---|
| 354 |
|
|---|
| 355 |
This configuration element indicates that a shared library containing |
|---|
| 356 |
the code for the cubes application will be loaded. This version of |
|---|
| 357 |
cubes has no main() function whatsoever--it is simply a shared |
|---|
| 358 |
library (DLL) with a well-defined entry point that returns a |
|---|
| 359 |
vrj::App*. With this configuration file, it is assumed that vrjugglerd |
|---|
| 360 |
has already loaded a configuration for displays and input devices, but |
|---|
| 361 |
the vrjugglerd configuration can specify additional files to be loaded |
|---|
| 362 |
for use with the application object. (Among other things, this allows |
|---|
| 363 |
dynamic inclusion of application-specific config elements to allow the |
|---|
| 364 |
newly loaded application object to be configured as necessary.) |
|---|
| 365 |
|
|---|
| 366 |
VRJConfig connects to a running vrjugglerd and sends the config element |
|---|
| 367 |
in the attached file to vrjugglerd. As a result, the code for cubes is |
|---|
| 368 |
loaded dynamically from disk, a new GL window is opened, and the VR |
|---|
| 369 |
Juggler kernel control loop starts executing the dynamically loaded |
|---|
| 370 |
code. (All of this can be done from the command line instead, but |
|---|
| 371 |
that's not nearly as interesting.) |
|---|
| 372 |
|
|---|
| 373 |
|
|---|
| 374 |
Build System |
|---|
| 375 |
============ |
|---|
| 376 |
|
|---|
| 377 |
There have been a few major changes to the build system of VR Juggler |
|---|
| 378 |
in order to try to make the process easier for the end user. |
|---|
| 379 |
|
|---|
| 380 |
* External Dependencies |
|---|
| 381 |
|
|---|
| 382 |
- The cvs-gather script is no longer being used to pull anything |
|---|
| 383 |
from different CVS repositories into a checked out copy of the |
|---|
| 384 |
Juggler Project source. |
|---|
| 385 |
|
|---|
| 386 |
- Doozer and Doozer++ come with the VR Juggler source during a |
|---|
| 387 |
CVS checkout. Both are on vendor branches that will be updated |
|---|
| 388 |
as the need presents itself. |
|---|
| 389 |
|
|---|
| 390 |
- GMTL, on the other hand, must now be installed externally prior |
|---|
| 391 |
to building VR Juggler. Similar to CppDOM, GMTL requires SCons |
|---|
| 392 |
to be installed, but since the GMTL C++ interface is entirely |
|---|
| 393 |
in headers, there is nothing to build. |
|---|
| 394 |
|
|---|
| 395 |
* Windows Build |
|---|
| 396 |
|
|---|
| 397 |
- Cygwin is no longer required for any part of building the |
|---|
| 398 |
Juggler Project--including VR Juggler applications. |
|---|
| 399 |
|
|---|
| 400 |
- The code is built now using a Visual Studio solution that ties |
|---|
| 401 |
together a bunch of Visual C++ projects. |
|---|
| 402 |
|
|---|
| 403 |
- Unlike the Cygwin build, the Visual Studio build supports both |
|---|
| 404 |
debug and release binaries. |
|---|
| 405 |
|
|---|
| 406 |
Version: 2.0 Alpha 3 (1.1.143-1) |
|---|
| 407 |
Released: September 22, 2003 |
|---|
| 408 |
|
|---|
| 409 |
Please refer to the following to get started with VR Juggler 2.0 Alpha 3: |
|---|
| 410 |
|
|---|
| 411 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 412 |
|
|---|
| 413 |
VR Juggler Alpha 3 is being released in order to allow the VR Juggler user |
|---|
| 414 |
community access to a stabilized snapshot of the current code base. There |
|---|
| 415 |
have been no additional features added to VR Juggler since VR Juggler |
|---|
| 416 |
Alpha 2. Also there have been no API changes since the Alpha 2 release. |
|---|
| 417 |
|
|---|
| 418 |
Version: 2.0 Alpha 2 (1.1.143) |
|---|
| 419 |
Released: July 1, 2003 |
|---|
| 420 |
|
|---|
| 421 |
Please refer to the following to get started with VR Juggler 2.0 Alpha 2: |
|---|
| 422 |
|
|---|
| 423 |
http://www.vrjuggler.org/twiki_public/bin/view/Juggler/MigratingToVrjTwo |
|---|
| 424 |
|
|---|
| 425 |
Required application and configuration changes for upgrading from all |
|---|
| 426 |
previous versions (including 1.1.x up through 2.0 Alpha 1): |
|---|
| 427 |
* KeyboardWindows are now referred to as EventWindows. |
|---|
| 428 |
|
|---|
| 429 |
NOTE: DisplayWindows which contain sim_viewports are required to |
|---|
| 430 |
have the act_as_event_source property enabled. |
|---|
| 431 |
|
|---|
| 432 |
* The ClusterManager loads ClusterPlugins on demand now. The |
|---|
| 433 |
ClusterManager chunk must contain a lit of plugins which it should |
|---|
| 434 |
load. For example if you wish to load the RemoteInputManager, |
|---|
| 435 |
ApplicationDataManager, StartBarrierPlugin, and the |
|---|
| 436 |
SwapLockTCPPlugin you would have the following: |
|---|
| 437 |
|
|---|
| 438 |
<ClusterManager name="SouthPark Cluster"> |
|---|
| 439 |
<cluser_nodes>cartman</cluster_nodes> |
|---|
| 440 |
<cluser_nodes>kenny</cluster_nodes> |
|---|
| 441 |
<cluser_nodes>stan</cluster_nodes> |
|---|
| 442 |
<cluser_nodes>kyle</cluster_nodes> |
|---|
| 443 |
<cluser_nodes>chef</cluster_nodes> |
|---|
| 444 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libApplicationDataManager.so</clusterPlugin> |
|---|
| 445 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libRemoteInputManager.so</clusterPlugin> |
|---|
| 446 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libStartBarrierPlugin.so</clusterPlugin> |
|---|
| 447 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libSwapLockTCPPlugin.so</clusterPlugin> |
|---|
| 448 |
</ClusterManager> |
|---|
| 449 |
|
|---|
| 450 |
On Win32, it would appear as: |
|---|
| 451 |
|
|---|
| 452 |
<ClusterManager name="SouthPark Cluster"> |
|---|
| 453 |
<cluser_nodes>cartman</cluster_nodes> |
|---|
| 454 |
... |
|---|
| 455 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/ApplicationDataManager.dll</clusterPlugin> |
|---|
| 456 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/RemoteInputManager.dll</clusterPlugin> |
|---|
| 457 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/StartBarrierPlugin.dll</clusterPlugin> |
|---|
| 458 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/SwapLockTCPPlugin.dll</clusterPlugin> |
|---|
| 459 |
</ClusterManager> |
|---|
| 460 |
|
|---|
| 461 |
On Mac OS X, it would appear as: |
|---|
| 462 |
|
|---|
| 463 |
<ClusterManager name="SouthPark Cluster"> |
|---|
| 464 |
<cluser_nodes>cartman</cluster_nodes> |
|---|
| 465 |
... |
|---|
| 466 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libApplicationDataManager.dylib</clusterPlugin> |
|---|
| 467 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libRemoteInputManager.dylib</clusterPlugin> |
|---|
| 468 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libStartBarrierPlugin.dylib</clusterPlugin> |
|---|
| 469 |
<clusterPlugin>${VJ_BASE_DIR}/lib/gadgeteer/plugins/libSwapLockTCPPlugin.dylib</clusterPlugin> |
|---|
| 470 |
</ClusterManager> |
|---|
| 471 |
|
|---|
| 472 |
* ClusterPlugins have the following functionality: |
|---|
| 473 |
* RemoteInputManager |
|---|
| 474 |
- Synchronize device data across a cluster |
|---|
| 475 |
- Act as a device server for any number of machines. |
|---|
| 476 |
* ApplicationDataManager |
|---|
| 477 |
- Synchronize arbitrary data structures created in the |
|---|
| 478 |
developers application code across the cluster. |
|---|
| 479 |
* StartBarrierPlugin |
|---|
| 480 |
- Enforce a strict barrier that will force all nodes to begin |
|---|
| 481 |
calling the vrj::App callback functions at the same time. |
|---|
| 482 |
* SwapLockTCPPlugin |
|---|
| 483 |
- Provide SwapLock to minimize tearing across multiple displays |
|---|
| 484 |
using TCP/IP socket connection. |
|---|
| 485 |
* SwapLockWiredPlugin |
|---|
| 486 |
- Provide SwapLock to minimize tearing across multiple displays |
|---|
| 487 |
using a kernel module, a parallel port, and a simple external |
|---|
| 488 |
AND gate. |
|---|
| 489 |
* VR Juggler now supports custom simulators which can be created by the |
|---|
| 490 |
user to meet their specific needs. Each DrawManager has also been |
|---|
| 491 |
given its own "default" simulator. |
|---|
| 492 |
* XSLT has been added in: |
|---|
| 493 |
|
|---|
| 494 |
$VJ_BASE_DIR/share/vrjuggler/data/xslt/2.0a1-2.0a2.xsl |
|---|
| 495 |
|
|---|
| 496 |
which will provide an easy method to later convert configuration |
|---|
| 497 |
files from VR Juggler Alpha1 to a new release. |
|---|
| 498 |
|
|---|
| 499 |
* Update to require Boost 1.30 |
|---|
| 500 |
|
|---|
| 501 |
|
|---|
| 502 |
Version: 2.0 Alpha 1 (1.1.135) |
|---|
| 503 |
Released: March 15, 2003 |
|---|
| 504 |
|
|---|
| 505 |
Required application and configuration changes for upgrading from all |
|---|
| 506 |
previous versions (including 1.1.x up through 1.1 DR3): |
|---|
| 507 |
* Gadgeteer loads device drivers on demand now. An InputManager |
|---|
| 508 |
chunk must be added to tell the Input Manager what driver(s) to |
|---|
| 509 |
load at runtime. For example, to load the Flock of Birds driver |
|---|
| 510 |
and the Immersion IBox driver on a UNIX system, add the following |
|---|
| 511 |
to the appropriate configuration file: |
|---|
| 512 |
|
|---|
| 513 |
<InputManager name="Input Manager"> |
|---|
| 514 |
<driver>${VJ_BASE_DIR}/lib/gadgeteer/drivers/Flock_drv.so</driver> |
|---|
| 515 |
<driver>${VJ_BASE_DIR}/lib/gadgeteer/drivers/IBox_drv.so</driver> |
|---|
| 516 |
</InputManager> |
|---|
| 517 |
|
|---|
| 518 |
On Win32, it would appear as: |
|---|
| 519 |
|
|---|
| 520 |
<InputManager name="Input Manager"> |
|---|
| 521 |
<driver>${VJ_BASE_DIR}/lib/gadgeteer/drivers/Flock_drv.dll</driver> |
|---|
| 522 |
<driver>${VJ_BASE_DIR}/lib/gadgeteer/drivers/IBox_drv.dll</driver> |
|---|
| 523 |
</InputManager> |
|---|
| 524 |
|
|---|
| 525 |
All drivers except simulator devices and keyboards must be loaded |
|---|
| 526 |
this way on all platforms. For multiple instances of these, be |
|---|
| 527 |
sure to name each <InputManager> block uniquely. |
|---|
| 528 |
* In configuration files, all values representing physical units |
|---|
| 529 |
(corner positions, translation values, etc.) must be specified in |
|---|
| 530 |
meters. |
|---|
| 531 |
* All position devices now use a list of filters to transform the |
|---|
| 532 |
positional data read from the device. Correct configuration of |
|---|
| 533 |
a device's filter(s) is necessary to inform the Gadgeteer Input |
|---|
| 534 |
Manager of what units (feet, inches, meters) the device driver |
|---|
| 535 |
returns. |
|---|
| 536 |
* gadget::PositionInterface::getData() now returns a copy of a |
|---|
| 537 |
gmtl::Matrix44f instead of a pointer to the object. The method |
|---|
| 538 |
also takes an optional argument that tells what measurement units |
|---|
| 539 |
the application wants. The default is feet. |
|---|
| 540 |
|
|---|
| 541 |
Version: 1.1 DR3 (1.1.128) |
|---|
| 542 |
Released: September 29, 2002 |
|---|
| 543 |
|
|---|
| 544 |
Required application and configuration changes for upgrading from all |
|---|
| 545 |
previous versions (including 1.1.x up through 1.1 DR2): |
|---|
| 546 |
* The configuration file format has changed to an XML-based format. |
|---|
| 547 |
There is an upgrade path using the cfgupdater script and various |
|---|
| 548 |
XSLT stylesheets. Please follow the steps in the Porting Guide |
|---|
| 549 |
for further details. |
|---|
| 550 |
|
|---|
| 551 |
Version: 1.1.92 (dev build) |
|---|
| 552 |
Released: April 10, 2002 |
|---|
| 553 |
|
|---|
| 554 |
Required application and configuration changes for upgrading from all |
|---|
| 555 |
previous versions (including 1.1.x up through 1.1.91): |
|---|
| 556 |
* The directory containing miscellaneous data files has been |
|---|
| 557 |
renamed from "Data" to "data". |
|---|
| 558 |
|
|---|
| 559 |
Version: 1.1.91 (dev build) |
|---|
| 560 |
Released: October 16, 2001 |
|---|
| 561 |
|
|---|
| 562 |
Required application and configuration changes for upgrading from all |
|---|
| 563 |
previous versions (including 1.1.x up through 1.1.90): |
|---|
| 564 |
* The script juggler-config is now called vrjuggler-config. |
|---|
| 565 |
* vjDEBUG has been replaced with vprDEBUG. The levels and |
|---|
| 566 |
categories are now prefixed with "vrj" instead of "vj". The |
|---|
| 567 |
category formerly called vjDBG_ALL is now vprDBG_ALL. |
|---|
| 568 |
|
|---|
| 569 |
Version: 1.1.90 (dev build) |
|---|
| 570 |
Released: September 21, 2001 |
|---|
| 571 |
|
|---|
| 572 |
Required application changes for upgrading from all previous versions |
|---|
| 573 |
(including 1.1.x up through 1.1.89): |
|---|
| 574 |
* The directory structure for the source tree has been completely |
|---|
| 575 |
reorganized. All source and header files are now rooted in the |
|---|
| 576 |
vrj directory. The Kernel directory has been separated into |
|---|
| 577 |
"Kernel", "Draw", and "Displays". The Draw directory now contains |
|---|
| 578 |
the API-specific application headers in the directories OGL (for |
|---|
| 579 |
OpenGL), OSG (for OpenScenegraph), and Pf (for Performer). In |
|---|
| 580 |
addition, the files and classes no longer have the "vj" prefix |
|---|
| 581 |
because the vrj namespace has been put into use. Easy upgrading |
|---|
| 582 |
from 1.0 and 1.1.x builds prior to 1.1.90 can be done using the |
|---|
| 583 |
compatibility headers in the "deprecated" tree. Simply add |
|---|
| 584 |
-I$(VJ_BASE_DIR)/include/deprecated to your application's makefile |
|---|
| 585 |
and recompile. For a complete upgrade to the new structure and |
|---|
| 586 |
naming convention, consult the following web page: |
|---|
| 587 |
|
|---|
| 588 |
http://www.vrjuggler.org/<fill in path>/ |
|---|
| 589 |
|
|---|
| 590 |
Version: 1.1 (dev build) |
|---|
| 591 |
Started: April 13, 2001 |
|---|
| 592 |
|
|---|
| 593 |
Required application and configuration changes for upgrading from older |
|---|
| 594 |
versions: |
|---|
| 595 |
* Introduced window viewports. This means all config files from old |
|---|
| 596 |
version are incompatible. The new chunk type to use is displayWindow. |
|---|
| 597 |
The old chunk types (simDisplay & surfaceDisplay) can not be used. |
|---|
| 598 |
* vjGlApp::bufferPreDraw() - New interface function for OpenGL-based |
|---|
| 599 |
apps. Must use if going to use multiviewport code. |
|---|
| 600 |
|
|---|
| 601 |
* Performer now has some support for run-time reconfiguration. This |
|---|
| 602 |
has the following new implications: |
|---|
| 603 |
- numpipes must be set correctly in the display config chunk |
|---|
| 604 |
- Sometimes black windows will appear on unused pipes. |
|---|
| 605 |
* Performer applications running on Linux must use the pfStat library |
|---|
| 606 |
in tools/pfStatLinux otherwise there will be an unresolved symbol |
|---|
| 607 |
when running applications. This is due to a bug in Linux performer. |
|---|
| 608 |
|
|---|
| 609 |
=============================================================================== |
|---|