v0.11.0
Upgrade to Dear ImGui v1.92.7 (docking branch) via cimgui docking_inter, refresh cimplot / cimplot3d, regenerate native + import-style WASM bindings, and expand the safe Rust API around the latest ImPlot / ImPlot3D spec-based item styling.
This release also formalizes the repository-owned backend_shim surface in dear-imgui-sys, adds repository-local iOS / Android smoke examples, and simplifies publishing around the Python release scripts.
Highlights
- Upgrade the core stack to Dear ImGui v1.92.7 and refresh the vendored
cimgui/cimplot/cimplot3dsubmodules with regenerated native + WASM bindings. - Introduce the repository-owned
dear-imgui-sys::backend_shimsurface for official backend glue,
including new SDLRenderer3 support and clearer low-level backend ownership. - Expand the ImPlot / ImPlot3D safe APIs around spec-backed item styling,
per-index array styling, color enums, and the remaining builder gaps. - Add repository-local iOS and Android smoke examples covering
dear-imgui-winit + dear-imgui-wgpu,dear-imgui-sdl3 + dear-imgui-wgpu,
and low-level AndroidNativeActivity+ EGL / GLES integration shapes. - Simplify release operations by moving
dear-imgui-build-supportonto the unified
0.11.0train and removing therelease-plzworkflow in favor of the Python publishing scripts.
Breaking Changes
- Core (
dear-imgui-sys)- Replace the provisional
raw_backend::{win32, dx11, android, opengl3}surface with
backend_shim::{win32, dx11, android, opengl3}behindbackend-shim-*feature gates.
Consumers using the old low-level sys surface must migrate to the new repository-owned shim ABI.
- Replace the provisional
- Extensions
dear-imnodes: remove the deprecatedEditorContextmethods that relied on the global current ImNodes context, as well asEditorContext::create/try_create. UseContext::{create_editor_context,try_create_editor_context}andContext::bind_editor(&editor)instead.
Added
- Core (
dear-imgui-rs)- Expose the new Dear ImGui v1.92.7 surface in the safe API with
Ui::tree_node_get_open(),Viewport::debug_name(),StyleVar::SeparatorSize,ButtonFlags::ALLOW_OVERLAP, and updatedMultiSelectFlagsnames/compatibility aliases for the upstreamSelectOnAutorename.
- Expose the new Dear ImGui v1.92.7 surface in the safe API with
- Core (
dear-imgui-sys)- Extend that backend shim surface with feature-gated
backend_shim::sdlrenderer3support for Dear ImGui's official SDLRenderer3 backend, including SDL3 header discovery for both system-provided SDL3 installs andsdl3-sysbuild-from-source outputs (PR #24, thanks @flowkclav).
- Extend that backend shim surface with feature-gated
- Extensions
dear-implot: add safePlotUi::plot_polygon()/PlotBuilder::polygon()wrappers for upstreamPlotPolygon, plus the newPolygonFlags.dear-implot: add unified ImPlot v0.18 spec-backed item styling helpers across allImPlotSpec-backed plot builders viaPlotItemStyle/PlotItemStyled, including direct builder methods such aswith_line_color,with_fill_alpha,with_marker, andwith_size. This closes the high-level Rust API gap where plot item color/alpha styling was available in the C bindings but not exposed consistently by the safe layer (addresses #26, thanks @sstscrypto).dear-implot: addPieChartFlags::NO_SLICE_BORDERplus closure-scopedPlotItemArrayStyle/with_next_plot_item_array_style(...)helpers for the new upstream per-indexImPlotSpecarrays (LineColors,FillColors,MarkerSizes,MarkerLineColors,MarkerFillColors) without introducing dangling pointer hazards into the safe API.dear-implot3d: add unifiedImPlot3DSpec-backed item styling helpers across spec-backed plot builders viaPlot3DItemStyle/Plot3DItemStyled, covering bothplots::*items andPlot3DUibuilders such assurface_f32(),image_by_axes(), andmesh(). Also exposeMarker3D::Autoso the safe API can round-trip ImPlot3D's default automatic marker selection.dear-implot3d: add typedPlot3DColorElementvalues for style colors, including the new axis background slots, plus closure-scopedPlot3DItemArrayStyle/with_next_plot3d_item_array_style(...)helpers for the new upstream per-indexImPlot3DSpecarrays.dear-implot3d: wireItem3DFlagsinto spec-backed plot wrappers/builders viawith_item_flags(...), so commonNO_LEGEND/NO_FITflags can now be composed from the safe API instead of remaining a defined-but-unreachable flag set.
- Backends
dear-imgui-sdl3: add optionalsdlrenderer3-renderersupport and wrapper APIs for the official SDL3 + SDLRenderer3 path, includinginit_for_canvas/canvas_new_frame/canvas_render/shutdown_for_canvas.
- Examples
- Add a standalone repository-local
examples-android/dear-imgui-android-smokeAndroid template that demonstrates the low-leveldear-imgui-rs+dear-imgui-sysroute without introducing a new published crate or changing the workspace's default build matrix. - Add minimal
cargo-apk2packaging metadata to the Android smoke template and verify that it can produce a signed debugNativeActivityAPK foraarch64-linux-android. - Add a repository-local APK packaging helper for the Android smoke template and document release signing plus per-ABI APK packaging while keeping the checked-in smoke path single-ABI and repository-local.
- Add a standalone repository-local
examples-ios/dear-imgui-ios-smokeexample that demonstrates adear-imgui-winit + dear-imgui-wgpuiOS integration shape, including XCFramework packaging helpers and a checked-in Xcode host stub for simulator/device validation. - Add a standalone repository-local
examples-ios/dear-imgui-ios-sdl3-smokeexample that demonstrates adear-imgui-sdl3 + dear-imgui-wgpuiOS integration shape, including a checked-in Xcode host stub and an SDL3 framework helper that can consume app-owned framework artifacts or buildSDL3.frameworkfrom the upstreamsdl3-srcsource tree. - Add an
sdl3_sdlrendererexample plus thesdl3-sdlrenderer3example feature for Dear ImGui on SDL3 + SDL_Renderer.
- Add a standalone repository-local
Changed
- Core (
dear-imgui-sys)- Upgrade vendored
cimguidocking_interto Dear ImGui v1.92.7 and regenerate native + import-style WASM bindings.
- Upgrade vendored
- Core (
dear-imgui-rs)- Keep backend shim feature gates in
dear-imgui-sysonly; the safe crate does not re-export backend-specific toggles until it owns corresponding safe wrappers.
- Keep backend shim feature gates in
- Extensions
dear-implot-sys/dear-implot3d-sys: refresh the vendoredcimplot/cimplot3dsubmodules and regenerate native + WASM bindings.dear-implot/dear-implot3d: initialize the new upstreamImPlotSpec/ImPlot3DSpecarray fields in the safe wrapper defaults so spec-backed plots remain ABI-correct after the latestcimplot/cimplot3dupdates.dear-implot3d: adapt the safemesh()wrapper to the new typedImPlot3D_PlotMesh_*Ptrentry points while preserving the existing Rust-facing API shape.dear-implot: standardize plot-item styling soLinePlot,ScatterPlot,BarPlot,HistogramPlot,HeatmapPlot,ErrorBarsPlot,ShadedPlot,StairsPlot,StemPlot,TextPlot, and otherImPlotSpec-based builders now share the same styling surface instead of mixing per-type convenience methods with raw style-object-only paths.dear-implot: letShadedBetweenPlotconfigureoffset/stridelike other spec-backed line-style builders, and remove an outdated comment that still described the old pre-wrapper state.
- Core (
dear-imgui-sys)- Link
GLESv3for the Android OpenGL3 backend shim so downstream AndroidNativeActivitybinaries can load successfully before the application creates its own EGL / GLES context. - Expand the crate and module documentation around
backend_shimso the repository-owned shim ABI, Android low-level route, and ownership split with application packaging are explicit in the main docs.
- Link
- Backends
- Re-verify the existing backend crates against the Dear ImGui v1.92.7 / cimgui refresh. No additional backend API surface changes were required for this upstream bump.
dear-imgui-wgpu: add feature-gated support forwgpuv29, makewgpu-29the default backend path, and keepwgpu-28/wgpu-27as explicit compatibility features.dear-imgui-sdl3: keep SDL3-specific wrapper/build ownership in the backend crate, but route the optional official OpenGL3 renderer path throughdear-imgui-sys::backend_shim::opengl3instead of compiling a second local OpenGL3 shim layer.dear-imgui-sdl3: stop forcingsdl3/build-from-sourceon Android from the backend crate itself. Android SDL3 acquisition now remains application-owned: consumers may either provideSDL3_INCLUDE_DIRor opt intosdl3/build-from-sourcein their own dependency graph.dear-imgui-sdl3: on Apple targets, keep SDL3 acquisition application-owned instead of forcingsdl3/build-from-sourcefrom the backend/examples crates. macOS continues to use the system/Homebrew SDL3 path, while iOS is now documented as an app-owned framework or app-owned build-from-source route.
- Examples
- Upgrade
examples-android/dear-imgui-android-smokefrom a startup-only smoke path to a minimal NativeActivity + EGL / GLES3 render loop that displays Dear ImGui windows on-device while preserving app-owned Android packaging and lifecycle glue, without turning the template into a published runtime crate. - Switch the Android smoke APK helper from a Windows-only PowerShell script to a cross-platform Python script, and tune the README screenshot presentation for GitHub rendering.
- Document the Apple example split explicitly: keep desktop/native
cargo rundemos inexamples/, and keep iOS/Android smoke templates in top-levelexamples-ios//examples-android/folders because they require host projects, packaging steps, or mobile-specific tooling.
- Upgrade
- Docs
- Add Apple integration notes that explain how to use the repository-owned iOS examples as reference/teaching material without presenting them as a turn-key mobile runtime layer.
- Add platform notes and README navigation for the new iOS/Android smoke templates, including a checked-in iOS Simulator screenshot for the SDL3 iOS smoke path.
- Tooling
- Remove the
release-plzrelease path and keep the repository's Python publishing scripts as the single source of truth for release automation and publish order. - Fix the
dear-imgui-test-engine-syspregenerated-bindings path handling so the standard bindings refresh flow works from the workspace root, and align the repository'simgui_test_engineupdate defaults with upstreammain.
- Remove the
Fixed
- Core (
dear-imgui-rs)- Implement the previously placeholder
Ui::set_window_font_scale()wrapper on top of Dear ImGui's exposed internal window/font-size state, so legacy per-window font scaling now works from the safe API instead of remaining a no-op. - Implement
Ui::is_any_column_resizing()by reading the current window's legacy columns state, so it no longer always reportsfalse. - Route
PlatformIo::{set_platform_get_window_pos*,set_platform_get_window_size*}through cimgui's compatibility helpers instead of installing directImVec2-returning function pointers, fixing the ABI mismatch on platforms where thoseImGuiPlatformIOcallback slots are not C-compatible. - Add the missing
Context::platform_io()shared accessor plus the remaining smallPlatformIo/Viewportwrapper gaps around handler clearing, window DPI / changed-viewport callbacks, viewport centers, and raw platform handles, so this multi-viewport surface no longer forces callers down tosysfor those basic operations.
- Implement the previously placeholder
- Extensions
dear-implot: wireErrorBarsPlot::horizontal()toImPlotErrorBarsFlags_Horizontal, add matchinghorizontal()pluswith_offset()/with_stride()onAsymmetricErrorBarsPlot, and route simple line/scatter/shaded/stairs/stems builders through the existing single-array ImPlot C bindings instead of allocating temporary X-coordinate buffers.dear-implot: finish aligning the remainingSimple*Plotbuilders with their full-builder counterparts by threading through the relevant plot/item flags on simple line/scatter/stem/shaded/error-bar/bar-group helpers as well.dear-file-browser: keep the built-in view/column controls aligned with thumbnail backend availability, so the standard toolbar, IGFD-style chrome, andColumns...popup no longer offer thumbnail-only toggles when no thumbnail backend is attached.dear-imgui-test-engine-sys: refresh the vendoredimgui_test_enginesubmodule to the latest upstreammaincompatible with the Dear ImGui v1.92.7 upgrade and regenerate pregenerated bindings.
CI
- Add an
apple-mobile-checkjob that validates the documented iOS integration surface withcargo checksentinels for device and simulator targets, including the repository-local iOS smoke templates. - Align publish/package verification with the new
dear-imgui-build-supportdependency ordering: package the helper crate first and usecargo package --listfor the pre-releasedear-imgui-syssmoke check so CI can validate package contents before the helper crate is indexed on crates.io.
Dependencies
- Workspace
- Upgrade direct dependency baselines to
bitflags2.11,winit0.30.13,glow0.17,wasm-bindgen0.2.117, andbytemuck1.25. - Upgrade
dear-imgui-ash's optionalgpu-allocatorintegration to 0.28. - Upgrade ancillary direct dependencies including
ureq3.3 andregex1.12 where used in workspace tooling/extensions. - Move
dear-imgui-build-supportinto the unified0.11.0release train and update all*-syscrates to depend on0.11. - Bump the default
wgpubaseline to v29.
- Upgrade direct dependency baselines to