dpg-examples
Libraries
dpg-examples | Libraries | |
---|---|---|
3 | 2 | |
72 | 92 | |
- | - | |
7.0 | 9.6 | |
25 days ago | 6 days ago | |
Python | C# | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dpg-examples
-
Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
I've used Dear PyGui [1], which is based on this, and it has been a mixed bag. It's fast and basic functionality is super simple. The documentation is somewhat lacking when you wanted to start doing something non-standard. I would still rate it quite highly all things considered.
[1] https://github.com/hoffstadt/DearPyGui
-
Dynamic plot
Some related examples https://github.com/my1e5/dpg-examples/blob/main/threading/progress_bar.py
Libraries
-
Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
My personal IMGUI library [1] is what I call "partially retained" in that there is an immediate mode API similar to dear imgui or nuklear on top, but under the hood the immediate mode API just manages retained mode object graphs for you automatically.
This is a fantastic (imo) way to build user interfaces, because sometimes the most convenient way to manage state or construct a complex widget is to write a retained mode object that hosts some other child objects, and in other circumstances it's most convenient to write a modal dialog or something by just slamming out some imgui code in a standalone function.
I also think the imgui approach to layout (use an algorithm that can fully reconstruct your layout from scratch every frame without much of a performance penalty) removes a lot of potential bugs and quirks that are common in UI, like one-frame glitches or having to manually propagate state through a bunch of objects and layers. Though imgui approaches have their own downsides, like the "page tearing" issue. I've had to do some weird contortions to solve that one in my own code and I still get bugs occasionally.
1: https://github.com/sq/Libraries/tree/master/Squared/PRGUI
-
Leveraging Rust and the GPU to render user interfaces at 120 FPS
I haven't found good platform accessibility API bindings for C#, so right now it just has narration support, adjustable text size/contrast, and full keyboard navigation. I'm hoping that later on in my project's development process I'll have the budget to hire someone to try and fully integrate with the platform APIs - it's designed so it will be possible by pushing updates to the retained model.
The way it works is that it has an immediate mode API (see https://github.com/sq/Libraries/blob/0ca01d949e3df5fabb1440d... for a simple example of the API) and then under the hood it uses a lightweight retained-mode graph, which means that when it's more convenient you can just write more traditional classes and components. In practice most of the UI I've written for my main project is a mix of both models, like for example an editor popup window uses IMGUI-style API while the items in a virtual listbox are represented by a small custom component.
It does have a full imgui-style layout engine under the hood instead of doing retained-mode layout, so it's able to fully re-generate layout from scratch every frame, and to minimize page tearing there is a system where components can request a second relayout pass (typically used for things like text autosize).
Here's a more complex mixed-mode example from one of my development tools: https://gist.github.com/kg/6a6ba42d5019b546858a2b18751de019
What are some alternatives?
mfnp - Mainframe Notepad — simple JCL editor with ability to send jobs to mainframe via FTP and receive results
rerun - Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
DearPyGui - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
SimpleDrawing-Desktop-App - SimpleDrawing is a basic desktop sketching application build using the Dear PyGui Graphical User Interface Toolkit in python for producing neat and quick sketches.
ImHex - 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
raccoon - Raccoon Music Player is a pocket-sized music player that shows raccoons dancing around a campfire while songs are playing.
msdfgen - Multi-channel signed distance field generator
imgui_test_engine - Dear ImGui Automation Engine & Test Suite
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native