12 comments

[ 3.3 ms ] story [ 37.6 ms ] thread
That's really neat! ImGUI has got to be one of the most satisfying GUI libraries to use, its fast, versatile and looks absolutely beautiful, so spreading it to even weird places is great!
It's an absolute joy to use. If only all libraries could be so well-made.
ImGUI is great, but i wouldn't call it "versatile", it's too rigid to be versatile

It's too focused on desktop (mouse/kb), and you can't really theme it other than its colors and shape of the edges, doesn't support animations and you can't style the font, it's pretty basic

Creating custom controls is a ton of work

Then you have libraries like this: https://lvgl.io/ (gh: https://github.com/lvgl/lvgl)

That's what i call a versatile GUI library

I would consider the lack of support for animations a feature, not a limitation.
Versatile: "able to adapt or be adapted to many different functions or activities."

I never mentioned "limitation", ImGui is great for what it is, i wouldn't use lvgl to build my engine tools, i use ImGui actually

Dear ImGui is coming out of the game dev world and is mainly intended for specialised UI tools and debugging/profiling overlays in 3D games (or generally 3D apps), and for that use case it's just perfect and fixed a longstanding problem (for gamedev inhouse tools, it essentially killed C#/WPF and Qt overnight).
dear imgui is versatile in that it can be used in the sorts of programs that haven't traditionally been well served by existing desktop GUI libraries. (It also has a very convenient API that means you can cobble these GUIs together much more quickly than with most other libraries. So that's helpful too.)

lvgl looks like something you'd use for making the UI for the actual product. dear imgui is for the debug tools that get stripped out of the version you release. It's not intended for user-facing use, so there's no significant support for anything visually interesting. (The actual appearance of the UI isn't really even all that important. It just has to be not too weird-looking.)

Extremely cool! LiteX is such a nice tool compared to how things used to be
What kind of background would someone using LiteX have?
Building SoCs with FPGAs, probably would have used chip planner or whatever the vivado equivalent is for amd/xilinx. LiteX makes SoC design really accessible at a hobby level compared to those tools.
Interestingly there are no modification of the core Dear ImGui library involved. It's using a software renderer, which have been available already e.g. that one had been optimized to run on ESP32 https://github.com/LAK132/ImDuino

They are really cool/fun setup as well as being proofs of the portability of Dear ImGui but I imagine probably a little too taxing for the SoC involved. In the sense that if you were to want to use more of the SoC computational power it might feel like an unbalanced amount of resources to allocate to a GUI library (which normally expects a GPU).