Open andlabs opened 6 years ago
It seems that the only way to do modern vector graphics with any version of OS/2 — including ArcaOS — is with cairo. Is that correct?
HTML+CSS (possibly with enscriptem, or as an HTTP server, or something)
Qt apps can be compiled to emscripten, the performance ... depends on the app: http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki
Demos: http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki/Demos
Oh I forgot about AmigaOS too
I couldn't get the 4.1 ISO to boot in WinUAE with the PPC support enabled, and supported computers are stupid expensive, so...
No clue about AROS.
Also forgot about RISC OS, if I could even figure out how to write C code for it
OpenVMS? It appears I'd be stuck with Motif in that case?
QNX with Photon?
Also for the record, the reason I ask about cairo on OS/2 (and allegedly AmigaOS 4.x too? I am incredulous) is because cairo's license conflicts with libui's, so I can't bundle it except in the DLL form (which defeats the purpose of having the static library option). On Unix it's not a problem because cairo is already a dependency of GTK+, which has to be provided by the distro anyway (and if the part about AmigaOS is true then that might also be the case there), but OS/2 doesn't come with cairo (and I'm not sure about eComStation or Arca Noae).
NetSurf apparently supports all of these and Atari TOS and maybe a few others to boot; will need to check its code
PC/GEOS aka Breadbox Ensemble? I can't find any documentation so I don't know about the graphical capabilities it gained over time, but I do see the ExtUI has some stuff we can use...
Okay so it is possible to write graphical programs in C++ for Fuchsia: https://fuchsia.googlesource.com/topaz/+/refs/heads/master/examples/ui/paint/paint_view.cc (I think this specific repo is outdated though)
QNX 4.25 Photon's API doesn't seem to have alpha blending, so that's a dead end for libui's graphics requirements. Not sure about newer versions, since 4.25 is rather old. (If all else fails, QNX can just use the GTK+ version via X11 instead of Photon, assuming GTK+ has been ported to QNX.)
QNX 6.0 Photon has alpha blending; it appears this was the first version to do so, but I would need to find QNX 5.0 Photon release notes to find out. It doesn't seem to have floating-point geometry, though... unless I missed something.
Systems I need to investigate:
Madeline Autumn-Rose, [24.05.19 18:06] ITS graphics are weird and exciting
Pietro Gagliardi, [24.05.19 18:06] oh
Pietro Gagliardi, [24.05.19 18:06] I linked the wikipedia page on ITS because it had an interesting usability model
Pietro Gagliardi, [24.05.19 18:06] heh
Pietro Gagliardi, [24.05.19 18:06] but I don't see it has graphics????
Madeline Autumn-Rose, [24.05.19 18:06] it can kind of do graphics with special hardware and special terminals
I did not know that GDI+ did use floating-point coordinates after all. I'm pretty sure it supports alpha-blending too. I was avoiding it under the impression that it was entirely software with no hardware acceleration whatsoever, but... maybe Windows XP can come back??? Also, https://github.com/mity/windrawlib
Any chance of having the Qt backend done? What are the possible pain points related to it, e.g. would it be trivial or too much work?
Here is an old unfinished branch for a Qt5 backend: https://github.com/mischnic/libui/tree/qt5
help how do I TRON/ITRON/BTRON/µTRON
Chromium OS for the Chromium OS window managers? Assuming that it's the same as the Chrome OS window manager, and assuming that's not literally just a window manager. (Same with Webconverger? I thought Firefox OS was abandoned?)
NetWare 5 and 6 have GUIs?
Oberon/Bluebottle? Contiki? That new Redox operating system written in Rust (I can't figure out if they're writing a custom toolkit or just going to port an existing Unix toolkit over to their custom display server)?
EMBEDDED/NICHE-CPU RTOSES: THE PIPE DREAM DOMAIN
I can't tell if eCos has A GUI library, or if it's down to the POSIX/TRON compatibility layers. Same for RTEMS; I see various Unix libraries and FLTK available for it but IDK if that's just the POSIX compatibility layer or not, and I see the "Flickernoise" software provided by M-Labs has a GUI. Same for the Green Hills INTEGRITY and INTEGRITY-178 systems or the RTXC Quadros or TI-RTOS (aka DSP/BIOS) or Amahi or AUTOSAR.
https://en.wikipedia.org/wiki/Embedded_Wizard What does this use?
https://www.mentor.com/embedded-software/nucleus/ claims it supports Qt, but what does that run on top of? Directly to a framebuffer (no platform UI library)?
http://rtos.com/solutions/threadx/real-time-operating-system/ Also worth looking into, as well as the OSEK thingy it claims to have a compatibility layer for
https://www.micrium.com/rtos/gui/ and https://doc.micrium.com/pages/viewpage.action?pageId=10753198 are also promising???
Server error: http://www.dmoz.org/Computers/Software/Operating_Systems/Realtime/ http://mcu.emea.fujitsu.com/mcu_tool/detail/SWB_(FR)_V6.htm
https://twitter.com/pgandlabs/status/1212876809458659328
lol turns out the NetWare 6 GUI is just XFree86, IceWM, and either Java AWT or Swing (not sure which but I'm 90% sure it's not a native toolkit) with some apps from scratch
I'm guessing NetWare 5 GUI is the same but I haven't been able to run it successfully so
oh well, rip
what could possibly go wrong?
https://github.com/DC-SWAT/DreamShell
This appears to use SDL as the basis for its drawing library, and provides GUI facilities through something it calls "SDL_gui", but I can't figure out if it's any existing sdl-gui or a custom thing (or where the SDL_gui source code even is in this repo). It might actually be feature complete enough for a libui port, though
It prefers applications defined using an XML specification to define the actual program itself, with loadable modules for the actual implementation, but everything does have a programmatic access point so ?????
I should probably make this a dynamic single-post table instead of what I'm doing here.
In other news I've decided to prolong the remodel branch's already protracted development by reviving the Haiku port — but not using the old codebase that already exists.
https://github.com/SerenityOS/serenity (pointed to its existence by @ebraminio)
I had some thoughts re: Qt, but posted them in #30 instead of here, to avoid cluttering your notes.
https://github.com/andlabs/libui/issues/30#issuecomment-1326969936
Putting all of this in one place. Note that this does not include build configurations that aren't explicitly listed or made out of the box yet are still possible (such as the various BSDs, desktop on ARM, etc.); I'll probably make a separate issue for that.
Qt Status: unplanned
Android, iOS, other mobile devices (maybe even Palm OS if I'm masochistic enough) Status: unplanned I'm pretty sure the paradigms of mobile devices differ enough from those of desktop devices that this would be better served by a separate library, but I'm not 100% sure.
ncurses, other terminal APIs Status: unplanned ncurses does not have GUI components, IIRC... This page looks promising, though. There are also people who aren't as privy to ncurses as they are to other libraries like Termbox.
Haiku Status: BACK (see remodel branch)
HTML+CSS (possibly with enscriptem, or as an HTTP server, or something) Status: unplanned I have no idea where to start with this. The concept of a window would also be a pain point. Existing notes:
Plan 9 Status: wanted My nostalgia makes me want this. libcontrol is a bit incomplete; integrating libthread (required by libcontrol last time I checked) might be problematic; I forget if libdraw supports alpha transparency or floating-point coordinates; window events become moot. What even is the currently supported Plan 9 version or distribution??
OS/2, eComStation, ArcaOS Status: wanted I kinda want this both for novelty and because it seems to be making a comeback among big open source projects. I own sealed copies of OS/2 Warp 3, but I don't know what development tools I would need to get to be able to work with this, or what APIs it provides that prevent libui from working as desired here. If it turns out I would need a newer OS/2, I would need to get those as well...
Out-of-tree backends Status: unplanned I have no idea where to start with this, if it even is possible...