Compatibility Notes 8.1

Open Inventor 8.1 (February 2010) Older compatibility notes

VSG Company

Technical Overview

PoView / PoSceneView

SoShapeHints

SoBufferedShape

Viewer Classes

OpenGL Contexts

Windows Vista / 7

Passwords

Open Inventor 8.0 (May 2009)

Open Inventor 7.2 (October 2008)

Open Inventor 7.1 (April 2008)


Company name = VSG

Since June 2009, VSG is a standalone company again! As we were (under the name TGS) before we were acquired by Mercury Computer Systems in 2004. In addition, Open Inventor™ is now officially a trademark of VSG. As a result, the product name is now simply Open Inventor. You'll notice some cosmetic product packaging changes -- new logos, icons, copyrights, etc. -- but, by and large, the changes will have little to no effect on your everyday use of Open Inventor. The same Open Inventor team that has provided quality software, services, and support over the years is still in place to continue meeting your graphics software needs.

Here are the few changes related to the name change that you need to know about:

  • The contact addresses for general inquiries, hotline, and password requests have changed. See the Support topic for the current contact info.
  • The command-line program used for obtaining your computer ID has been renamed from MCScomputerID to VSGcomputerID.
  • [Win32] The default installation directory has changed. It is now
        C:\Program Files\Open Inventor by VSG\OIV8.1

Technical Overview

Please at least glance through these compatibility notes so that you are not surprised by any differences in behavior between this release and the previous release.

You should completely recompile existing applications after installing a new version of Open Inventor.

PoView/PoSceneView

PoBaseView and inherited classes are now part of the Open Inventor Core library instead of the MeshViz module extension.
The previous headers are still available, but applications should now include the headers provided in < Inventor/Gui/view/*.h >
The API has been changed slightly to avoid window system dependent dependencies (Win/Xt/Qt/Wx):

New API parameters Previous API parameters
PoBaseView::setCamera(SoGuiViewer* myViewer) PoBaseView::setCamera(So[Xt/Qt/Win/Wx]Viewer* mySysDependentViewer)
PoBaseView::getView(SoGuiViewer* myViewer) PoBaseView::getView(So[Xt/Qt/Win/Wx]Viewer* mySysDependentViewer)

SoShapehints

The default value for the field useVBO is now TRUE.
This value can be overridden using the new environment variable OIV_FORCE_USE_VBO (see SoPreferences).

SoBufferedShape

SoBufferedShape::ComponentType definition is replaced by SbDataType::DataType existing type.

Viewer classes

The default viewer window size is now 800x600 (previously was 400x400).
This affects all SoXXXFullViewer (and derived) classes including SoWinFullViewer, SoXtFullViewer and SoQtFullViewer.
This value can be overridden using the new environment variable OIV_VIEWER_SIZE (see SoPreferences).

OpenGL context management

Open Inventor now uses a stack to manage OpenGL contexts and so is able to restore previous context state along any traversal with respect to context sharing and threading issues, and reduce the number of context switchs sent to the driver.

Because of this new context management (using the SoGLContext class), the following method is deprecated:

So[XX]GLWidget::makeNormalCurrent()

and is replaced by :

So[XX]GLWidget::bindNormalContext()
So[XX]GLWidget::unbindNormalContext()

Each time the application needs a valid OpenGL context, the application must bind it and unbind it (as soon as it is no longer needed).

Note that during an SoGLRenderAction traversal, Open Inventor guarantees that there is always a valid OpenGL context bound.

In order to provide backward compatibility to applications that do OpenGL calls without checking valid context availability. We provide the OIV_COMPAT_CONTEXT_80 environment variable (see SoPreferences ) to specify the compatibility model used for context management.

  • If set to 0 (default) the new stack implementation of SoGLContext will be used to manage OpenGL contexts.
     
  • If set to 1 then Open Inventor will not use context stack management, and will issue driver calls each time bindNormalContext() is called and will ignore unbindNormalContext().

    By using this mode, the last bound context will remain bound even outside the SoGLRenderAction traversal. It allows ThirdParty modules that issue OpenGL calls outside any SoGLRenderAction traversal to work properly with no changes.
     

  • If set to 2 then, in addition to the mode 1 behavior, any SoGLContext::getCurrent() calls will issue a driver call to return the actual current context and will bypass the Open Inventor SoGLContext cache.

    This prevents issues related to third party code that create their own context and bind it in the middle of an SoGLRenderAction without informing Open Inventor.

SoGLDisplayList::getContext

SoGLDisplayList::getContext() no longer returns an int.

It now returns an SoDeviceContext object handle.

Code using this call will no longer compile, but can be replaced by the following code example:

    int ctxId = 0;
    SoGLContext* ctx=dynamic_cast < SoGLContext* > (getContext());
    if ( ctx )
      ctxId = ctx->getId();
  

OpenGL Header Files

In previous releases of Open Inventor, the OpenGL header files were "automatically" included in application source files that included some Open Inventor header files. This was always a side-effect, not a feature. Although some developers found it convenient, we feel that good code should not have side-effects like this.

As a result some application files that make direct calls to OpenGL, e.g. SoCallback callback functions, may not compile unless the OpenGL headers are explicitly included. As a convenience we provide this platform independent wrapper to reliably include the OpenGL headers wherever you need them:

    #include &ltInventor/sys/SoGL.h>
  

Windows Vista / Windows 7

On the Windows Vista and Windows 7 platforms, Open Inventor no longer requests a GDI compatible pixel format by default.
This avoids compatibility problems when the "Aero" desktop mode is enabled. It only affects applications that need to do GDI rendering in the Open Inventor window. You can override this behavior by setting the OIV_PFD_SUPPORT_COMPOSITION environment variable (see SoPreferences). Alternatively you may be able to re-implement the GDI rendering using Open Inventor's "fast edit" feature (see SoSeparator). This was done internally, for example, in the SoExtSelection class. There is no change in behavior on the Windows XP platform.

Passwords

You will need an updated password with the new version number for each of your FEI products.

Go to the Open Inventor Licences Key Request form: http://www.vsg3d.com/password_request_oiv.php

Or contact directly the license administrator: vsglicense@fei.com

NOTE: We recommend that customers using a laptop machine give us the hostid obtained using, for example, LAdmin or VSGcomputerID, while the laptop is *not* connected to its docking station. This is because the MAC address of the network card in the docking station will be detected while connected, but this address will not be known while the machine is disconnected from the docking station.