ImApp 2.0.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package ImApp --version 2.0.1
NuGet\Install-Package ImApp -Version 2.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ImApp" Version="2.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ImApp" Version="2.0.1" />
<PackageReference Include="ImApp" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ImApp --version 2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ImApp, 2.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ImApp@2.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ImApp&version=2.0.1
#tool nuget:?package=ImApp&version=2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ImApp
ImApp is a lightweight C# application framework for building native desktop applications with Dear ImGui, GLFW, and OpenGL.
It provides a small application/window layer while keeping Dear ImGui as the main UI API.
Status: Early development
Features
- Native desktop windows via GLFW
- Dear ImGui integration
- OpenGL rendering
- Configurable window options
- Borderless and resizable windows
- Maximized windows
- Transparent windows
- Topmost windows
- Mouse passthrough
- Dear ImGui docking
- Optional full-window host
- Target FPS limiter
- Embedded Noto Sans font
- .NET 10
Requirements
- .NET 10 SDK/runtime
- OpenGL 3.2+
- GLFW-compatible desktop environment
Installation
dotnet add package ImApp
Or:
<PackageReference Include="ImApp" Version="0.2.0" />
Quick Start
using Hexa.NET.ImGui;
using ImApp;
using var app = new App(new WindowOptions
{
Title = "My Application",
Width = 1000,
Height = 700
});
app.Run(() =>
{
ImGui.Begin("Hello");
ImGui.Text("Hello from ImApp!");
if (ImGui.Button("Click me"))
Console.WriteLine("Clicked!");
ImGui.End();
});
Window Options
var options = new WindowOptions
{
Title = "My Application",
Width = 1000,
Height = 700,
Decorated = true,
Resizable = true,
Transparent = false,
Topmost = false,
Maximized = false,
Visible = true,
Focused = true,
MousePassthrough = false,
DockingEnabled = false,
HostWindow = true,
TargetFps = 144,
FontSize = 17
};
| Option | Default | Description |
|---|---|---|
Title |
"ImApp Window" |
Window title |
Width |
800 |
Initial width |
Height |
600 |
Initial height |
Decorated |
true |
Native decorations |
Resizable |
true |
Allow resizing |
Transparent |
false |
Transparent framebuffer |
Topmost |
false |
Keep above normal windows |
Maximized |
false |
Start maximized |
Visible |
true |
Show window initially |
Focused |
true |
Request initial focus |
MousePassthrough |
false |
Pass mouse input through |
DockingEnabled |
false |
Enable ImGui docking |
HostWindow |
true |
Create full-window ImGui host |
TargetFps |
100 |
Target FPS; 0 disables limiter |
FontSize |
17 |
Embedded font size |
Host Window
By default, ImApp creates a full-window ImGui host:
using var app = new App(new WindowOptions
{
HostWindow = true
});
app.Run(() =>
{
ImGui.Text("Hello from ImApp!");
});
Disable it when you want to manage the ImGui windows yourself:
using var app = new App(new WindowOptions
{
HostWindow = false
});
app.Run(() =>
{
ImGui.ShowDemoWindow();
});
Docking
using var app = new App(new WindowOptions
{
Width = 1200,
Height = 800,
DockingEnabled = true
});
app.Run(() =>
{
ImGui.ShowDemoWindow();
});
Transparent / Borderless Window
using var app = new App(new WindowOptions
{
Decorated = false,
Transparent = true,
MousePassthrough = true
});
Font
ImApp includes Noto Sans Regular and loads it automatically.
Change the font size with:
using var app = new App(new WindowOptions
{
FontSize = 18
});
Dependencies
ImApp is built on:
- Dear ImGui
- Hexa.NET.ImGui
- Hexa.NET.GLFW
- Hexa.NET.OpenGL
- Hexa.NET.ImGui.Backends.GLFW
- Hexa.NET.ImGui.Backends.OpenGL3
- HexaGen.Runtime
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Hexa.NET.GLFW (>= 1.0.5)
- Hexa.NET.ImGui (>= 2.2.9)
- Hexa.NET.ImGui.Backends (>= 1.0.18)
- Hexa.NET.ImGui.Backends.GLFW (>= 1.0.18)
- Hexa.NET.OpenGL3 (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.