since everyone else is posting links to their similar libraries, i thought i'd post mine too, https://gitlab.com/kragen/bubbleos/-/tree/master/yeso it's probably a bit more efficient than fenster on x-windows because it uses shared memory, and i think the programming interface is a little nicer (see the readme above for code examples) apps i've written in yeso include an adm-3a terminal emulator, a tetris game, a ray…
I like BubbleOS. :)
Minimal Cross-Platform Graphics
61–67 of 67 posts
Re: Minimal Cross-Platform Graphics
#62This is extremely useful, and the page is beautifully written. Some people write absurd electron behemoths, and then there's this jewel of elegance. Could this be compiled as an αpε? Such a thing would make many heads explode.
I think the Xlib dependency would prevent compilation as an αpε. I put some effort into doing X11 from scratch (without Xlib or Xcb) to make this possible. Or at least, my aim was to be able to build with musl libc and generate a single executable that would run on many different Linuxes. https://github.com/abainbridge/deadfrog-lib/blob/master/src/... . It is janky though.
> It is janky though
So what? It can be improved :)
Would you like to try to make an APE out of it? It would then be not just different Linuxes, but also MacOS and Windows, a bit like https://x410.dev/ or the free software vcxserv https://sourceforge.net/projects/vcxsrv/
We have discord. You should join us!
FWIW I'm currently working on a DNS server with nice extra features like Multicast for mDNS/Bonjour: it could be used to publish the X server DISPLAY and make it accessible via service-discovery
Re: Minimal Cross-Platform Graphics
#63Earlier quoted context omitted.
I think the Xlib dependency would prevent compilation as an αpε. I put some effort into doing X11 from scratch (without Xlib or Xcb) to make this possible. Or at least, my aim was to be able to build with musl libc and generate a single executable that would run on many different Linuxes. https://github.com/abainbridge/deadfrog-lib/blob/master/src/... . It is janky though.
Super interesting! > It is janky though So what? It can be improved :) Would you like to try to make an APE out of it? It would then be not just different Linuxes, but also MacOS and Windows, a bit like https://x410.dev/ or the free software vcxserv https://sourceforge.net/projects/vcxsrv/ We have discord. You should join us! FWIW I'm currently working on a DNS server with nice extra features like Multicast for mDNS/…
Who is "you", here?
Re: Minimal Cross-Platform Graphics
#64Earlier quoted context omitted.
Super interesting! > It is janky though So what? It can be improved :) Would you like to try to make an APE out of it? It would then be not just different Linuxes, but also MacOS and Windows, a bit like https://x410.dev/ or the free software vcxserv https://sourceforge.net/projects/vcxsrv/ We have discord. You should join us! FWIW I'm currently working on a DNS server with nice extra features like Multicast for mDNS/…
> We have discord. You should join us! Who is "you", here?
Re: Minimal Cross-Platform Graphics
#65Earlier quoted context omitted.
There’s simple and there’s naive. SDL already walked this path. So did pygame. It turns out without shaders, and all their complexity, you basically can’t do anything useful at high resolutions. /shrug It’s too slow; compositing, transformations, all the things people want to do are very much harder to implement in software on top of a naive graphics stack. Simple doesn’t mean naive; you can have a simple api that is…
For any graphic intensive application it would be obviously be necessary to use a GPU. But for quick hacking / porting old demos / writing emulators and also text based UI it can be fast enough. With the added benefit of small footprint, high compatibility and fast startup time. The Lite editor https://github.com/rxi/lite is using pure software rendering (on top of SDL) in a rather naïve fashion but it still renders…
https://github.com/rxi/lite/blob/master/src/rencache.c#L4
I think you'll find that they found the naive approach was sufficiently poor, performance wise, that additional optimizations had to be applied on-top.
> But for quick hacking / porting old demos / writing emulators and also text based UI it can be fast enough.
/shrug
If you want to use it, use it. It's 'good enough'...
> if you vastly lower your expectations
Re: Minimal Cross-Platform Graphics
#66Very, very cool. Already played doom on it. Maybe I can get my nephew interested in playing with this!
Re: Minimal Cross-Platform Graphics
#67Earlier quoted context omitted.
Why not just use VSync?
How would I do that? I think there is any such function in the Win32 API.