Navigate:
~$IMGUI0.1%

Dear ImGui: C++ graphical user interface library

Immediate mode GUI library for 3D applications.

LIVE RANKINGS • 06:52 AM • STEADY
TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100
OVERALL
#63
6
FRONTEND
#4
1
30 DAY RANKING TREND
ovr#63
·Front#4
STARS
70.6K
FORKS
11.4K
DOWNLOADS
7
7D STARS
+86
7D FORKS
+6
See Repo:
Share:

Learn more about imgui

Dear ImGui is an immediate mode GUI library written in C++ that generates optimized vertex buffers for rendering. It operates without external dependencies and provides a self-contained core that compiles directly into applications. The library uses an immediate mode design pattern where UI state is reconstructed each frame rather than retained, reducing synchronization complexity. It is commonly integrated into game engines, real-time 3D applications, and tools where rapid iteration and minimal UI state overhead are priorities.


1

Immediate Mode Design

UI is reconstructed each frame rather than retained, eliminating state synchronization between application and UI. Reduces boilerplate code and simplifies integration into existing codebases without architectural changes.

2

Renderer Agnostic Output

Generates optimized vertex buffers compatible with any graphics API or rendering pipeline. Backends provided for common platforms, or create custom backends wherever textured triangles can be rendered.

3

Minimal Dependencies Integration

Core functionality contained in a few platform-agnostic C++ files that compile directly into projects. No external dependencies or build process required, suitable for embedded systems and console platforms.


#include "imgui.h"

void RenderDebugUI() {
    ImGui::Begin("Debug Info");
    ImGui::Text("FPS: %.1f", ImGui::GetIO().Framerate);
    
    static float velocity = 0.0f;
    ImGui::SliderFloat("Speed", &velocity, 0.0f, 100.0f);
    
    if (ImGui::Button("Reset")) {
        velocity = 0.0f;
    }
    ImGui::End();
}

vv1.92.4

Breaks Vulkan backend init struct layout and removes legacy TreeNode/Selectable/Clipper names from 2023; adds child window resize grips and routing flexibility.

  • Move Vulkan init fields (RenderPass, Subpass, MSAASamples, PipelineRenderingCreateInfo) into init_info.PipelineInfoMain and add image_usage arg to helper.
  • Remove ImGuiTreeNodeFlags_AllowItemOverlap, ImGuiSelectableFlags_AllowItemOverlap, and ImGuiListClipper::IncludeRangeByIndices (obsoleted July/Sept 2023).
vv1.92.3

Patch release fixing font merging regression from 1.92, clipper/table row assumptions, and InputText word-wrap bugs; adds configurable scrollbar padding.

  • Update custom backends to support ImGuiBackendFlags_RendererHasTextures per improved docs/BACKENDS.md if not done since v1.92.0.
  • Use ImGuiListClipperFlags_NoSetTableRowCounters when clipping in pixel units (ItemsHeight=1) to avoid breaking table row logic.
vv1.92.2b

Hotfix for v1.92.2 resolving IsItemHovered() regression on disabled items and items without identifiers when mouse button is held.

  • Update immediately if you call IsItemHovered() on disabled widgets or Text() while users hold mouse buttons down.
  • Allegro5 users gain texture format fixes, ImGui_ImplAllegro5_SetDisplay() for display switching, and PrintScreen key support on Windows.

See how people are using imgui

Loading tweets...


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers