23.8. Custom Nodes Introduction

All the standard nodes included with Open Inventor are “thread safe,” meaning that multiple threads can safely traverse the same instance of a node at the same time. However many application developers have taken advantage of Open Inventor’s extensibility to create custom nodes or node kits. There are also many applications that use the SoCallback( C++ | Java | .NET ) node to extend Open Inventor. It may be necessary to modify these nodes and callback functions to work reliably in a multithreaded environment. The following sections address this issue. It may be considered conceptually an extension of the Inventor Tool Maker book. You probably don’t need to know this information to use the Open Inventor toolkit unless you have or plan to create custom nodes.

[Important]

The following extensions shipped with Open Inventor 8.0 are context safe but not thread safe: VolumeViz. Thread safety is planned for future releases of all the extensions. Please check the Release Notes for each extension for the latest status.

All the standard nodes included with Open Inventor are also “context safe” (also called “pipe safe”) meaning that they can correctly manage OpenGL objects such as display lists and texture objects. On many systems these objects cannot be shared between graphics pipes, so the node must be prepared to create a copy of each object for each graphics pipe. Since this only applies to nodes that create display lists or texture objects, it does not usually affect custom nodes or callbacks.