WinApi
imgui
WinApi | imgui | |
---|---|---|
4 | 351 | |
806 | 55,870 | |
- | - | |
0.0 | 9.7 | |
over 1 year ago | 5 days ago | |
C# | C++ | |
Apache License 2.0 | 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.
WinApi
- A .NET library for high-performance Win32 native interop
- Are there any low-level library options for creating desktop apps?
- Any good book recommendation/resource for Win32 api with .NET?
-
Mozilla plans to remove the Compact Density option from Firefox's Customize menu
>What happened?
Building extremely high quality user interfaces has been de-prioritized by our tech gods. See: ElectronJS. Every "native" "desktop" application built upon such technologies has a minimum latency bound that is user-detectable and a memory appetite that cannot be appeased by even the most opulent workstation-class system.
Those of us seeking client->server->client trips that are measured in microseconds (on top of network stack latency) have been forced into the dark nether-reaches of technology. Writing 2D graphics libraries and client/server UI frameworks from scratch has become one of my new favorite hobbies.
All of this is especially upsetting when you consider how much complexity has been magically hand-waved away over the last 20 years with modern OS, language and tool design. You don't even have to go to C/C++ to get the UI performance these days. A high-quality C# implementation using platform-specific graphics interop is more than capable of producing UIs that can respond in the 10-1000 microsecond range. WinApi interop and hooking the window message pump is a trivial exercise. See: https://github.com/prasannavl/WinApi et. al.
imgui
-
Using raylib with Dear ImGui: Game Dev Debugging UI
include(cmake/CPM.cmake) function(raylib_imgui_setup_dependencies) message(STATUS "Include Dear ImGui") FetchContent_Declare( ImGui GIT_REPOSITORY https://github.com/ocornut/imgui GIT_TAG 277ae93c41314ba5f4c7444f37c4319cdf07e8cf) # v1.90.4 FetchContent_MakeAvailable(ImGui) FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR) add_library( imgui STATIC ${imgui_SOURCE_DIR}/imgui.cpp ${imgui_SOURCE_DIR}/imgui_draw.cpp ${imgui_SOURCE_DIR}/imgui_widgets.cpp ${imgui_SOURCE_DIR}/imgui_tables.cpp) target_include_directories(imgui INTERFACE ${imgui_SOURCE_DIR}) include(cmake/CPM.cmake) message(STATUS "Include dbg-macro") cpmaddpackage( "gh:sharkdp/dbg-macro#fb9976f410f8b29105818b20278cd0be0e853fe8" )# v0.5.1 message(STATUS "Include fmtlib") cpmaddpackage("gh:fmtlib/fmt#e69e5f977d458f2650bb346dadf2ad30c5320281" )# 10.x message(STATUS "Include raylib") cpmaddpackage("gh:raysan5/raylib#ae50bfa2cc569c0f8d5bc4315d39db64005b1b0" )# v5.0 message(STATUS "Include spdlog") cpmaddpackage("gh:gabime/spdlog#7c02e204c92545f869e2f04edaab1f19fe8b19fd" )# v1.13.0 message(STATUS "Include rlImGui") FetchContent_Declare( rlImGui GIT_REPOSITORY https://github.com/raylib-extras/rlImGui GIT_TAG d765c1ef3d37cf939f88aaa272a59a2713d654c9) FetchContent_MakeAvailable(rlImGui) FetchContent_GetProperties(rlImGui SOURCE_DIR RLIMGUI_DIR) add_library(rlimgui STATIC ${rlimgui_SOURCE_DIR}/rlImgui.cpp) target_link_libraries(rlimgui PRIVATE imgui raylib) target_include_directories(rlimgui INTERFACE ${rlimgui_SOURCE_DIR}) endfunction()
- Ask HN: Fastest cross-platform GUI stack/strategy
-
Immediate Mode GUI Programming
Immediate mode is a fuzzy concept, as witnessed by this writeup: https://github.com/ocornut/imgui/wiki/About-the-IMGUI-paradi...
- Nebula is an open-source and free-to-use modern C++ game engine
-
Black Triangles
It's fun to see the evolution in e.g. these examples of image loading for Dear Imgui:
https://github.com/ocornut/imgui/wiki/Image-Loading-and-Disp...
DirectX9 will even load the image for you, DirectX11 okay we get a few more structures to fill out, DirectX12 is where it goes off the rails and we are filling out a bunch of UNKNOWN DONT_CARE JUST_DO_IT. Then of course Vulkan is the one that gets the big fat "this probably won't actually work for you" warning.
I understand whats happening, but you know sometimes I just want to display a fucking image.
-
Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
ImGui is engine/GPU agnostic
Themeing isn't a just a retained mode thing, you can do wonders with immediate UIs, even thought (dear)ImGui doesn't provide much, you can still do wonders: https://github.com/ocornut/imgui/issues/707#issuecomment-362...
More on that topic: https://www.youtube.com/watch?v=Z1qyvQsjK5Y
-
Where do I start to learn C++ for a game development
Bonus: If you want to make desktop app with UI, then this is another great C++ library and it's also simple to learn as well. https://github.com/ocornut/imgui.
-
GUI library for fast prototyping
AFAIK the Rust equivalent to C++'s Dear ImGui is egui.
-
Stretching myself thin with Dear ImGui projects
They use a Dear ImGui, a C++ GUI library.
-
PCSX2 Disables Wayland Support
Aside from bugs and driver issues, Wayland has some unfortunate design limitations. For example, Dear ImGui multi-viewports don't work because "Wayland doesn't let application read or write windows positions."
https://github.com/ocornut/imgui/wiki/Multi-Viewports
This is a feature available on Windows, macOS, and of course X11. Making choices like this means desktop Linux becomes even more of a weird island that nobody wants to support.
What are some alternatives?
Gtk# - Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Mono
wxWidgets - Cross-Platform C++ GUI Library
XWT - A cross-platform UI toolkit for creating desktop applications with .NET and Mono
nuklear - A single-header ANSI C immediate mode cross-platform GUI library
MahApps.Metro - A framework that allows developers to cobble together a better UI for their own WPF applications with minimal effort.
NanoGUI - Minimalistic GUI library for OpenGL
FastColoredTextBox - Fast Colored TextBox for Syntax Highlighting. The text editor component for .NET.
GTK+ - Read-only mirror of https://gitlab.gnome.org/GNOME/gtk
MaterialDesignInXamlToolkit - Google's Material Design in XAML & WPF, for C# & VB.Net.
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
MaterialSkin - Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles.
CEGUI