← All reportsPublic report

ocornut/imgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

76k stars C++ View on GitHubprofiled 11d ago
Try GitZoid
41PRs this week
5Contributors
0Deps scanned
0Issues found
01 · Repo overview

How imgui is put together

Dear ImGui is a self-contained immediate-mode GUI library for C++ that outputs optimized vertex buffers and draw command lists which the host application renders via its own 3D pipeline. The core is a handful of platform-agnostic files in the repository root (imgui*.cpp/h) with no required build process; rendering and platform integration are isolated in pluggable 'backends' (DirectX 9-12, OpenGL 2/3, Vulkan, Metal, WebGPU, SDL2/3, GLFW, Win32, etc.) under backends/. Data flow is: application calls ImGui widget functions each frame -> library maintains internal state (context, ID stack, input) -> produces vertex/index buffers and ImDrawCmd lists -> the chosen backend uploads them to the GPU and feeds platform events (mouse/keyboard) back into ImGuiIO. Optional extensions include FreeType font rasterization (misc/freetype), std::string widget overloads (misc/cpp), and debugger visualizers (misc/debuggers).

Languages

C++Objective-C++CGLSLShell

Frameworks

Dear ImGui (core, this repo)Win32 APIOpenGLVulkanDirectX 9/10/11/12MetalWebGPUSDL2 / SDL3 / SDLGPU3GLFWAllegro 5FreeType

Infrastructure

GitHub Actions CI (build and static-analysis workflows referenced by README badges)

Major components

Core context & frame loop (imgui.cpp/imgui.h)

Implements the ImGui context, per-frame lifecycle (NewFrame/EndFrame/Render), window management, layout, clipping, input handling, and public API.

Widgets (imgui_widgets.cpp)

Implements concrete widgets: buttons, sliders, drag inputs, text inputs, combo boxes, tabs, color pickers, etc., on top of core primitives.

Tables (imgui_tables.cpp)

Implements the table API including column sizing, freezing, sorting, and row/column layout.

Rendering & font atlas (imgui_draw.cpp)

Rasterizes anti-aliased primitives into vertex buffers, builds and manages font atlases, and provides the ImDrawList/ImDrawData output consumed by backends.

Internal API & data structures (imgui_internal.h)

Declares internal structures, helpers, and functions shared between core translation units and advanced users/backends.

Demo window (imgui_demo.cpp)

Self-contained ShowDemoWindow() reference implementation showcasing nearly all features and serving as usage documentation.

Backends (backends/)

Per-GPU-API and per-platform adapters that render ImDrawData (e.g. imgui_impl_vulkan, imgui_impl_dx11) and feed platform input (e.g. imgui_impl_glfw, imgui_impl_win32, imgui_impl_sdl2/3).

Optional extensions (misc/)

FreeType font rasterization backend (misc/freetype), std::string/std::wstring InputText overloads (misc/cpp), debugger visualizers, bundled fonts, and single-file amalgamation helper.

Over the past few weeks, the Dear ImGui project has been steadily preparing for and releasing its 1.92.9 version while laying groundwork for 1.93, with a strong focus on font rendering density, multi-threading support for rendering, and platform backends. Notable work includes brand-new QNX platform support, new Apple example apps, fixes to long-standing table drawing glitches, and cleanup of obsolete APIs. Bug fixes dominated the newest weeks, including a workaround for tables losing their display order and corrections to draw-list resets after very long app sessions.

Week by week

2026-08-17A quiet week focused on two targeted bug fixes: resetting background/foreground draw lists over long sessions and a workaround for tables losing their display order.latest2 changes

Fix

Draw list reset fix

Background and foreground draw lists are now properly reset every frame, even after an app has been running for a very long time.

Fix

Table display order workaround

Fixed a problem where tables could lose their display ordering, using a workaround for an underlying issue.

2026-08-10A single small backend fix for WebGPU viewport sizing.1 change

Fix

WebGPU viewport size fix

The WebGPU backend no longer passes non-whole-number sizes when setting the render viewport, which could cause errors.

2026-08-03A big week of groundwork for the upcoming 1.93 release: text alignment rework, new Apple examples, QNX cleanups, pixel-density plumbing, and removal of several outdated APIs.6 changes

Feature

Text alignment rework

Aligned text functions were reworked so they always respect the width you give them.

Feature

New Apple+OpenGL3 example

Added a fresh sample application showing how to use the library on Apple hardware with OpenGL 3.

Fix

SDL2 framebuffer scale on Metal

The SDL2 backend now correctly detects screen scale/density when rendering through Metal.

Refactor

Pixel density applied to draw lists

Draw lists now inherit the current screen pixel density automatically, simplifying high-DPI rendering.

Chore

Removed legacy DirectX12 init signature

An old way of initializing the DirectX12 backend that was deprecated in version 1.91.6 was removed entirely.

Chore

Removed old curve-tessellation style setting

The outdated CurveTessellationTol style option was replaced by the newer CurveTesselationMaxError setting.

2026-07-27Initial QNX platform support arrived alongside the 1.92.9b hotfix release, plus pixel-perfect fixes for table borders and a slider/drag click regression.6 changes

Feature

QNX platform support

Added first-time support for running the library and its samples on the QNX operating system.

Chore

Version 1.92.9b release

Shipped a small follow-up patch release to the 1.92.9 version.

Fix

Slider/drag Ctrl+click flicker fix

Clicking a field you had previously Ctrl+clicked briefly flashing into text-edit mode for one frame is fixed.

Fix

Angled table border position fix

Diagonal (angled) borders in tables were drawn half a pixel off and are now correctly positioned.

Fix

Horizontal table border fix

The bottom horizontal border of a table sat one pixel too low when vertical borders weren't also shown; this is corrected.

Docs

Backend filtering notes

Comments across backends now clearly state that bilinear filtering will be required from version 1.93 onward.

2026-07-20Version 1.92.9 shipped with multi-threading aids for rendering and popup API improvements, plus a fix restoring compatibility for older integrations.6 changes

Chore

Version 1.92.9 release

The 1.92.9 version of the library was officially released this week.

Fix

Legacy CmdListsCount regression fix

Older code relying on a count of draw command lists got correct values again after it broke in 1.92.9.

Feature

Multi-threading debugging fields

Draw data now includes a frame counter to help track down problems when rendering happens on a separate thread.

Feature

Texture queue user data hook

Added a slot for custom data on queued textures, useful for advanced threaded-rendering setups.

Feature

Popup functions return success

OpenPopup and related functions now report whether they actually opened something.

Docs

FAQ expansion

The FAQ index was reorganized and gained new sections on multi-threading and string handling.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required