Skip to content

Releases: Mhatxotic/Engine

26.1.25

25 Jan 16:40
26.1.25
385d6c6

Choose a tag to compare

Highlights…

  • LUA Add Variable.NotEmpty(), Fbo.Flush() and remove Core.SetInterval().
  • Upstream Compatible 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).
  • Timer Optimisations, improve timing when using suspend.
  • FBO Optimisations, remove pointless rendering queue, use a VBO for drawing to back buffer.
  • Code Lots of changes to improve readability.
  • Console Command log shows file information if log_file is set.
  • Crypt Fix HTML entities database.
  • Audio Read OpenAL context errors as we did not before and optimise initialisation.
  • System Use wcout/wcerr instead of fwprintf().
  • Console Parse control characters on app_guimode 0 outputting to terminal.
  • LuaCode Fix initialising a non-existent LUA code cache table in SQL database.
  • FboCore Force glFinish() at the end of each frame to protect from data races.
  • CVar Remove obsolete vid_auxbuffers which didn't actually enable triple buffering and is do to with legacy GL.
  • CmdLine Don't unload environment variables at all except in debug version to not block IDE debugging features.
  • Video Fix a data race during destruction.
  • Stream Fix a data race during destruction and accessing OpenAL capabilities.
  • Linux Redirecting stderr to log now works.
  • Linux Unset LD_PRELOAD at startup.
  • Linux Use a slightly modified MacOS code for detecting multiple instances in Linux.
  • Linux Fix quotation break-out when showing dialogue boxes in Linux.

26.1.6

06 Jan 13:56
4db1bfc

Choose a tag to compare

Highlights…

  • LUA Really fix binary code flush when on new version detected.
  • LUA Update with safer try/except on C function call backs.
  • LUA Don't copy permanent strings and make uses of lua_pushexternalstring().
  • Common Convert some common strings to string_views and add a string_view for frame time out message.
  • Display Make use of GLFW_POSITION_X/Y,
    GLFW_MOUSE_PASSTHROUGH, GLFW_SCALE_FRAMEBUFFER, GLFW_SCALE_TO_MONITOR and remove COCOA_RETINA_FRAMEBUFFER.
  • LUA Remove LuaUtilPushStrView() and replace with a template version of LuaUtilPushStr() instead that supports any std string class.
  • LUA Update class/name space log messages.
  • Thread Update thread status labels.

26.1

01 Jan 17:52
26.1
92c1d53

Choose a tag to compare

Highlights…

  • CVar Remove vid_lock cvar as obsolete.
  • CVar Fix potential race condition when loading CVars.
  • CVar Fix Lua code cache not resetting when the current version was not saved to the database.
  • Display Fix stage bounds miscalculations when viewport constantly being resized.
  • OpenSSL Make sure external CA stores can't be used without us knowing.
  • System Startup system log message adjustment.
  • System Rewrite stderr 'redirect to log' system which now works on Linux.
  • System Non-self-destructing locale parsing changes.
  • Lua Upgraded interpreter to version 5.5.

25.12

01 Dec 13:45
25.12
4a41855

Choose a tag to compare

Highlights…

  • CVar Commit CVars on every lreset.
  • CVar Show errors for CVar begin and end transactions when saving.
  • CVar Show log message for when no CVar commits were made.
  • ConGraph Force redraw main frame buffer when closing console.
  • Console Add command cvi to 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.
  • Console Print result for clh command.
  • Core Allow err_instance to be overridden on the command-line so additional instances can be started.
  • LUA Add API functions Variable.Valid and Command.Valid to test if variable or console command name is valid.
  • LUA Add six new table clearing helper API functions Util.FlushArray, Util.FlushObject, Util.FlushTable,
  • Render Fix GL memory leak when not drawing the frame.
  • Render Centre the main FBO when it cannot fit in the viewport to maintain 1:1 pixel ratio.
  • SysCon Fix input bar scrolling on NCurses interface.
  • Util Allow ` to be used as an argument delimiter as well as ' and ".
    Util.FlushArrays, Util.FlushObjects and Util.FlushTables.
  • Upstream Update LibPNG to 1.6.51.

25.11

01 Nov 14:10
25.11
5f3f2ef

Choose a tag to compare

Highlights…

  • Console Put identifiers in assets console command output.
  • Crypt Switch to using µsec RNG entropy in-case there are systems without fully functioning nanosecond entropy.
  • CVars Fix some missing cvars to control maximum number of classes and some of these cvars weren't sorted properly.
  • Display Default SRGB to OFF everywhere to improve compatibility with old devices (#12).
  • Linux Improvements to try to show a message box for critical errors with various dialogue box utilities.
  • Lua Add Image:Replace() function which replaces raw pixel data in a bitmap Image handle. Useful for reusing Asset, Image and Texture objects without having to make new ones.
  • Lua Add Util.Sign function.
  • Lua Asset classes created should be registered in the collector.
  • Lua Make Util.ReplaceEx replace text from indexed arrays too.
  • Lua Promote Util.ParseUrl function to an actual Url class.
  • MacOS Recalculate memory usage to mimic Windows by ignoring caches.
  • MacOS Separate each memory and cpu update operation for both system and process for better readability.
  • MacOS Try to activate the app when another process running.
  • MacOS Update M5 speed.
  • MacOS Use more accurate process CPU usage detection.
  • System Remove dumb memory speed test and keep it to just a minimum RAM test.
  • Timer Restore ability to disable engine frame limiter via app_cflags.
  • Timer Re-factor CPU/GPU FPS calculation.
  • Win32 Recognise use of clang-cl in 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

01 Oct 12:39
25.10
7e45929

Choose a tag to compare

Highlights…

  • CVar Allow app_cflags=0 to just output to terminal as fast as possible.
  • CVar Allow lua_script to be changed by command-line.
  • LuaLib Rename RandUUID, DecodeUUID and EncodeUUID to UUIDRandom, UUIDDecode and UUIDEncode.
  • LuaLib Add Destroyed() method to all classes so classes can be tested if the 'Destroy()' function has been used to free the engine class.
  • LuaLib Add missing Destroy() to Stream class.
  • Socket Support basic web socket protocol.
  • Json Add Json.Asset and Json.AssetAsync which allows loading json from asset blocks.
  • Json Improve JSon and Socket class creation by moving LuaLib related code from main class back to LuaLib.
  • LuaLib Add Font:GetFlags(), Texture:GetFlags() and Image:GetFlags() to read the current image flags. Rename Image.Flags table to Image.FlagsPre. Add both Image.FlagsPost and Image.Flags tables. All these tables contain all the flags ImageFlags from imagedef.hpp.
  • System Compatible with MacOS 26.
  • System Recognise Windows 11 25H2.

25.7

01 Jul 19:57
25.7
7f60f36

Choose a tag to compare

Highlights…

  • Assets Rework path validation.
  • Core Reinstate com_flags console variable to disable workarounds.
  • Display Fix some cursor issues.
  • LUA Updated to 5.4.8.
  • MacOS Recognise MacOS 26 Tahoe.
  • MacOS Read total RAM properly.
  • MacOS Fixed restart problem on unexpected terminations.
  • SQLite Updated to 3.50.2.
  • Wayland Fix ALT+ENTER not working.
  • Wayland Fix graphical corruption at start-up.
  • Win32 Fix reading resource table.
  • Win32 Set UTF-8 output code page at start-up.
  • X11 Exclude Wayland limitations.

25.6

01 Jun 14:22
25.6
eef08dd

Choose a tag to compare

Highlights…

  • LUA Add Util.Chop API function.
  • DISPLAY If 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.
  • MAC A bug was resolved when force disabling HiDPI.
  • MAC+WIN Compatible with OpenAL 1.24.3.

25.9

01 Sep 11:58
4097f2b

Choose a tag to compare

Highlights…

  • GL Fix potential buffer underflow and/or overflow when using cOgl->GetIntegerArray() which also fixes incorrect VRAM amounts on Linux.
  • Render Reduce GPU/CPU workload with suppressed drawing of whitespace glyphs.
  • Thread Fix potential crash when async error occurs.
  • Stat Add a few more useful stat functions and add stats command to see some basic information if any are created.
  • Engine Reset all unique ID counters on collectors when Lua environment resets.
  • Display Greatly 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.
  • Mac Add vid_hidpi to allow a setting of 2 which maintains the frame buffer size when going from HiDPI to non-HiDPI.
  • CVars Don't allow non-volatile database values if a cvar is no longer set to saveable.
  • Console Add greset command to reset the OpenGL interface.
  • Console Completely rewrite the autocomplete to autocomplete commands and cvars and allow repeated TAB character presses to cycle between all possible matches.
  • Console Fix asset console command output preview.
  • Library Compatible with OpenSSL 3.5.2.
  • Lua Publish internal engine cvars to Lua properly. Instead of publishing just the id numbers for each internal engine cvar in Variable.Internal. Publish them as actual Lua variable classes instead which means the Variable.SetInt(), Variable.ResetInt() and Variable.GetInt() functions have been removed.

25.8

01 Aug 13:11
7b11276

Choose a tag to compare

Highlights…

  • CVars Improve cvar permissions system and overriding.
  • Input Add ability to modify lock key mods input status (GLFW_LOCK_KEY_MODS) with the inp_lockkeymods cvar (default enabled).
  • X11 Fix graphical corruption in Windowed mode.
  • X11 Signal compatibility with Linux Mint 22.1.