![]() |
![]() |
![]() |
CompatibilityThis is where we discuss version and compatibility issues. Inspire, VTNT LW Each release of LightWave since the introduction of the plug-in architecture has enhanced the capabilities of the plug-in interface. Classes and globals are added and some server structures are extended. Version numbers for the server classes distinguish the different capabilities. Extended globals get new names in each release. These design components combine to produce a plug-in architecture that enables existing plug-ins to continue to function without change--indeed, without even the need to recompile --as LightWave's plug-in interface is endowed with new features. This is important; plug-in developers can take advantage of new interface capabilities at their liesure, while their plug-ins continue to function. The version number for all classes in release 4.0 was 1. In 5.0 many of the handler classes (and their associated interface classes) were bumped up to version 2. In LightWave 5.5, the version for anything new is 3. When Layout activates a handler, it first tries passing version 3. If the server only supports a version 1 or 2 interface, then its activation function should return AFUNC_BADVERSION, and Layout will try version 2 and finally version 1. |