Turtle Dove 192b5c995b ci: Fix WASM build — sed the Makefile instead of passing LDFLAGS on CLI
The make command was failing because LDFLAGS+='' doesn't properly override
the Makefile's appended flags. Instead, use sed to:
1. Replace shell_minimal.html with shell_imgui_xl.html
2. Uncomment the -sSINGLE_FILE line

Also added keep_files: true and destination_dir: wasm to the deploy step
so the existing gh-pages content is preserved.
2026-07-14 23:29:27 -05:00
2026-01-03 01:07:58 +01:00

imgui_xl

Dear ImGui XL — An enhanced community fork of Dear ImGui, focused on backend improvements, CI/CD fixes, sensors, and extended examples.

License: MIT Upstream Live Demo PRs

Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer-agnostic, and self-contained (no external dependencies).

Live Demos

Demo Description Link
Showcase Landing page with all demos + PR list turtle-pb.github.io/imgui_xl
Echonation Visual 5-mode audio-reactive canvas demo echonation.html
Pixel OS Model Interactive Pixel 8 Pro phone simulator pixel_os_demo.html

Upstream Contributions

This fork tracks upstream and contributes back via PRs:

PR Issue Description Status
#9467 #8878 Android CI: Pin Gradle 9.4.1 via setup-gradle action (no binaries) Open
#9468 #9390 Vulkan: Fixed use-after-free in multi-viewport dynamic rendering Open
#9469 #3446 Android: Move JNI keyboard/clipboard into backend, add sensors + display Open

Backend Improvements (PR #9469)

  • JNI keyboard/clipboard — Moved ~120 lines of JNI boilerplate from the example into the backend. App code is now just Init → Loop → Shutdown.
  • 8 sensor types — Accelerometer, gyroscope, magnetometer, light, proximity, pressure, humidity, ambient temperature via NDK ASensor API (no JNI).
  • Display metrics — DPI, density, xdpi/ydpi, refresh rate, orientation queried via JNI. Auto-scales ImGui style to actual device density.
  • Clipboard — Full clipboard support via JNI to Android ClipboardManager.
  • Zero binaries — No jar, no wrapper, no .gitignore changes.

CI Fix (PR #9467)

  • Uncommented and updated setup-gradle@v6 action to pin Gradle 9.4.1 (required by AGP 9.2.0).
  • Single 4-line change to build.yml, no binaries added.

Vulkan Fix (PR #9468)

  • Deep-copy SurfaceFormat.format into persistent buffer in ImGui_ImplVulkan_CreateWindow() to prevent use-after-free when viewport is destroyed.
  • Follows the same deep-copy pattern already used in CreateMainPipeline().

Sync Status

Branch Tracks Status
master upstream/master Synced
docking upstream/docking Synced

Quick Start

# Clone
git clone https://github.com/Turtle-PB/imgui_xl.git
cd imgui_xl

# Build example_null (no backend dependencies needed)
# Windows (MinGW)
mingw32-make -C examples/example_null

# Windows (MSVC)
cd examples\example_null
.\build_win32.bat

# Linux/macOS
cd examples/example_null
make

Contributing

See CONTRIBUTING.md for guidelines on submitting issues, PRs, and syncing with upstream.

License

MIT License — see LICENSE.txt for details.

Credits

Dear ImGui is developed by Omar Cornut and every direct or indirect contributor to the GitHub repository.

Echonation visuals inspired by @Echonation. Fork by Paul Adcock (Turtle-PB).

Description
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Readme 1.1 GiB
Languages
C++ 73.3%
C 24.1%
Objective-C++ 2.2%
Objective-C 0.2%
Python 0.1%