v0.4.0
Pre-releaseIt's time for a new alpha release of globox! I am currently re-writing it from the ground-up along with its companion libraries. Since cursoryx, dpishit and willis each have an alpha release for their brand-new x11 backend already, I decided to do the same for globox. Now unlike the former three globox does not need this to be tested properly since its example is included in its own repo, but I wanted to celebrate the completion of the x11 software backend in some way.
This was an exhausting but interesting five months of programming. I set the bar a lot higher than with previous iterations for this backend and getting it done in such a short time period wouldn't have been possible without all the research that was done for the prior versions - all this was not entirely in vain in the end!
In addition to these five months of writing code and fixing bugs, designing the new architecture took almost an entire month of thinking, as I had to dive back into other backends to try to find the best compromise to support all platforms properly with as few hacks as possible. So far I'm quite happy with this design, it didn't change too much during the implementation and makes everything a lot more flexible and extensible should one need to implement some platform-specific functionalities.
I strategically started with X11 because it's probably the worst display system out there, but this does not mean I don't take it seriously. This backend was tested extensively under a lot of different desktop environments. All XCB errors should be handled properly. The code was analyzed with several advanced tools. There are still a few things I might implement later, like faked VSync and aggressive buffer allocation optimizations, but it should already be pretty solid.
With this behind us, development should be less energy-intensive now, since the common parts of the library are already implemented and the API design seems to be working as intended. I will now move on to writing the GLX, EGL and Vulkan backends. Thank you for caring about this :)