RexSystem1 voteoriginally by @Speykious on GitHub4 replies
I intend to make my own native desktop client for Fluxer using my own GUI framework with my own simple OpenGL renderer, all written in Rust. It's immediate-mode, cross-platform, has hot-reloading (thanks tosubsecond), supports stuff like unicode text (thanks to parley), text input and animations, and has a widget inspector. I still need to add some important things like a Metal renderer for MacOS (the OpenGL renderer is too slow on MacOS right now), some kind of way to make custom shaders (won't take too long) and accessibility (using accesskit), but apart from that it's pretty much usable.
Here's a demo of what I have so far.
https://fs.speykious.dev/showcases/uing/uing-demo-6e72fb7.mp4
Here's a smaller video demonstrating hot reloading since GitHub doesn't want to embed the previous video.
557966331-f897c6f9-6e17-40d5-9bc8-f37e503cd469.mp4
I'm not sure about "more lightweight", but it's definitely more modern than OpenGL (which has stopped receiving updates 8 years ago) and gives you a lot more fine-grained control. Problem is, I'd need to learn it, and that's gonna take a while... So I'm doing Metal first :p
And no, I don't want to use WGPU. It's way too much abstraction, and from my point of view it's yet another API to learn. I'd rather learn Metal and have something solid on all platforms, then add Vulkan after that. I can have a lot more freedom with my renderer by making this myself, and it's fine because I already have something that works.
Reply on the edit: Thank you :3
Edit: another possibility would be to use Core Animation, which was a friend's suggestion. Though it would require me to make a second renderer rather than add a backend to my existing renderer. I guess I'll look into it.
RexSystem1 voteoriginally by @yofukashino on GitHub
I'm not sure about "more lightweight", but it's definitely more modern than OpenGL (which has stopped receiving updates 8 years ago) and gives you a lot more fine-grained control. Problem is, I'd need to learn it, and that's gonna take a while... So I'm doing Metal first :p
That is quite reasonable, I mean its still better than electron.
RexSystem1 voteoriginally by @TheKodeToad on GitHub
I too intend to create a client in Rust (and have already started) but with gpui-component! I don't want to stop because it's fun! Maybe I should switch to something more native so there aren't two attempts to do something very similar... maybe if I get something working quickly (which should be easier when I don't need to work on my own ui stuff too much) it could also help other efforts
(also note that I'm new to Rust and its ecosystem, Speykious probably stands a better chance of making something good)
(I am also on Plasma and Qt would be the native look - and using Qt from Rust isn't that fun so C++ is probably a better bet)
Edit: I'll just wait and see what everyone else does
Thread
Comment by @Speykious
subsecond), supports stuff like unicode text (thanks toparley), text input and animations, and has a widget inspector. I still need to add some important things like a Metal renderer for MacOS (the OpenGL renderer is too slow on MacOS right now), some kind of way to make custom shaders (won't take too long) and accessibility (using accesskit), but apart from that it's pretty much usable. Here's a demo of what I have so far. https://fs.speykious.dev/showcases/uing/uing-demo-6e72fb7.mp4 Here's a smaller video demonstrating hot reloading since GitHub doesn't want to embed the previous video. 557966331-f897c6f9-6e17-40d5-9bc8-f37e503cd469.mp4Comment by @yofukashino
Comment by @Speykious
Reply on the edit: Thank you :3 Edit: another possibility would be to use Core Animation, which was a friend's suggestion. Though it would require me to make a second renderer rather than add a backend to my existing renderer. I guess I'll look into it.Comment by @yofukashino
Comment by @TheKodeToad