What's Changed
This release updates core bindings to Dear ImGui 1.92.7 and brings several notable improvements to the Java integration layer, including a long-awaited SDL3 backend, the return of ImGuiColorTextEdit, and a major ImPlot milestone.
Highlights
-
Dear ImGui 1.92.7 Core Update
- Bindings are synchronized with Dear ImGui 1.92.7-docking, a significant jump from 1.90.9-docking.
- v1.92.0 is the largest breaking release of Dear ImGui since 2015, centered on a complete redesign of the font subsystem.
- See Dear ImGui v1.92.0 release notes for the full upstream changelog.
-
ImPlot v1.0
implotextension is updated from a 2023-era snapshot to the official v1.0 release.- This is a breaking release: all
Plot*functions now acceptImPlotSpecinstead of trailing(flags, offset, stride)parameters. See Migration Notes below. - New APIs:
PlotPolygon,PlotBubbles,NextMarker, per-index colors and marker sizes viaImPlotSpecarray fields. - Removed:
SetNextLineStyle,SetNextFillStyle,SetNextMarkerStyle,SetNextErrorBarStyle— styling is now done throughImPlotSpecfields directly. - Contributed by @phraktle — thank you!
-
ImGuiColorTextEdit Restored
ImGuiColorTextEditextension is back, now backed by the actively maintained goossens upstream fork, compatible with the latest Dear ImGui versions.- Native builds now require C++17 as a result. This only affects contributors building native libraries from source — pre-built binaries in
bin/work as-is. - Contributed by @edoli — thank you!
-
New SDL3 Backend
- SDL3 platform + SDL_GPU renderer support is now available via
ImGuiImplSdl3andImGuiImplSdlGpu3, shipped as part of theimgui-java-lwjgl3module. - Supports single-viewport rendering with full event forwarding: mouse, keyboard, gamepads, clipboard.
imgui-appusers can switch to SDL3 with a single line inconfigure():GLFW + OpenGL3 remains the default (config.setBackend(Backend.SDL);
Backend.GLFW).- Note: multi-viewport support is not yet implemented in the SDL3 backend and will be added in a future release.
- SDL3 platform + SDL_GPU renderer support is now available via
-
LWJGL3 Backends Synchronized
ImGuiImplGl3andImGuiImplGlfwhave been brought up to date with the latest Dear ImGui C++ reference implementations.- Notable GLFW improvements: Wayland detection, DPI awareness helpers (
getContentScaleForWindow/Monitor), improved key translation, cursor caching, and Linux-specific mouse handling fixes. - Notable OpenGL3 improvements: enhanced OpenGL ES 3.0 detection, proper texture management, improved GL state backup/restore.
-
Build & Tooling
- Gradle wrapper bumped to 9.4.1 (required for building on JDK 25+), LWJGL bumped to 3.4.1.
- Root build scripts are now Gradle 9 configuration-cache compatible.
Known Limitations
Dear ImGui 1.92 introduced a new dynamic font and texture management system that requires non-trivial backend work to surface in the Java binding. The following APIs are not yet implemented and are planned for future releases:
ImTextureRefandImTextureData— the new upstream types for managing GPU textures dynamically are not yet wrapped. Java callers continue to pass texture handles aslong, which works via Dear ImGui's legacy backward-compat path.- Dynamic font texture protocol (
ImGuiBackendFlags_RendererHasTextures) — the new backend contract for on-demand texture creation, updates, and destruction (updateTextures) is not yet implemented in the LWJGL3 backends. The binding falls back to the legacy single-atlas path, which remains fully functional. ImFontBaked— per-size glyph and metric access via the newImFontBakedtype is not yet surfaced. SeveralImFontfields and methods that were moved upstream (Ascent,Descent,FontSize,FindGlyph,GetCharAdvance, etc.) are currently unavailable as a result.- Multi-Select API (
BeginMultiSelect/EndMultiSelect) — not yet surfaced in the Java binding. ImGui.imageWithBg()overloads — not yet fully surfaced.
Migration Notes
Dear ImGui
This release jumps from Dear ImGui 1.90.9 to 1.92.7. Please review the upstream changelogs:
| Before | After | Notes |
|---|---|---|
ImGui.pushFont(font) |
ImGui.pushFont(font, size) |
Pass 0.0f to keep current size |
ImGui.image(...) with tint_col, border_col |
ImGui.imageWithBg(...) |
Params removed from image() |
ImGuiChildFlags.Border |
ImGuiChildFlags.Borders |
Renamed in 1.91.1 |
ImGuiFreeTypeBuilderFlags |
ImGuiFreeTypeLoaderFlags |
Renamed in 1.92 |
ImFontConfig.GlyphExtraSpacing (ImVec2) |
GlyphExtraAdvanceX (float) |
|
ImFontConfig.FontBuilderFlags |
FontLoaderFlags |
|
ImGuiStyle.TabMinWidthForCloseButton |
TabCloseButtonMinWidthSelected / TabCloseButtonMinWidthUnselected |
Split into two fields |
ImPlot
| Before | After | Notes |
|---|---|---|
ImPlot.plotLine(..., flags, offset, stride) |
ImPlot.plotLine(label, xs, ys, spec) |
All Plot* functions now take ImPlotSpec |
ImPlot.setNextLineStyle(...) |
spec.lineColors = ... |
SetNextLineStyle/FillStyle/MarkerStyle removed |
ImPlotMarker_None = 0 |
ImPlotMarker_None = -2 |
ImPlotMarker_Auto = -1 is new default |
If you encounter issues after upgrading, please report them via GitHub Issues.
List of Changes
- Bump Gradle to 9.4.1 and LWJGL to 3.4.1 in #383
- Bump ImPlot to v1.0 in #382
- Bump Dear ImGui from 1.90.9 to 1.92.7 in #385
- Restore
ImGuiColorTextEditsupport with goossens upstream in #389 - Sync LWJGL backends with Dear ImGui upstream (OpenGL3 + GLFW) in #391
- Add SDL3 backend in #392
Contributors
A special thank you to the contributors who made this release possible:
- @phraktle — bumped ImPlot to v1.0 with full API migration and brought Gradle/LWJGL up to date (#382, #383)
- @edoli — restored
ImGuiColorTextEditsupport with the goossens upstream fork (#389)
Thanks
Thanks to all contributors and users for your valuable feedback and support!
You can support the project's development with a donation - your contribution helps keep it growing and improving.
Full Changelog: v1.90.0...v1.92.0