6.0B Changes
May 11, 2000
This is a list of the changes in the LightWave 6.0B patch that affect the SDK. In most
cases, the changes are additions to global services that won't affect the operation of
existing code. In some cases, however, you will have to recompile, and in a few, it may be
necessary to rewrite a small amount of your code that was written prior to the release of
the patch.
lwenvel.h
lwfilter.h
- Added LWBUF_MOTION_X and LWBUF_MOTION_Y for vector blur feature. The
buffers will be filled in with the image coordinate movement at each pixel during the time
the shutter was open. For example, if part of an object has moved 11 pixels right and 6
pixels down since the previous frame, and the blur length is 50%, the motion buffers will
contain 5.5 and 3.0 in that part of the frame. Camera motion is also taken into account.
This information can be used by filters to perform a Photoshop-style vector motion blur.
lwgeneric.h
- Generic plug-ins are now first activated with a
version number of 4. If that doesn't work, the saveScene function is replaced
with one that saves old format scenes, and version numbers 3, 2, and 1 are tried.
lwhost.h
- Added new dialog types to Message Functions global,
incremented the service name. (3/23)
- The new Locale Info global has been implemented (but
the old Language ID global is still supported as well).
lwimage.h
- Added sceneLoad and sceneSave to Image
List global, now "Image List 2".
- Changed LWImageID to LWPixmapID in Image Utility
functions.
lwmaster.h
- Added LWMAST_LAYOUT type for masters that
survive scene clearing.
lwmodeler.h
- mode and vmap functions added to the state
query global, incremented the service name.
lwpanel.h
- fixed PAN_SETDATA, PAN_SETDRAW, PAN_SETKEYS; touched up PAN_SETH,
MOVE_PAN; added PAN_SETW.
lwpreview.h
- Changed close to accept void arg.
lwprtcl.h
- New API.
- Removed obsolete functions setDraw, setMesh, remParticle.
lwrender.h
- Only items matching the current edit mode are now eligible to have their LWITEMF_SELECTED
bit set by the Interface Info itemFlags
function.
- Added LWIP_PIVOT_ROT to let plug-ins get pivot rotation.
- If the Item Info param function is called
while the user is dragging items in a viewport and the time argument matches the current
time, the function can now return temporary, non-keyframed data. One benefit of this
change is that expressions can react to interactively moved items even if Auto Key is
turned off.
- changed flag name to LWOBJF_UNSEEN_BY_CAMERA.
- A server function has been added to the Item
Info global. It takes an item ID, a class name, and an index (which starts with one,
as in the tag functions). The return value is the name of whatever server is applied in
the specified "slot" (or NULL if there isn't one). Naturally the ID is ignored
for classes like volumetrics, filters, etc.
- Added flags and fog to Object Info.
- Corrected "LW Comp Info" to "LW Compositing Info".
- Added renderCamera to LWSceneInfo
structure.
- Added type, color, and squeeze to LWBackdropInfo structure.
- A function to get the ID of the camera used for rendering has been added to the Scene Info global. It accepts a time argument in order to
be ready for automated camera switching in the future.
- Added serverFlags and controller to Item
Info.
- The first frame, last frame, and step size used by the frame slider and by Layout
previews can now be obtained through the Interface Info
global.
- The vectors returned by the Item Info param
function now take pivot rotation into account.
- Attempts by plug-ins to look up information about their items while in the process of
being created due to cloning should no longer fail.
lwshader.h
lwshelf.h
- New API.
- Removed closed notification function typedef.
- Removed closed notification from shelf subscription.
- Added isOpen.
lwsurf.h
- The byName function now has an additional object name argument. If the object
name is set to NULL, the function will return all the surfaces that share the same name,
behaving as before.
lwtxtr.h
- layerEnvGrp renamed layerEnvGroup.
- Input parameter type defines added.
- polygonID added to LWMicropol structure.
- setParam and getParam functions added.
- Added evaluateUV, which sets the UV values given the 3D position of the point
in world and local coordinates, plus the world and local dominant axis. This does the
coordinate transfromation and projection from 3D to 2D.
- Added new tags to set and get images and vmaps.
- Added vertsWPos to LWMicropol.
- Added setEnvGroup and envGroup functions.
- Added layerType function.
- Added tags for getting and setting opacity, reference object, repeat options, pixel
blending, AA, AA strength.
lwtxtred.h
- setParam and getParam functions removed (put into lwtxtr.h).
- Added refresh, which refreshes the editor if some parameters have been changed
without user interaction. The clientID should be NULL if trying to update surface textures
(= default client). That's what texture guide is doing.
- Added currentLayer, which gets the currently selected layer in the texture
editor. If client is NULL, uses surface's texture editor.
lwvolume.h
- Removed adaptive flag.
- The flags function of each volumetric plug-in
is now called to determine whether to include it in reflection, refraction, or shadow
computations.
- The LWVEF_RAYTRACE bit in the LWVolumeAccess structure is now set when
evaluating volumetric plug-ins for a ray.
lwxpanel.h
- Added focus event code.
- Added refresh codes.
- Added XpXREQCFG, XpBORDER, XpDLGTYPE hints.
Commands: Layout
- The usage string for the AddPlugins command now shows that it accepts a
filename argument.
- The AddToSelection and RemoveFromSelection commands have been added to
allow plug-ins and scripts to create and manage multiple selections. They accept a
hexadecimal item ID as an argument, and the usual selection rules apply (for example, if
only one item of the current type is selected, it can't be deselected).
- Other new commands include SubdivisionOrder and ResolutionMultiplier,
which work just like the identically named scene file lines.
- A RemoveServer command has been added. Like ApplyServer, it takes a
class name argument, but it differs in that it takes an index rather than a server name
(in case there are multiple instances of the same server). Consistent with the Item Info server function, these indices count
from one. Item-specific plug-ins like motion and displacement handlers are removed from the current item.
Commands: Modeler
- The SaveCommandList command in Layout has been duplicated in Modeler.
- A new batch command maketesball2 has been added which takes the new segments
parameter for tesselated spheres. The old maketesball command still works using
the old level parameter. The segments parameter directly sets the number of segments along
the the edges between the 12 polyhedral vertices. Power of two segment values are
equivalent to the old level values: 1 = level 0, 2 = level 1, 4 = level 2, 8 = level 3, 16
= level 4, 32 = level 5, etc.
- A new maketext2 batch command has been added which accepts alignment settings.
It also takes fonts as zero-based indices, fixing a long lived bug.
- Added more arguments to the bevel batch command to bring it more in line with
the options of the Bevel tool.
- There are new plug-in commands for selecting the current object and for setting the vmap
for the current morph, texture or weight map.
Commands: Surfaces
- The Surf_SetSurf command now has an additional object name argument. This
specifies in which object library the surface should be set (there can be multiple
surfaces with the same name in different objects).
- Surf_RemoveShader command now works this way: Removes all shaders that use the
specified name, and if name is NULL, removes all shaders.
Commands: Envelopes
- Added Env_ApplyServer <classname> <servername>.
- Added Env_RemoveServer <clasname> <index>.
Sample Code
- modlib: Added object name argument to mgGetSurfacesByName
in surface.c.
- rapts: Changed layerEnvGrp to layerEnvGroup.
Miscellaneous
- A new Plug-in Options panel has been added. It contains the controls for generic and master
plug-ins that used to be on the General Options panel, as well as an Add Plug-ins button
and some UI ranch space for the masters.
- There is now a dedicated options button which calls ServerInterface for the
current animation saver. This is intended to be the official way to edit compression
settings, etc. Saver plug-ins whose interfaces are in their load or open
functions should be rewritten.
- The DirectoryType config file entry for images is now used as the default location for
image loading, replacing the ImagesDirectory line. Several other old config file lines
have also been discontinued in favor of new DirectoryType entries.
- Envelopes for displacement and clip map channels are now added to the envelope groups of
the objects they belong to. This makes them appear in the right place in the Graph Editor
hierarchy.
|