====== L3DT release v2.9 ====== Released on the 17th of August, 2010 ([[bundynews>l3dt:ann:v2.9|see announcement]]) ===== Major features ===== ==== Compatibility fixes ==== * Fixed Windows 7 compatibility (WDDM 1.1 driver resets). * Fixed ZeoPerfMon_NT plugin for RAM/CPU monitor (was broken in Win 7 x64). ==== Torque plugin ==== * Fixed path of 'materials.cs' in T3D TER import. * Added 'reset' button to T3D Material Manager, to regenerate T3D material list from L3DT alpha map list. * Added 'Normal map' to T3D Material Manager. * Fixed T3D material importer to correctly set L3DT alpha map layer MtlName / TexFile / NormFile settings. * Added check to material mask->alpha map converter to warn of invalid values ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=6803#6803|see post]]). * Add a tiled T3D exporter (BETA). * Updated T3D material code to match changes in alpha map names in L3DT v2.9 (i.e. now using mtl name for layer name, rather than tex image name). * Fixed water block export for T3D ([[http://www.torquepowered.com/community/forums/viewthread/113811/1#comment-744373|see post]]). ==== ZeoGraph ==== * Add ability to define filters from script files, with example zfilter files included with installer. * Added 'ZeoScript' filter (via ZG_script plugin), which takes an arbitrary number of input pins and renders and arbitrary number of outputs. Uses new 'ExternVars' option of ZeoScript plugin. * Provided example graph (Sine generator.zgraph). * Created 'ZeoGraph' wrapper classes for use with plugin API --- //available on request//. * Data type casting: * Added limited automatic casting of types via 'CastType' filter. * Added 'CastFrom2' filter, to allow 'ZeoScript' filter to render to explicit pin types. * ZeoGraph user interface changes: * Mapped 'del' key to filter remove handler. * Added 'copy' and 'paste' menu options. * Double-click on background opens 'add filter' window. * Alpha sorting of filters in 'add filter' window. * Added 'disable filter' option in menu and toolbar (hotkey = SPACE). * Added TAB hotkey for cycling through filters. * Made ZeoGraph window remember current working directory (in session only). * Added variable creation filters (Variable.int, etc.), via ZG_var plugin. * Added map conversion filters * ByteMap.ConvertToHF, Heightfield.ConvertToRGB, Heightfield.ConvertToByte, WaterMap.ConvertToHF * Added colour map manipulation filters * ColourMap.ScalarProd3, ColourMap.SplitComponents, ColourMap.MergeComponents * Added misc. calculation filters: * DesignMap.SetLayer and DesignMap.GetLayer. * Heightfield.Invert and Heightfield.MinAndMax * Heightfield.CalcGradient, Heightfield.CalcGradientX and Heightfield.CalcGradientY * Heightfield.Inflate (using InflateMosaic) * Added flow control filters: * Select, Gate, IfElse * Added math filters: * Modulo, Power, SquareRoot, Log10, RandomFloat * Added logic filters: * Or, And, Not, Nand, Nor, Xor, IsNullHandle * Added string filters: * Concatenate, Length, Find, Replace, Compare, Left, Mid, Right, MakeUpper, MakeLower * Bug fixes * Fixed bug in 'save' that forgot to set window title and stored file name. * Fixed bug when loading filters with variable pin count/type (namely, CastType2 and ZeoScript filters). * Enabled 'ZG_tee' filter in //L3DT for Torque// (was accidentally omitted from extension index). ==== ZeoScript==== * Created ZeoScript just-in-time (JIT) compiler ([[http://www.bundysoft.com/news/doku.php?id=l3dt:2009:dec:11|see blog post]]). * Re-built script editor window in [[bundywiki>plugins:general:atScriptEditor|atScriptEditor]] plugin, with minor changes. * Modified ZeoScript to report fewer errors on bailout following compilation error. * Modified script manager to scan for scripts in the scripts directory, and changed 'remove' button to perform delete on scripts placed in the scripts directory. * Added 'RunScript2' function, which takes options list as arg. Recognised options are: * FileName [string] * WorkingDir [string] * ExternVars [varlist] * Added alpha sorting to '//Scripts->Edit script//' and '//Scripts->More scripts//' menu options. * Syntax changes: * syntax replaced by <...> * operator replaced by function * operator replaced by function * operator replaced by function (for globals) * operator replaced by function. * <&:...> operator replaced by & operator. * <*:...> operator replaced by * operator. * 'new' and 'delete' functions now behave like C equivalents, via hvar pointers, and using new heap list. * C-like variable name rules are now enforced. * removed 'goto'. * Ended automatic dereferencing of hvars to var arguments; users must now manually reference/dereference. * Added new functions: * strfind, strreplace, strupper, strlower, strleft, strright, and strsub * fgetc and fputc * list.Append (in ZeoWrap). * var.CopyValue and var.GetName (in ZeoWrap). * dirsel.InitDS and dirsel.GetDirname (in ZeoWrap). * combosel.InitCS, combosel.GetOptions and combosel.GetCurSel (in ZeoWrap). * Bug fixes: * Fixed 'stresc' function, which did not correctly close escaped strings within strings in some cases. * Fixed handling of literal characters. * Fixed casting of characters. ==== Algorithm changes ==== * Added [[l3dt:userguide:ops:masks|mask generator]] calculation. * Added tangent space normal generation ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=6643#6643|see this thread]]). * Automatically disabled shadow casting when the sun elevation angle is 90 degrees. * Modified design map generator to make flatter maps on small scale terrain ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=7123#7123|see this thread]]). ==== Alpha map changes ==== * Added anti-aliasing to alpha maps, to match TX anti-aliasing mode. * Modify alpha map algorithm to use names based on materials, rather than textures. * Alpha layers now have names like 'std_grass', rather than texture names like 'grass1'. * Fixed bug in XML exporter, where colours of layers were incorrectly set. ===== Other features ===== ==== User interface ==== * Add 'Crop' tool to map layer menu (uses selection, or if none selected, enter coordinates). --- [[http://www.bundysoft.com/phpBB2/viewtopic.php?p=6694#6694|see thread]]. * Add menu icons from toolbar bitmaps: * Main window (e.g. open, save, rotate, etc.) * Sapphire * ZeoGraph * Renamed '//Active map//' menu 'Layers', and revised contents. * Renamed '//Mouse tools//' menu 'Tools'. * Created duplicates in 'Tools' menu of HF, AM and TX 'Edit in 3D' options within 'Operations' menu. * Moved '//Utilities->New map layer//' to '//Layers->New map layer//'. * Changed menu item names to refer to //map layers//, rather than //maps//. * 'Select active map' dialog was renamed 'show map layer', to match menu item. * Trimmed toolbar (removed buttons for image drape, CPU throttle, RAM chart). * Updated 'import map layer' and 'new map layer' dialog boxes. * Added 'ZeoGraph' option to 'Operations' menu. * Added 'copy text' button to event log window. * Updated RAM chart window to include working set size, double buffering, etc. * Moved 'climates' and 'materials' menus into new top-level 'resources' menu. * Added 'New climate...' and 'New material...' menu options. * Replaced dialog in combosel to support multi-selection lists. ==== Zeolite ==== * Revised plugin API to [[zeolite:changes#v2.9|v2.9]]. * Modified 'var_EditUI' to maintain variable and parent handles of child variables. * Modified 'var_ReInit' to maintain parent handle. ==== File I/O ==== * Added new [[bundywiki>plugins:fileio:L3DTio_DDS2|L3DTio_DDS2]] plugin to support larger DDS images without DevIL memory limitations. * Modified [[bundywiki>plugins:fileio:L3DTio_TorqueTER]] to use new DDS plugin (different InvertY options). * Added import [[bundywiki>plugins:fileio:L3DTio_MOLA|MOLA plugin]] (for IMG and LBL files). * Add export WM as TIN script. * Added Unreal G16 support to [[bundywiki>plugins:fileio:L3DTio_BigBitmap|L3DTio_BigBitmap]]. * Modified HF mosaic import to read and apply MMF vert scaling for non-native formats. ==== Bug fixes ==== * Fixed bug in [[bundywiki>plugins:network:zURL|zURL]] that was causing crashing when unable to connect to server. * Fixed bug when using 'Operations->Texture map->Generate map' option to generate mosaic texture without first having saved project ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=6779#6779|see this thread]]). * Fixed thin transparent margin in 1st pane in wizard (using SWP_FRAMECHANGED flag). * Revised auto-flooding of lakes to work properly with small horizontal scales, and use improved lake search/test algorithm. * Fixed lin interp to not mangle edges on wrapping maps ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=7324#7324|see bug report]]). * Fixed bug that caused memory corruption when % symbol was present in filename. * Fixed preservation of variable parent handle when lists are edited via var_EditUI. ==== Miscellaneous ==== * Modified L3DT to store default resources in installation directory, and copy to users' profile directory when new version if first used. This allows multiple users/profiles on same machine to use L3DT ([[http://www.bundysoft.com/phpBB2/viewtopic.php?p=7313#7313|see request]]). * Created new 'SilentError' flag for plugin settings, to allow plugin loading to fail silently (used for 'ZeoPerfMon_NT', which is now enabled by default). * Added check for whether 'ZeoPerfMon_NT' plugin is enabled when opening ram chart (//a la// CPU throttle). * Modified InflateMosaic function to take file config arg as hvar (if NULL, HFZ is used), and allow null map and file names (auto-generated). * Improved startup speed by storing plugin crash flags in separate files per-DLL, rather than saving whole extensions.ini.xml file. * Modified extension manager window & command line parser to support re-loading of plugins.