1dynload_overview(3) Coin dynload_overview(3)
2
3
4
6 dynload_overview - Dynamic Loading of Extension Nodes When Coin tries
7 to get hold of a node type object (SoType) for a class based on the
8 name string of the node type, it will - if no such node type has been
9 initialized yet - scan the file system for a dynamically loadable
10 extension node with that given name. This can be completely disabled by
11 setting the environment variable COIN_NO_SOTYPE_DYNLOAD to a positive
12 integer value, new from Coin v2.5.0.
13
14 On UNIX, extensions nodes are regular .so files. On Win32, extension
15 nodes are built as DLLs. On Mac OS X systems, extension nodes are built
16 as .dylib files. (Note: The extension nodes have to be built using the
17 flag '-dynamiclib', not '-bundle'.)
18
19 Whether the dynamically loadable objects should be named with or
20 without the 'lib' prefix is optional. Both schemes will work.
21
22 People don't usually program in a way so that they instantiate new
23 nodes through the node class' SoType object, but that is the way nodes
24 are created when model files are loaded. This means that for all Coin
25 applications that load model files, the custom extension nodes will
26 automatically be supported for the model files without you having to
27 modify their source code and rebuild the applications.
28
29 See ftp://ftp.coin3d.org/pub/coin/src/dynloadsample.tar.gz for an
30 example using two dynamically loadable extension nodes. You only use an
31 examiner viewer to view the two extension nodes in action.
32
33 Only a limited set of C++ compilers are supported as of yet. This is
34 because, to initialize the extension node, it is necessary to know
35 something about how the C++ compiler mangles the initClass symbol. If
36 we don't know that, there is no way to locate the initClass method in
37 the library, which means the extension node can not make itself known
38 to the type system.
39
40 If your C++ compiler is not supported, the source file to add support
41 for a new compiler in is src/misc/cppmangle.icc. It is fairly trivial
42 to add support for new compilers, but if you don't understand how, just
43 ask us about it. Patches with support for new compilers are of course
44 very welcome.
45
46 See also
47 SoType
48
49 Since
50 Coin 2.0
51
52Version 2.5.0 Wed Jul 20 2022 dynload_overview(3)