I've used this to let friends on IRC paint on my LED shelf (https://github.com/eikehein/hyelicht), which has a Qt-based embedded and phone app GUI, over the internet. Cheap fun!
I think Qt's is "better", in that GTK's just streams pixel data to a HTML canvas. Looks like Qt actually streams the WebGL drawing commands to the browser, which does the rendering itself. Certainly that's still not super fast, as the drawing commands are sent over a socket, vs. directly to the GPU's GL driver... but presumably more performant than rendering in the app (even if using the GPU to do so), and then copying the pixel data into network buffers.
Either way, it's a cool feature in both toolkits. (Not trying to belittle GTK here.)
AFAIU for 'heavy' 3D applications like AAA games the BW over the PCIe bus to the GPU can be a lot higher than what comes out of the cable to the screen. So just sending (compressed) pixels is not necessarily a bad remoting strategy.
Though for something simple like just rendering GUI widgets the opposite may very well be true.
I remember when Alex Larsson announced this as a POC. I tried it out, it was pretty neat and worked well. I was always sad it kind of languished or didn't get any attention after that.
So I'm curious, is it back with a vengeance? Are people working on this?
I'd be interested to know this too but I'm not hopeful. I imagine it's up here because it was mentioned in the discussion on the New renderers for GTK[0] post a couple of days ago.
It says "using HTML5 and web sockets."
Does this mean the application freezes if the connection to server is disrupted?
Could developers use this to make web-based apps along-side desktop clients? If so , Desktop frameworks like GTK and Qt should focus on this idea more to reclaim the desktop from the monstrosity that is Electron.
I'm not sure how this could reclaim the desktop from Electron. If anything, this gives Electron developers another option by running a local server in the app and rendering it in Electron.
Wait, does this mean I can use any spare tablet, laptop or smart TV as second monitor for, say M1 running Asahi? Wonder what's the performance for non-game usage?
Many environments also include native virtual display support so you don't even always need a special VNC server. On Linux projects like that tend to just automate it but sometimes it's pretty easily to do manually. E.g. on Sway you just define the virtual display the exact same manner as you do a physical display and then VNC in to only that display. On other operating systems like if it was running native macOS projects tend to do more of the heavy lifting around making the virtual displays actually happen.
replying to myself. Nope, because broadway doesn't support OpenGL apparently:
* (epiphany:13774): WARNING *: 12:18:59.172: Disabled hardware acceleration because GTK failed to initialize GL: The current backend does not support OpenGL.
https://alnvdl.github.io/2023/11/18/a-cloud-based-vs-code-wo...