This release is for "Windows" only. Sorry guys :( I will post Linux binary ASAP.
List of changes in this release:
- Microsoft Windows XP missing function in 'Kernel32.dll' crash bug fixed.
- Each mutex now has internal lock counter to prevent from unlocking mutex to soon on the same thread (read more about 'Recursive Mutexes').
- OpenAL sound distance model fixed. 'snd_SetMaxDistance' now matches pixels. So 'snd_SetMaxDistance( 1000 )' will result in 1000 diameter pixels circle.
- AnyVar class extended and bugfixed.
- Static FileWatcher class added to C++ SDK. This class provide automatic way for checking if files have changed. It also prevent from checking to many files each second.
- Profiler grouping added. Now profiler info should be more easier to read.
- All Lua key codes and key binds are now stored in array called 'KeyCode' and 'KeyBind'. Simply use 'KeyCodes.XXX' and 'KeyBind.XXX'.
- 'Tween' namespace with many tweening functions and structs added to C++ SDK.
- Globals just like functions are now exported to 'Cmds.html' documentation file.
- 'Version' struct added to C++ SDK. Simple struct that helps to manage versioning.
- Lua Lavgine API redesigned. Now there is over 200+ exported functions and 150+ globals for you to use.
- Clock functions added to Lua API.
- Some functions will now replace missing/invalid arugments with default values.
- Due to many internal changes and improvments loading data on seperate threads is disabled. It will be re-enabled in future.
- Profile feature removed. I don't feel that is needed anymore. Send me a msg if you're using it.
- Unused 'Effect' compiling replacment pipeline removed.
- I hate GLSL shaders due to many weird problems so I've removed it from main pipeline (For now at least).
- Font 'Kernings' is disabled (It works perfecly fine but without it font renderer is faster).
- Added some delay to fullscreen mode in order to wait for resolution to change before showing anything.
- StrToInt and StrToFloat/Double functions are now much more faster.
- New virtual class 'Stream' and child classes 'FileStream', 'MemoryStream' and 'AutoStream'. Classes should now work with all 'EndOfLine' characters on all platforms.
- Lavgine 'Common' and 'Core' modules don't use STL at all. Thanks to that Lavgine is even more portable (I hope).
- Refactoring and cleaning all Lavgine code base. Still preparing to release C++ SDK.
- Internal Lavgine scripting is now more generic. It can use any external scripting language.
- Whole Lua Lavgine syntax changed to mimic OOP API(e.g 'Math.Const.Log2e', 'System.Restart', etc.)
- Standard 'math.h' library replaced with static built-in code you can compile anywhere.
- Testing smaller Vorbis library. If something goes wrong just let me know :)
- Ogg files can now be put into Zip file but they can't be streamed anymore. So it's better to preload all sound files at start.
- Now engine try's to create highest version of OpenGL in 'Compatibility Profile' so it can be possible to use new GL in C++ SDK. But minimal OpenGL version that Lavgine needs is 1.3.
- Render2D functions redesigned and split into 'Texture', 'SpriteBatch' and 'SpriteFont' virtual namespaces. SpriteBatch class is similar to XNA SpriteBatch.
- String class and UTF converter improved a bit. No extra copying needed.
- String class is now aligned to fixed size. This behaviour allocates new memory fewer times.
- Mod config cleand up.
- Whole Lavgine 'Common' and 'Core' code is cleaned up.
- As always code clean up. Simple is good :)
It's been a little while since last update. But new Lavgine with new API and new solid 'Core' is here. I had to strip it apart from many diffrent things. Among them was GUI and Networking. I had to even make Lavgine single-threaded again :( I've just wanted to start fresh. Don't be sad, because multi-threaded part is important to me so it will be back again but propably some time later. First I have to finish new VGUI and bind rest of the stuff from Lavgine Common and Core modules. There a lot of it. Most of them is not that easy to bind, so it will take a while to do it. I need to just think of something simple yet clever.
As alwyas I hope you like it. Share a comment, watch, play around :)