Twizzle.ImGui.NET
1.91.5
dotnet add package Twizzle.ImGui.NET --version 1.91.5
NuGet\Install-Package Twizzle.ImGui.NET -Version 1.91.5
<PackageReference Include="Twizzle.ImGui.NET" Version="1.91.5" />
paket add Twizzle.ImGui.NET --version 1.91.5
#r "nuget: Twizzle.ImGui.NET, 1.91.5"
// Install Twizzle.ImGui.NET as a Cake Addin #addin nuget:?package=Twizzle.ImGui.NET&version=1.91.5 // Install Twizzle.ImGui.NET as a Cake Tool #tool nuget:?package=Twizzle.ImGui.NET&version=1.91.5
ImGui.NET
This is a .NET wrapper for the immediate mode GUI library, Dear ImGui (https://github.com/ocornut/imgui). ImGui.NET lets you build graphical interfaces using a simple immediate-mode style. ImGui.NET is a .NET Standard library, and can be used on all major .NET runtimes and operating systems.
Included is a basic sample program that shows how to use the library, and renders the UI using Veldrid, a portable graphics library for .NET. By itself, Dear ImGui does not care what technology you use for rendering; it simply outputs textured triangles. Example renderers also exist for MonoGame and OpenTK (OpenGL).
This wrapper is built on top of cimgui, which exposes a plain C API for Dear ImGui. If you are using Windows, OSX, or a mainline Linux distribution, then the ImGui.NET NuGet package comes bundled with a pre-built native library. If you are using another operating system, then you may need to build the native library yourself; see the cimgui repo for build instructions.
Release | |
---|---|
ImGui.NET | |
ImGuizmo.NET | |
ImNodes.NET | |
ImPlot.NET |
Building
ImGui.NET can be built in Visual Studio or on the command line. The .NET Core SDK is needed to build on the command line, and it can be downloaded here. Visual Studio 2017 is the minimum VS version supported for building.
Usage
ImGui.NET currently provides a raw wrapper around the ImGui native API, and also provides a very thin safe, managed API for convenience. It is currently very much like using the native library, which is very simple, flexible, and robust. The easiest way to figure out how to use the library is to read the documentation of imgui itself, mostly in the imgui.cpp, and imgui.h files, as well as the exported functions in cimgui.h. Looking at the sample program code will also give some indication about basic usage.
Debugging native code
ImGui.NET is a wrapper over native code. By default, this native code is packaged and released in an optimized form, making debugging difficult. To obtain a debuggable version of the native code, follow these steps:
- Clone the ImGui.NET-nativebuild repo, at the tag matching the version of ImGui.NET you are using.
- In the ImGui.NET-nativebuild repo, run
build.cmd debug
orbuild.sh debug
(depending on your platform). - Copy the produced binaries (cimgui.dll, libcimgui.so, or libcimgui.dylib) into your application.
- Run the program under a native debugger, or enable mixed-mode debugging in Visual Studio.
See Also
https://github.com/ocornut/imgui
Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies).
Dear ImGui is designed to enable fast iterations and to empower programmers to create content creation tools and visualization / debug tools (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal, and lacks certain features normally found in more high-level libraries.
Dear ImGui is particularly suited to integration in games engine (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on consoles platforms where operating system features are non-standard.
See the official screenshot thread for examples of many different kinds of interfaces created with Dear ImGui.
https://github.com/cimgui/cimgui
This is a thin c-api wrapper for the excellent C++ intermediate gui imgui. This library is intended as a intermediate layer to be able to use imgui from other languages that can interface with C .
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Buffers (>= 4.5.1)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
-
net6.0
- System.Buffers (>= 4.5.1)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
-
net8.0
- System.Buffers (>= 4.5.1)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Twizzle.ImGui.NET:
Package | Downloads |
---|---|
3DEngine
Package Description |
|
Twizzle.ImGuizmo.NET
A .NET wrapper for the ImGuizmo library. |
|
Twizzle.ImPlot.NET
A .NET wrapper for the ImPlot library. |
|
Twizzle.ImNodes.NET
A .NET wrapper for the imnodes library. |
GitHub repositories
This package is not used by any popular GitHub repositories.