May 2008

New features:

30.5.2008 window (v0.98)
You can get the current desktop size (physical in millimeters and resoluation). A new resizemode was added that can change refsize according to previous defined pixels per mm ratio. That way GUI can look better on monitors with very small pixel sizes (laptops). Furthermore functions to convert coordinates from screen to client and back were added.
23.5.2008 MSVC 2005 (v0.98)
From now on Windows version is built with MSVC 2005, we also use latest LuaJit? and ODE 0.9 now. Another change is that SSE support is mandatory from now on.
21.5.2008 double click (v0.98)
The gui module now supports doubleclick events and Button:onClicked(pushtate,wasmouse,wasdouble) allows to react on different events.
18.5.2008 annotations for PRT/MTL/SHD (v0.98)
You can added annotation strings to the resource scripts and query them later from the engine. Anything between special markers will be stored into a named string. For example: <<_ "name"; my annotation _>> . Allows adding meta infromation to shaders and alike more easily. It is meant as a preprocessing step for the all-new resource editor, so that it can link shader parameters to widgets like "colors" and so on automatically.
15.5.2008 model & animation loaderprescale (v0.98)
With this function you can pass x,y,z scalefactors for model resizing on load. Runtime scaling with "l3dnode:renderscale" as certain drawbacks, and scaling on load is more efficient for rendering. All vertices and bone's positions are changed when a model is loaded. Useful for mixing models with animation from different projects that had different scalings.
11.5.2008 text tabwidth (v0.98)
l2dtext or Label can have a custom tab-width.
10.5.2008 text printing speedup (v0.98)
Printing l2dtext or Label text was sped-up greatly as non-visible lines are skipped.
9.5.2008 l3dview rcmdadd as first (v0.98)
rcmds can be added "as first" to the l3dview's rcmd queue.
8.5.2008 Gui Helpers layout (v0.98)
The GuiHelpers? class was added with 0.98 and now got support for a few rudimentary layout managers. That way you can keep frames at certain position when window resizes, or scale them accordingly. Minimizing and maximizing is supported, too.
6.5.2008 low-level mesh access (v0.98)
Pointers to a mesh's vertex and index array can be retrieved. A C-header file for the vertex structure will be bundled as well, so that lua-dlls can do costly vertex operations efficiently.
4.5.2008 texture anisotropic level (v0.98)
The anisotropic level used in anisotropic filtering can now be manually set for more quality/performance control.
3.5.2008 texture binary string (v0.98)
You can retrieve texture RGB/RGBA/ALPHA data as binary string. Especially meant to exchange data between custom window managers.
2.5.2008 luxinia_cw.exe (v0.98)
Luxinia now supports a lua-based custom window manager. When started from a special exe luxinia assumes that lua initialization takes care of window creation. We will provide a reference solution for wxLua using wxWidgets. wxLua and luxinia will run in the same thread, therefore communication between them is easily doable. (before it was required to use wx in its own thread). The wx version will not support everything regular luxinia does (no multisampling, nor fullscreen), but for application and tool creation it will be sufficient.
1.5.2008 rendersystem.push/popGL (v0.98)
The OpenGL? based resources can be popped from driver and pushed back, this is needed when the GLContext? is changed. The functions should only be needed when using the custom window manager version.


  • wrong ODE class hierarchy in the documentation&engine, this could result into crashes when applying functions that were actually not inherited.
  • input class now uses all lower-case commands consistent wit all other coreapi function names.
  • input.popKey/Mouse, a major bug (can cause luxinia to freeze) was fixed. Thanks to Arno for reporting (e.g windowskey+e can cause freeze).
  • UtilFunctions?.color4byte didnt exist (only in documentation)
  • texture default creation for missing textures was wrong and created a new default for every miss, instead of reusing.
  • scenenode.worldmatrix, reported error when shouldn't