Released Esenthel for Windows, Mac, Linux, Android, iOS and Web:
-IMPORTANT: Updated Esenthel to Visual Studio 2015 (due to VS 2015 being incompatible with previous versions, older versions of Visual Studio are no longer supported, you need to update to VS 2015 to be able to compile your projects)
-added support for Hardware Instancing (available on DX10+)
-MSBuild is now used for compiling Visual Studio projects which results in faster compile times
-default Editor.exe is now 64-bit which provides improved performance
-on Windows there are now only 2 Editor executables provided ("Editor.exe" which is 64-bit DX10+ and "Editor 32 DX9.exe")
-Pak Creation now compresses files in multi-threaded mode, which allows for up to ~8x faster App Publishing and Exporting Esenthel Projects on modern CPU's
-added support for iOS 9
-added support for FLAC and OPUS audio codecs
-added support for programatic Opus Audio compression/decompression which allows for VoIP voice chat (recording microphone audio, compressing, sending over internet, decompressing and playback)
-added new tutorial "Sound Compression" showing how to dynamically compress/decompress audio data
-added support for 'SoundRecord' (recording microphone audio) on Mac, iOS and Android platforms
-improved performance of animating skeletons
-improved performance of building heightmaps
-improved performance of file processing (loading/saving of both binary and text files)
-improved performance of drawing text
-improved performance of sorting
-improved performance of text string operations
-improved performance of saving/loading images
-improved performance of memory encryption
-improved performance of loading Code Editor symbols
-improved performance of compiling apps for Mac (by not creating iOS icons/images when not necessary)
-improved compliance with C++11 standard ('null' is now 'nullptr' and no longer NULL/0)
-improved Editor Project searching by comparing against full path of element name (including its parents, and not just the single element name)
-improved how Encrypted Pak files are generated to work better with Steam (thanks to this improvement, submitting app updates to Steam will require smaller amounts of data needed to upload to Steam and to download by players)
-increased precision of Random number generator
-Random number generator seed is now an UID
-added new Random.l method which generates random 64-bit numbers
-added new SQL.command* methods (thanks to Houge for contributing to the source code)
-replaced libJpeg with libJpegTurbo which gives 2x faster loading and saving of JPG files
-Image.ExportJPG now has additional parameter for controlling of chroma sub-sampling
-Menu gui element can now have its unique GuiSkin set, thanks to new Menu.skin methods
-fixed Menu using correct skin in Esenthel Editor - Gui Skin Editor
-'SoundStream' class has been made public to allow for manually parsing of audio streams
-updated Sound Documentation page to include all supported codecs and list their performance and other notes
-updated PVRTC compression library to latest version
-updated Recast/Detour pathfinding library to latest version
-updated Chartboost iOS SDK to latest version
-updated AdMob iOS SDK to latest version
-updated Facebook iOS SDK to a newer version
-cleaned up third party library Windows/Apple/Android projects and recompiled them with latest compiler version and more optimal compiler settings improving performance and reducing file sizes
-added new documentation about how to speed up application compile and startup process on Windows
http://www.esenthel.com/?id=doc#Windows
-enabled some extra debug checks when running apps in debug mode, if your app performs unsafe operations it may look like it crashed, in that case please debug the app from Visual Studio
-improved Windows ICO and Mac ICNS generation
-added new 'SaveWavHeader' function allowing to save the header file for a WAV file after which you can save raw audio data
-added new function 'CompressionMemUsage' allowing to calculate memory required for compressing using a certain algorithm
-added new function 'ContainsAny' operating on 2 strings
-added AtomicGet, AtomicSet, AtomicAdd, AtomicSub, AtomicCAS atomic functions for 64-bit Long values
-MultiThreadedCall will now use less resources/memory
-restored support for Windows XP
-enabled support for IPv6 on Android
-improved support for GPU's with low amount of vertex attributes
-Log functions will now additionally display texts in Visual Studio output window and on Linux terminal output
-Heightmap.build now includes an optional parameter allowing to reduce overhead of temporary memory allocation for frequent calls to this method
-reduced memory usage for Heightmaps
-reduced memory usage for Heightmap.build
-reduced pixel gaps between different chunks of heightmap LOD's
-reworked Heightmap ambient occlusion formula
-added Sound class copy constructors
-added missing 'WindowSize' function for Windows
-improved 'WindowRect' and 'WindowSize' functions for Mac
-improved initial Window positioning based on App.x,y on Mac/Linux
-File Browser will now report if transferring files to a remote computer failed
-'ComputerID' function can now be used also in 'InitPre' before the graphics are initialized
-cleaned up the engine source code (removed unused PhysX 2 codes, replaced #pragma FIXME with "// TODO: " comments which should remove unwanted messages during engine compilation)
-muted a few compiler warnings on Apple platforms
-many other minor improvements
Bug Fixes:
-fixed an issue with 'MaterialPalette', 'HeightMap', 'Blocks' related to material cleanup which could result in messed up materials
-fixed potential memory leak in Text.create(C Text &src) if an object had "text codes" already created
-fixed an issue on Windows where sometimes app could get minimized but still considered active
-many other minor fixes
API Changes:
-replaced APP_NO_OCULUS_RIFT with APP_OCULUS_RIFT - Apps that want to use Oculus Rift, must enable this flag
-changed Heightmap get/set material methods (the parameters that they take, and added byte method variations which use less memory)
-memory container save methods now return bool (true on success and false on fail)
-saving methods of your custom classes should return bool (true on success and false on fail)
-changed the way 'SoundRecord' works, please see the tutorial for updated code
-dropped support for importing X, WRL/VRML, Ogre XML models support which reduces binary size of the engine and your apps
-removed 'MultiThreadedCallWithPerThreadData' functions, instead all thread callback functions now have "Int thread_index" parameters which can be used for per-thread data management
Name Changes:
SoundCapture -> removed, you need to use your own variable
SoundCaptureClass -> SoundRecord
Secure -> Cipher (interface), Cipher1 (implementation)
NULL -> null
Heightmap.heightI -> Heightmap.heightLinear
State.time -> Time.stateTime