- Hardware cursors: Added the option to use the built-in OS cursor rather than rendering the cursor by hand which is affected by lag. Dreamfall had this capability. The hardware cursor scales with the resolution, up to the maximum cursor size for the platform.
- Image alignment: Added support for arbitrary image alignments, including packed alignment. There's an Align function for switching alignments and IsAligned for comparing alignments.
- Image scaling: Added support for image scaling with box filtering for minification and magnification.
Since the project began, I've been using flat function interfaces for the high-level modules that manage things like video, audio, input, and windowing. I'm now in the process of converting them to objects. The previous design was carried over from the last manifestation of the project which was in C. This change was sparked by recent singleton threads, which gave me a better perspective on interfaces and the need to limit access. aud::Driver, env::Window, game::Game, ui::Interface, and vid::Driver are basically complete, with inp::Driver in progress and phys::Scene still waiting.
I'm hoping to move into UI development as soon as I get a few bugs worked out and the last couple objects refactored.