/hello_imgui

Hello, Dear ImGui: unleash your creativity in app development and prototyping

Primary LanguageC++MIT LicenseMIT

See the HelloImGui documentation website for API, usage and build instructions.

OpenGL
Win_Mac_Linux MinGW

Mobile and web
iOS Android Emscripten

Alternate rendering backends
Metal Vulkan DirectX

Misc
TestEngine Automate StarterTemplate

Vcpkg
VcpkgDeps VcpkgPackage

Hello ImGui

Hello ImGui is a library designed to make multiplatform app development as simple as writing a "Hello World" program, built on top of Dear ImGui.

Its flexibility makes it suited for complex applications, as well as for simple prototypes; allowing you to focus on the creative aspects of your projects.

Features

Multiplatform utilities

  • Seamlessly multiplatform: supports Linux, Windows, macOS, iOS, Android, and Emscripten with minimal setup (1 line of CMake code)
  • Asset embedding across all platforms (no code required)
  • Effortless app customization, including app icons and names for mobile platforms (no code required)
  • Universal application icon customization, extending to mobile and macOS (no code required)

Dear ImGui Tweaks

  • Power Save mode: optimize performance by reducing FPS when idle
  • High DPI support: automatically scales UI to match screen DPI on any platform.
  • Enhanced layout handling: dockable windows and multiple layouts for complex UIs
  • Window geometry utilities: autosize application window, restore app window position
  • Theme tweaking: extensive list of additional themes
  • Support for movable and resizable borderless windows
  • Advanced font support: icons, emojis and colored fonts
  • Integration with ImGui Test Engine: automate and test your apps
  • Save user settings: window position, layout, opened windows, theme, user defined custom settings
  • Easily add a custom 3D background to your app

Backends

  • Available platform backends: SDL2, Glfw3
  • Available rendering backends: OpenGL3, Metal, Vulkan, DirectX

Demos & real world apps

Motto

The minimum code to start developing a GUI app should be... minimal. Here is a multiplatform Hello World in 7 lines.

6 lines of C++

#include "hello_imgui/hello_imgui.h"
int main(int , char *[]) {
    HelloImGui::Run(
        []{ ImGui::Text("Hello, world!"); }, // Gui code
        "Hello!", true);                     // Window title + Window size auto
}

1 line of CMake

hello_imgui_add_app(hello_world hello_world.cpp)

Advanced layout

The docking demo show how to handle complex layouts, use themes, store user settings, reduce FPS and CPU usage when idling, load fonts and icons, and much more

Online demo - Source - Video tutorial: how to handle multiple complex layouts

Custom 3D background

How to use a custom 3D background in your app

Online demo - Source

ImGui Manual

ImGui Manual is an interactive Manual for Dear ImGui, built with Hello ImGui.

Online manual - Source

RPN Calculator

RPN Calculator is a simple RPN calculator, built, built to demonstrate how easy a multiplatform app can be built with Hello ImGui.

Online demo - Source - Video tutorial

Starter template

The starter template will get you started in 5 minutes, and shows how to embed assets, customize the app icon (etc.), on all platforms.

Dear ImGui Bundle

Dear ImGui Bundle, a full-fledged library, built on top of Hello ImGui, provides lots of additional widgets (imgui, implot, imgui-node-editor, ImFileDialog, ImGuiColorTextEdit, imgui_md), as well as complete python bindings.

online interactive demo - Source for C++ demos - Source for Python demos

Theme tweaking

How to use the theme tweaking utilities provided by Hello ImGui

Online video tutorial


About

Credits

Hello ImGui is based on Dear ImGui (MIT License), by Omar Cornut. Portions use ImGui Test Engine, which is governed by a specific license

Portions of this software use the FreeType Project, plutosvg (MIT License), GLFW (zlib/libpng license), SDL (zlib license).

License

Hello ImGui is licensed under the MIT License, see LICENSE

Contribute

Quality contributions are welcome!

Support the project

Hello ImGui is a free and open source project, and its development and maintenance require considerable efforts.

If you find it valuable for your work – especially in a commercial enterprise or a research setting – please consider supporting its development by making a donation. Thank you!

More info

See the HelloImGui documentation website for API, usage and build instructions.