Posted December 23, 2025 by Dave Green
#news
The upcoming 5.0 release is nearly complete, but it’s not finished yet. As usual, a small improvement snowballed into a major release and is taking far longer than I anticipated. Most of the important, large tasks are already done — except one.
I am currently overhauling all outline-drawing functions to use custom algorithms that draw outlines as triangles instead of full segments. This change makes it possible to use transparent colors for outlines without producing overlapping artifacts.
It started when I fixed CircleSector drawing and realized my temporary outline system couldn’t handle transparent outlines cleanly. That left a choice: leave the temporary implementation as-is or redo all outline functions for every closed shape. I chose the latter, which means updating Circle, Ring, Triangle, Rect, Quad, and Polygon outlines — including variations such as DrawLines, DrawPercentageLines, DrawCornered, and more. Unfortunately, rendering Triangle and Polygon outlines both cleanly and performantly is not simple.
Once the OutlineDrawing is finished, I will release 5.0 (hopefully).
900+ commits went into this release already, and here are the current Release Notes of what I have done so far:
InputGesture system added (LongPress, DoubleTap, etc.).
InputDeviceSettings struct added for easier setup of the input system.
InputActionSettings struct added for easier setup of input actions.
MotionType and BroadphaseType enums added to the collision system.
PathRequest handling added.
ApplicationName and SaveDirectory.
MaskedDrawing* functions added (Allows only drawing a shape or shape outline within a certain area or outside of a certain area).
StripedDrawing* overloads added.
ApplicationName property added (used for setting up the savegame folder).
FrameRate to the set FrameRateLimit.
VSync now works better and no longer disrupts fullscreen (If VSync is enabled, the FrameRateLimit is automatically set to the refresh rate of the current monitor).
PerlinNoise class added (thanks to Fixin).
ResourcePacker project added - Allows packing/ unpacking of resources to text or binary files.
DebugLogger class added (allows printing information to the console and/or to a log file).