Releases: Mhatxotic/Engine
Release list
26.6
Highlights…
PcmLibAllow word and byte sampled.CAFformats and harden loading.FileMapFix misaligned read inFileMapReadVarFrom().SampleReturn correct number of arguments when usingSample:Spawn().FboOptimise triangle angle transformation speed by 10%.TextureOptimise automatic texture tile generation.Win32Win32 DLL header version reader improvements.ConsoleAdd cvarcon_enablebreakto handle Ctrl+C in NCurses window.MemoryImprove byte swapping memory functions.OpenALImprove startup logging including enumerating context extensions and by logging the version via CVars since it doesn't need a context.ConsoleCommandtexturesnow accepts an argument to see the stored tiles data of any loadedFontorTextureclass.MacOSUse ASAN safe environment variable list.Win32Fix a great deal of minor Win32 compilation warnings.CertFixed ASN.1 time parsing and improvecertscommand output.SocketLogging changes.ConsoleFix some graphical console redraw issues.IFmtGifWrap libnsgif calls in error checking wrappers.LuaOverhaul the garbage collector configuration system as the original system was wrong and didn't allow to configure all the parameters.ConsoleAddcresetcommand to redraw terminal UI.FormatImprove speed of processing font glyph and ncurses strings.CVarsAllow most vars that can only be set by manifest be overridden by command-line.StreamResolve incorrect un-queue/re-queue OpenAL buffers behaviour.ConsoleImprovedircommand output.VideoFix FBO drawing lists not being cleared when rendered.LuaAdded a few new API functions.EngineAttempt to remove raw pointer usage in places.EngineMajor overhaul in use of STL string containers to try and prevent string duplication which increases general performance.EngineMove a great deal of code around in an attempt to increase readability.
26.5
Notice…
The 32-bit Windows version has been be retired as the world is now moving on, however, the associated code paths will still be maintained when needed.
Highlights…
CoreForce draw frame every second if GPU is running too slow.PcmLibRemove obsolete MP3 decoder (code and references).MiscFix missing ident strings onLuaVar/LuaCmd::Identclasses.ConLibAdd directory/file counter column for dir command.CoreRemove obsolete console redraw when the LUA sandbox ends.CoreReset finish times on built-in FBOs when resetting the sandbox to fix exception.CoreFix hiding the console when starting the sandbox while console is locked.SystemAdjust message box title text.Win32Minor optimisation to crash handler; standardise crash log filename extension.SystemShow label for blank fields in mods console command.PSplitReduce memory usage and clean up related issues.MacFix system info retrieval on macOS; add flag for differing host vs real host.CoreLog main event exit names as well as codes.SystemTidy pipe buffer size.Win32RecognizeWindows 11 26H1and check for all architectures on Windows.Win32Reduce total error blocking for questionable Windows calls.ThreadThread exit request shows if it was performed by itself or another thread.CoreHandle OS/GLFW closing the window without the engine knowing to prevent crash.EvtCoreAdd more event logging; update various comments.EngineGeneral tidying, deduplications, wrapping and consistency corrections.
26.4
Highlights…
CorePrevent potential GPU resource leak when catching up timer.PosixLinux and MacOS can now share mutex code.AudioComponent values set to 100% by default except master which stays at 75%.MacNow uses proper POSIXreaddir()function.CoreFix fatal error on script error after Main FBO was finished.AtlasFoundation implemented for LUA API.SqlExposed to LUA API so guest can create their own databases.SqlAddSql.Main()to return the engine database handle.SqlAddobj_sqlmaxcvar to control maximum databases.SqlAddsql_lockingmodeto control database use exclusivity.SqlClear in-memory results after reading or writing compiled Lua code.CoreAllowerr_*cvars that potentially block execution to be bypassed.LogHarden logging to file process.LogAddlog_appendto append to log instead of truncating.
Notice…
The 32-bit Windows version will be retired as the world is now moving on, however, the associated code paths will still be maintained when needed.
26.1.25
Highlights…
LUAAddVariable.NotEmpty(),Fbo.Flush()and removeCore.SetInterval().UpstreamCompatible with FreeType 2.14.1 (MacOS/Win32), LibPng 1.6.54 (MacOS/Win32), LZMA 25.01, NCurses 6.6 (MacOS), SqLite 3.51.2, OpenAL 1.25.1 (MacOS).TimerOptimisations, improve timing when using suspend.FBOOptimisations, remove pointless rendering queue, use a VBO for drawing to back buffer.CodeLots of changes to improve readability.ConsoleCommandlogshows file information iflog_fileis set.CryptFix HTML entities database.AudioRead OpenAL context errors as we did not before and optimise initialisation.SystemUsewcout/wcerrinstead offwprintf().ConsoleParse control characters onapp_guimode 0outputting to terminal.LuaCodeFix initialising a non-existent LUA code cache table in SQL database.FboCoreForceglFinish()at the end of each frame to protect from data races.CVarRemove obsoletevid_auxbufferswhich didn't actually enable triple buffering and is do to with legacy GL.CmdLineDon't unload environment variables at all except in debug version to not block IDE debugging features.VideoFix a data race during destruction.StreamFix a data race during destruction and accessing OpenAL capabilities.LinuxRedirectingstderrto log now works.LinuxUnsetLD_PRELOADat startup.LinuxUse a slightly modified MacOS code for detecting multiple instances in Linux.LinuxFix quotation break-out when showing dialogue boxes in Linux.
26.1.6
Highlights…
LUAReally fix binary code flush when on new version detected.LUAUpdate with safer try/except on C function call backs.LUADon't copy permanent strings and make uses oflua_pushexternalstring().CommonConvert some common strings tostring_views and add astring_viewfor frame time out message.DisplayMake use ofGLFW_POSITION_X/Y,
GLFW_MOUSE_PASSTHROUGH,GLFW_SCALE_FRAMEBUFFER,GLFW_SCALE_TO_MONITORand removeCOCOA_RETINA_FRAMEBUFFER.LUARemoveLuaUtilPushStrView()and replace with a template version ofLuaUtilPushStr()instead that supports any std string class.LUAUpdate class/name space log messages.ThreadUpdate thread status labels.
26.1
Highlights…
CVarRemovevid_lockcvar as obsolete.CVarFix potential race condition when loading CVars.CVarFix Lua code cache not resetting when the current version was not saved to the database.DisplayFix stage bounds miscalculations when viewport constantly being resized.OpenSSLMake sure external CA stores can't be used without us knowing.SystemStartup system log message adjustment.SystemRewritestderr'redirect to log' system which now works on Linux.SystemNon-self-destructing locale parsing changes.LuaUpgraded interpreter to version5.5.
25.12
Highlights…
CVarCommit CVars on everylreset.CVarShow errors for CVar begin and end transactions when saving.CVarShow log message for when no CVar commits were made.ConGraphForce redraw main frame buffer when closing console.ConsoleAdd commandcvito put the specified CVar and its value in the console input field which helps a little with complex long CVar values without having to type so much.ConsolePrint result forclhcommand.CoreAllowerr_instanceto be overridden on the command-line so additional instances can be started.LUAAdd API functionsVariable.ValidandCommand.Validto test if variable or console command name is valid.LUAAdd six new table clearing helper API functionsUtil.FlushArray,Util.FlushObject,Util.FlushTable,RenderFix GL memory leak when not drawing the frame.RenderCentre the main FBO when it cannot fit in the viewport to maintain 1:1 pixel ratio.SysConFix input bar scrolling onNCursesinterface.UtilAllow`to be used as an argument delimiter as well as'and".
Util.FlushArrays,Util.FlushObjectsandUtil.FlushTables.UpstreamUpdateLibPNGto1.6.51.
25.11
Highlights…
ConsolePut identifiers inassetsconsole command output.CryptSwitch to using µsec RNG entropy in-case there are systems without fully functioning nanosecond entropy.CVarsFix some missing cvars to control maximum number of classes and some of these cvars weren't sorted properly.DisplayDefaultSRGBtoOFFeverywhere to improve compatibility with old devices (#12).LinuxImprovements to try to show a message box for critical errors with various dialogue box utilities.LuaAddImage:Replace()function which replaces raw pixel data in a bitmap Image handle. Useful for reusingAsset,ImageandTextureobjects without having to make new ones.LuaAddUtil.Signfunction.LuaAsset classes created should be registered in the collector.LuaMakeUtil.ReplaceExreplace text from indexed arrays too.LuaPromoteUtil.ParseUrlfunction to an actualUrlclass.MacOSRecalculate memory usage to mimic Windows by ignoring caches.MacOSSeparate each memory and cpu update operation for both system and process for better readability.MacOSTry to activate the app when another process running.MacOSUpdate M5 speed.MacOSUse more accurate process CPU usage detection.SystemRemove dumb memory speed test and keep it to just a minimum RAM test.TimerRestore ability to disable engine frame limiter viaapp_cflags.TimerRe-factor CPU/GPU FPS calculation.Win32Recognise use ofclang-clin Windows executable.
Notice…
All Diggers binaries and source code were separated from the engine repository and moved to the existing Mhatxotic/Diggers repository. Releases for Diggers will be at Mhatxotic/Diggers/Releases — also, new issues and discussions sections will be at Mhatxotic/Diggers/Issues and Mhatxotic/Diggers/Discussions. Please update your bookmarks and accept our apologies for any inconvenience caused. The current issues and discussions sections will be related to the engine from here-on only.
25.10
Highlights…
CVarAllowapp_cflags=0to just output to terminal as fast as possible.CVarAllowlua_scriptto be changed by command-line.LuaLibRenameRandUUID,DecodeUUIDandEncodeUUIDtoUUIDRandom,UUIDDecodeandUUIDEncode.LuaLibAddDestroyed()method to all classes so classes can be tested if the 'Destroy()' function has been used to free the engine class.LuaLibAdd missingDestroy()to Stream class.SocketSupport basic web socket protocol.JsonAddJson.AssetandJson.AssetAsyncwhich allows loading json from asset blocks.JsonImproveJSonandSocketclass creation by movingLuaLibrelated code from main class back toLuaLib.LuaLibAddFont:GetFlags(),Texture:GetFlags()andImage:GetFlags()to read the current image flags. RenameImage.Flagstable toImage.FlagsPre. Add bothImage.FlagsPostandImage.Flagstables. All these tables contain all the flagsImageFlagsfromimagedef.hpp.SystemCompatible with MacOS 26.SystemRecognise Windows 11 25H2.
25.7
Highlights…
AssetsRework path validation.CoreReinstatecom_flagsconsole variable to disable workarounds.DisplayFix some cursor issues.LUAUpdated to 5.4.8.MacOSRecognise MacOS 26 Tahoe.MacOSRead total RAM properly.MacOSFixed restart problem on unexpected terminations.SQLiteUpdated to 3.50.2.WaylandFix ALT+ENTER not working.WaylandFix graphical corruption at start-up.Win32Fix reading resource table.Win32Set UTF-8 output code page at start-up.X11Exclude Wayland limitations.