Releases: Mhatxotic/Engine
Releases · Mhatxotic/Engine
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.
25.6
Highlights…
LUAAdd Util.Chop API function.DISPLAYIf the specified user window dimensions or co-ordinates can't be honoured, a workaround was put in place to try to make GLFW fix an invalid OpenGL viewport.MACA bug was resolved when force disabling HiDPI.MAC+WINCompatible with OpenAL 1.24.3.
25.9
Highlights…
GLFix potential buffer underflow and/or overflow when usingcOgl->GetIntegerArray()which also fixes incorrect VRAM amounts on Linux.RenderReduce GPU/CPU workload with suppressed drawing of whitespace glyphs.ThreadFix potential crash when async error occurs.StatAdd a few more useful stat functions and addstatscommand to see some basic information if any are created.EngineReset all unique ID counters on collectors when Lua environment resets.DisplayGreatly improve monitor change callback which will now only reload GL context when needed without destroying the window which makes it more capture friendly on MacOS. A full reset is always performed on Linux due to upstream GLFW issues unfortunately.MacAddvid_hidpito allow a setting of2which maintains the frame buffer size when going from HiDPI to non-HiDPI.CVarsDon't allow non-volatile database values if a cvar is no longer set to saveable.ConsoleAddgresetcommand to reset the OpenGL interface.ConsoleCompletely rewrite the autocomplete to autocomplete commands and cvars and allow repeated TAB character presses to cycle between all possible matches.ConsoleFixassetconsole command output preview.LibraryCompatible with OpenSSL 3.5.2.LuaPublish internal engine cvars to Lua properly. Instead of publishing just the id numbers for each internal engine cvar inVariable.Internal. Publish them as actual Lua variable classes instead which means theVariable.SetInt(),Variable.ResetInt()andVariable.GetInt()functions have been removed.
25.8
Highlights…
CVarsImprove cvar permissions system and overriding.InputAdd ability to modify lock key mods input status (GLFW_LOCK_KEY_MODS) with theinp_lockkeymodscvar (default enabled).X11Fix graphical corruption in Windowed mode.X11Signal compatibility with Linux Mint 22.1.