Hard disagree. Modern web browsers are incredibly complex beasts that evolved by amalgamating decades of experimentation, poor non-standards, and elaborate counter-measures to fix that mess. I recommend reading <https://browser.engineering>, or even just building Chromium from source, to gain some appreciation. Most applications would benefit from something much simpler. But it's often practical to use as it is, pretty much exactly like terminal emulators.
The main difference being, terminal emulators are still several orders of magnitude less complex than web browsers, but in spite of that still require a lot of complexity to undo the side-effects of having a serial line between the CPU and the character grid. If you like monospaced fonts and character grids, you can probably render that with plain SDL, bitmap fonts with indexed sprite sheets (no Freetype), and in return get non-broken copy & paste, or even a dock icon. You know, the MVP of GUI.
Interesting project, but you still need to hook it up to a backend to create a window to draw pixels on. SDL is likely the most portable library to do that; you could substitute fbdev, DirectX, wgpu, glfw, win32, metal, and so on.
The point is, once you have a window and a putpixel (or even better, surfaces and blitting), the rest is easy to handcraft. A standardised library would of course help.
Hard disagree. Modern web browsers are incredibly complex beasts that evolved by amalgamating decades of experimentation, poor non-standards, and elaborate counter-measures to fix that mess. I recommend reading <https://browser.engineering>, or even just building Chromium from source, to gain some appreciation. Most applications would benefit from something much simpler. But it's often practical to use as it is, pretty much exactly like terminal emulators.
The main difference being, terminal emulators are still several orders of magnitude less complex than web browsers, but in spite of that still require a lot of complexity to undo the side-effects of having a serial line between the CPU and the character grid. If you like monospaced fonts and character grids, you can probably render that with plain SDL, bitmap fonts with indexed sprite sheets (no Freetype), and in return get non-broken copy & paste, or even a dock icon. You know, the MVP of GUI.
Try <https://lite-xl.com>, it builds its GUI straight on top of SDL.