9.2 Changes
March 21st, 2007
This is a list of the changes in the LightWave® 9.2 release that affect the
SDK.
lwsc4.html
-
Changes have been made to the scene file format to add baked object
identifiers.
panel.html
-
CHANNEL_CTL, *ITEM_CTL, and TREE_CTL use pointer values,
not integer values as was previously incorrectly documented.
xpanel.html
-
Added text transformation callback, to allow value display to be customized.
lwserver.h
-
Added the Server Info global to allow plug-ins to query information about
server modules defined in the system.
lwmaster.h
- Added notification of changes in plugin state.
- Added the LWEVNT_NOTIFY_RENDER_ABORTED event notification.
lwfilter.h
-
Added rayTraceMode and illuminateSample raytrace functions to
LWPixelAccess.
-
Added the LWPFF_MULTITHREADED flag.
-
Incremented the pixel filter handler version to 6.
lwvolume.h
-
Added illuminateSample to volumentric access structure.
-
Incremented volumetric handler to version 6.
-
-
Added illuminateSample to LWVRayFuncs->SetRenderFuncs().
-
Incremented VRayFuncs global to version 3.
lwrender.h
-
Added functions to LWCameraInfo:
- motionBlurPasses
- shutterEfficiency
- noiseSampler
- filmSize
- frameTiming
- antiAliasing
- overSampling
- diaphragm
-
Incremented LWCameraInfo global to version 5.
-
The retrieval of global camera controlled values through the
camera info global has changed. The requirement that the camera
be the current render camera for the global values to be returned
has been removed.
-
The camera evaluation functions global has been incremented to version 2
to incorporate the changes made to the camera handler API (see below).
Due to the extent of the changes, version 1 of this global is no longer
supported.
-
Changed the name of the LWOBJF_NODESENABLE flag to the more
accurate and descriptive LWOBJF_NODEDISPENABLED. The flag is
now also documented.
-
The LWOBJF_NODEFORMERSAPPLIED object flag now takes into account
all types of deformations.
lwcamera.h
- The camera handler API has undergone a significant make-over to support the
improved motion blur and depth of field rendering. Camera evaluation is now
also given a lens position and a time fraction. A newFrame() function
has been added that is called at the start of a frame evaluation. The newPass()
function has been removed. As a result, version 1 camera handler plugins are
no longer supported and will not load.
lwimage.h
- Incremented LWImageList global to version 5:
- Added a create function to create new images in memory
Commands: Layout
-
Several new related commands have been added to allow management of Master
class plugins.
-
ActivateMaster
-
ActivateMasterUnique
-
RemoveMaster
-
Added commands to set the number of motion blur samples for the camera.
-
MotionBlurPasses
-
GlobalMotionBlurPasses
-
Added NoiseSampler command to set the noise sampler for the camera.
API
-
Support has been added for Mac OS X universal binary
plugins using the CFBundle method.
LScript v2.9
Support for LP64 programming model
-
The use of 'long' has been removed in favor of 'int'. The purpose
of this change is to support LP64 programming models (where 'long' is 8 bytes, pointers are
8 bytes). In the previous LWSDK version, all currently supported platforms of LightWave treated 'long' as 4 bytes.
The Macintosh architectures ppc64 and x86_64 use the LP64 programming model, whereas the i386 and ppc architectures use the ILP32
programming model. Windows x64 uses the LLP64
programming model (where 'int' is 4 bytes, 'long' is 4 bytes, 'long long' is 8 bytes, pointers are 8 bytes).
Windows (32bit as in Win2k and WinXP) uses the ILP32 programming model (where 'int' is 4 bytes, 'long' is 4 bytes, pointers are 4 bytes).
This version of LWSDK is not compatible with any LP32 programming model versions of LightWave (e.g. pre-Windows 2000 or pre-Mac OS X).
This will cause some (if only a minor) inconvenience for those needing to update existing plugin code.
Starting with this LWSDK version, you can begin to develop Macintosh universal binaries with both 32bit and 64bit versions.
-
Keep the size of pointers in mind when using the LWItemID data type, which is a pointer type (of which
only the lower 32bits are used). Macros to help typecast pointers to 32 bit values are provided in lwtypes.h
(PTR2UINT and PTR2INT). These are helpful in I/O operations on LWItemID data. There are currently no
8 byte read or write features in the LWSDK.
|