Turtle Dove 1cd495b522 feat: Add Go (cgo) bindings for Dear ImGui + example
bindings/go/:
- imgui_bridge.h/.cpp: Thin C API bridge (extern C) wrapping C++ ImGui
- imgui.go: Go cgo package (CreateContext, NewFrame, Begin, Button,
  SliderFloat, SliderInt, Checkbox, ColorEdit3, Text, Combo, etc.)
- go.mod: Module definition
- README.md: Full docs with usage, building, and API reference

examples/example_golang/:
- main.go: Null-mode example showing ImGui from Go
- go.mod: Module with replace directive for local bindings
- Makefile: Build/run/clean targets

Go 1.26.5 verified working on this host. CGO_ENABLED=1 required
(plus a C++ compiler like g++ for the bridge compilation).
2026-07-14 23:15:33 -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%