MiniFB: Small cross platform library to create framebuffer to draw pixels in
github.com
github.com
It's built over wgpu-rs, so it runs on Vulkan/Metal/DirectX12/WEBGPU. You can compile to wasm, and then run your game in the browser, which is neat. And you can add custom shaders on top.
I used it for my game, and was very happy with it https://github.com/JMS55/sandbox
Disclaimer: I'm a contributor.
It's more of a generic application framework which works well for games, whereas this seems to be more of put a window on a screen, fill pixels, and get mouse/KB/resize events.
http://wiki.libsdl.org/Introduction
SDL also has stuff that lets it work nicely with HiDPI screens.
Then over time, more and more people used it, and had special request. E.g. to be able to setup an OpenGL context. Use gamepad input (as this was used mostly for games). Multiple windows. Etc.
Yes there was! I built something for the JVM, way back in the days as I wanted exactly this for my Zaurus (X11 'wasted' 800kb!)
My first pass was pure-Java as that was a thing back then, that and at 320x240 it was plenty fast enough; accessing the framebuffer as a random-access file and streaming from the input devices worked well enough. This also made it easy to support VNC. The BDF font renderer was fun to write and eventually got re-used in JNode and I think there was query about Maemo too.
The project went through a few name changes (fbAWT, Odonata, FBToolkit)[0] and later also formed part of a collaboration with Guillaume Legris refactoring the rendering plugins and adding microbackend support.
Guillaume added native libraries to speed things up for larger screens and generally took over maintenance; my life had got a bit busy.
FBToolkit was also accepted as one of the projects used to try out the emerging OpenJDK open collaboration process [1].
Happy to answer questions if I remember that far back :-)
[0] fbAWT, Odonata, FBToolkit (zips actually work?!): http://web.archive.org/web/20060821072155/http://odonata.tan...
[1] Framebuffer Toolkit: http://openjdk.java.net/projects/fbtoolkit/