Many decades ago when I worked on a C++ team we hired very smart but not C++ guru employees. I wrote a portable graphics library so team members could write X11 apps without learning details that domain experts really didn’t need to learn. With my company’s permission, I rewrote that code on my own time and added support for Mac, and Windows. That code became the two editions of my Portable GUIs with C++ books for McGraw-Hill.
Sorry to rant so much off topic, but mostly being retired now I have been thinking of getting back into C++ (I usually use Lisp languages and Python now). I think this very cool project will be the start of a few very fun days of playing with C++ again.
BTW, all of the eBooks I have written in the last ten years can be read for free (click on book, then ‘Free to Read Online). I try to keep them updated.
[1] https://github.com/freedesktop/pixman [2] https://github.com/nakst/luigi
Also, to keep the core drawing code short so that it can be fully listed on a blog post or in a print magazine.
What I liked is is a self-sufficient set of files that compile immediately without any dependency issues (even on the Mac). There should be more work like that:
- making it even easier to use
- making it simpler and simpler
- making it faster
- making the library footprint smaller
Thanks!
Microui seems very cool as well but not in a "the comments section is very often longer than this code" sense. Still, I'll definitely be poking around with this a bit more for the novelty.
Not sure how these facilities compare to Slime + Common Lisp.
[0]: https://ccrma.stanford.edu/software/snd/snd/s7.html#repl
I might be misunderstanding your requirements; "embedded" can mean so many things these days. But what do you think of ECL (https://ecl.common-lisp.dev/main.html)?
I don't know if ECL is disciplined enough to actually constraint itself in all these ways to be a good embedded citizen.
Maybe a dumb question, but why not Dear ImGui (https://github.com/ocornut/imgui). "It's way too big and complex" is a completely reasonable answer, but I found it fantastic for debug menus, and there are a few applications that have used it as their _main_ GUI (Ship of Harkinian as an example).
(Edit for fixing the name of the project)
Any suggested reading?
#include "fenster.h"
#include "microui.h"
(see main.c and Makefile)Or, can I already?
Or is it just the header there? I see there is both a Cpp and a Go file there too, so I am a bit unsure which does what.
Independent implementation of the API would mean you could just release stuff and say "runs on anything that implements the fenster API" and then watch as a RISC OS version turns up somewhere down the track.