Skip to content

v1.92.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Apr 06:57
· 7 commits to main since this release
55fb8b0

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

    • implot extension is updated from a 2023-era snapshot to the official v1.0 release.
    • This is a breaking release: all Plot* functions now accept ImPlotSpec instead of trailing (flags, offset, stride) parameters. See Migration Notes below.
    • New APIs: PlotPolygon, PlotBubbles, NextMarker, per-index colors and marker sizes via ImPlotSpec array fields.
    • Removed: SetNextLineStyle, SetNextFillStyle, SetNextMarkerStyle, SetNextErrorBarStyle — styling is now done through ImPlotSpec fields directly.
    • Contributed by @phraktle — thank you!
  • ImGuiColorTextEdit Restored

    • ImGuiColorTextEdit extension 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 ImGuiImplSdl3 and ImGuiImplSdlGpu3, shipped as part of the imgui-java-lwjgl3 module.
    • Supports single-viewport rendering with full event forwarding: mouse, keyboard, gamepads, clipboard.
    • imgui-app users can switch to SDL3 with a single line in configure():
      config.setBackend(Backend.SDL);
      GLFW + OpenGL3 remains the default (Backend.GLFW).
    • Note: multi-viewport support is not yet implemented in the SDL3 backend and will be added in a future release.
  • LWJGL3 Backends Synchronized

    • ImGuiImplGl3 and ImGuiImplGlfw have 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:

  • ImTextureRef and ImTextureData — the new upstream types for managing GPU textures dynamically are not yet wrapped. Java callers continue to pass texture handles as long, 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 new ImFontBaked type is not yet surfaced. Several ImFont fields 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 ImGuiColorTextEdit support 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 ImGuiColorTextEdit support 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.

ko-fi

Full Changelog: v1.90.0...v1.92.0