Compatibility Notes

 

Open Inventor® 9.5.2 (Sept2015)

 

Older compatibility notes

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.



Technical overview

You should completely recompile existing applications after installing a new version of Open Inventor.
New versions of Open Inventor are source code compatible (unless noted in this document), but not binary compatible.

Important note regarding Intel Graphics plateforms

We have detected an issue on Ivy Bridge GPU (HD graphics, HD2500, HD4000) that prevents the OIV shader cache mechanism from working as expected. In order to be able to run OIV correctly on these plateforms user must set OIV_SHADER_DISK_CACHE envvar to 0 in order to get OIV working. Newer Intel platforms such as HD 4600 are not concerned by this issue. 

New APIs

This section lists all the new APIs introduced into Open Inventor 9.5 Beta1. New methods, fields and classes are listed to give a quick access to new material available in this new release.

Open Inventor

New Classes

  • SoCameraInteractor
  • SoSTLInputReader, SoSTLWriteAction, SoSTLFileFormat
  • SoCADFileFormat, SoCADInputReader, SoCADInputReaderParameters
  • SoAlgebraicCone, SoAlgebraicCylinder, SoAlgebraicShape, SoAlgebraicSphere
  • SoMultipleInstance, SoMultipleInstanceElement 
  • SoMultipleInstanceBase, SoMFInstanceParameter, SoInstanceParameter
  • SoSystemTimer, SoSystemTimerTask, SoEventBuilder, SoRenderAreaCore

New Methods

  • SoDB.h : static void setSystemTimer(SoSystemTimer* timer)
  • SoPath.h : int getInstanceIndexFromTail(int i) const
  • SoRasterImageRW.h : virtual SbBool readRegion(SbRasterImage* rasterImage, size_t imageIndex, const SbBox2i32& region)
  • SoTIFFImageRW.h : virtual SbBool read(SbRasterImage* rasterImage, SbBool infoOnly = FALSE)
  • SoTIFFImageRW.h : virtual SbBool read(SbRasterImage* rasterImage, size_t imageIndex, SbBool infoOnly = FALSE)
  • SoTIFFImageRW.h : virtual SbBool readRegion(SbRasterImage* rasterImage, const SbBox2i32& region)
  • SoSceneManager.h : void setStillSuperSampling (float quality, float delay)

New Enums

  • SoColormap.h : Interpolation

New Fields

  • SoColorMap.h : SoSFEnum interpolation

VolumeViz

New Classes

  • SoSliceDetail, SoFenceSliceDetail, SoVRTiffFileReader

New Methods

  • SoVRDicomeFileReader.h : SbBool setFilenameList(const SbString& format, const int startIndex = 0, const int endIndex = INT_MAX, const int indexStep = 1)
  • SoVRDicomeFileReader.h : SbBool setDirectory(const SbString& folder)

 

Compatibility Issues

In this chapter are listed all the modifications that could impact application built with previous version of Open Inventor:

  • some of these updates will require to update the code of the application
  • some may change the default behavior of an existing application

In both cases we recommend to consult the documentation to be sure to get needed informations on how to bypass these compatibility issues. 

Open Inventor

New flexible RenderArea

The examples and source code have been reorganized, below some details:

  • C++ API example: QtViewer renamed as QtRenderAreaGuiIntegration and moved to src/Inventor/gui/Qt/QtRenderAreaGuiIntegration

Reader plugin renaming

Reader plugins have been renamed to ease redistribution. The naming convention, which used to follow the pattern "Iv<xxx>reader.dll", has been changed and now uses the pattern "fei.inventor.plugin.io.<name>.dll", where name represents the plug-in name (dxf, stl, flt etc.). Open Inventor 9.5 beta provides the following reader plugins:

  • fei.inventor.plugin.io.dxf.dll
  • fei.inventor.plugin.io.stl.dll
  • fei.inventor.plugin.io.flt.dll

Note that despite this renaming, previous plugins, with the old name, can still be loaded in Open Inventor 9.5.

New anti-aliasing and new transparency

As described in release notes, Open Inventor 9.5 beta1 introduces new algorithms for anti-aliasing and transparency. Both can introduce changes in the default behavior and may lead to minor rendering differences compared to previous version. If needed, previous behaviors can be restored by using the following environment variables with associated values: 

  • OIV_OIT_DEFAULT_MODE  ABUFFER: set the default mode for transparency to use A-buffer based algorithms (Open Inventor 9.4 behavior). 
  • OIV_ANTIALIASING_DEFAULT_MODE FXAA: set the detault mode for anti-aliasing to FXAA (Open Inventor 9.4 behavior)

RemoteViz

API evolution since the last version

  • The method RenderArea::dispose() has been renamed RenderArea::closeConnectionsAndDispose().
  • A RenderArea and a Connection pointer have been added in each mouse/keyboard/touch event callback of the RenderAreaListener class. These pointers allow you to get the source of the received events.
  • The methods RenderAreaSettings::setMaxSendingFPS and RenderAreaSettings::getMaxSendingFPS have been moved into the class ConnectionSettings. The received maximum number of frames per second can now be different for each client.
  • RemoteViz uses a different notification mode than the Open Inventor default setting (notification occurs whenever there is a change to the Open Inventor scene graph) to avoid unnecessary notifications and continuous sending of images from server to clients. If you do not want to use the notification mode of RemoteViz or need to enable multi-notification, set the environnement variable OIV_ENABLE_SAMEVALUE_NOTIFICATION to 1.

ImageViz

Some classes of the Images node have been modified to make the API more consistent.

SbImageDataValue

  • The SbImageDataValue class has been renamed SbImageDataVoxel.
  • The SbImageDataValue::getChannelType() method has been renamed SbImageDataVoxel::getImageDataType().
  • The SbImageDataValue::cast() method has been renamed SbImageDataVoxel::castValue().
  • The SbImageDataValue::get() method has been renamed SbImageDataVoxel::getValue().
  • The i parameter has been renamed channelIndex in SbImageDataVoxel::castValue() and SbImageDataVoxel::getValue() methods.

SbImageDataAccessor

  • The default constructor is now protected. An SbImageDataAccessor is created thanks to the SoImageDataAdapter::getDataAccessor() method. An SbImageDataAccessor class is only reachable from an SoImageDataAdapter class.
  • A new method SbImageDataAccessor::createSliceRegion() has been added.
  • A new method SbImageDataAccessor::createFullRegion() has been added.
  • The SbImageDataAccessor::SliceRegion class has been removed.
  • The SbImageDataAccessor::FullRegion class has been removed.
  • The SbImageDataAccessor::getVoxel() method returns now an SbImageDataVoxel class.
  • The ImageData parameter has been removed from SbImageDataAccessor::copyRegion() and SbImageDataAccessor::getVoxel() methods prototype since the accessor is now only reachable from an SoImageDataAdapter class.
  • The channel and outputValue parameters have been removed from the SbImageDataAccessor::getVoxel() method prototype.
  • A new method SbImageDataAccessor::copyRegion(), without the channels parameter, has been added. It takes all channels by default.
  • The SbImageDataAccessor::copyRegion() method returns now an SoMemoryAdapter class instead of an SoImageBuffer.

SbChannelList

  • A new constructor with only a nbChannel parameter has been added.
  • The static constants RED, GREEN, BLUE, ALPHA, RGB, RGBA have been removed.

SoImageDataAdapter

  • A new method SoImageDataAdapter::getDataAccessor(), returning an SbImageDataAccessor class, has been added.
  • The SoImageDataAdapter::getVoxel() method has been has been removed. SoImageDataAdapter::getDataAccessor().getVoxel() has to be used instead.
  • The SoImageDataAdapter::getChannelList() method has been has been removed. The new SbChannelList constructor has to be used instead: SbChannelList( getImageDataType().getNumChannel() ).

SoImageBuffer

  • The SoImageBuffer class has been deprecated. Access to the data buffer is replaced by the SoMemoryAdapter::getBufferObject() method.

SoMemoryAdapter

  • A new method SoMemoryAdapter::getBufferObject() has been added.
  • The SoMemoryAdapter constructor using an SoImageBuffer object has been removed.

Deprecation

Please note that even though there will be no further development for deprecated elements, support is still available according to the product life cycle policy described here.

Legacy extension

With the introduction of Open Inventor 9.5 several extensions have been set to deprecated

  • DirectViz
  • SolidViz
  • TerrainViz

Viewers

IVF application classes are deprecated. The examples have been removed and the example of custom viewers can be found in section MFC examples user interface of the Reference Manual.

Nodes

All SoVRML nodes located in directory $OIVHOME/include/Inventor/VRMLnodes are now deprecated

Fields, methods and Enum 

  • field shaderType and associated enum ShaderType in classe SoUniformShaderParameter are deprecated. CG and ARB will not be supported anymore from OIV10.
  • Enum value SoSceneManager::AntialiasingMode ACCUM_BUFFERS is now deprecated and must be replaced by SUPERSAMPLING.

MeshViz XLM Demos location

The Library MeshVizImplement is now deprecated. Examples of mesh interface implementation are now provided in MeshViz XLM demos. In order to keep the reference manual as clear as possible (and avoid poluting the hierarchy of mesh interface in the Inheritance diagram section), all those class have been removed from the C++ version.