Turtle Dove c6bcb4e838 docs: Update README with 3 merged PRs, WASM demo, Go bindings, Widget Playground
- PR status table now shows 3 merged (brightgreen badge)
- Added Live WASM demo link (actual ImGui in browser)
- Added Widget Playground demo link
- Added Go bindings section
- Updated bug fix summary with merged fixes
2026-07-16 08:38:38 -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 Merged

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
Live ImGui (WASM) Actual Dear ImGui compiled to WebAssembly via Emscripten wasm/index.html
Showcase Landing page with all demos + PR list turtle-pb.github.io/imgui_xl
Echonation Visual 5-mode audio-reactive canvas demo echonation.html
Widget Playground IDE-style demo with hierarchy, properties, console widgets_playground.html
Pixel OS Model Interactive Pixel 8 Pro phone simulator with working browser 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 MERGED ✅
#9473 #8802 OpenGL2/3: Backup and restore GL_UNPACK state in UpdateTexture() MERGED ✅
#9474 #6627 Android: Clear mouse pos on touch release + SDL2: Restore StartTextInput MERGED ✅
#9475 — OpenGL2: Defer texture destruction until UnusedFrames > 0 Open
#9468 #9390 Vulkan: Fixed use-after-free in multi-viewport dynamic rendering Closed
#9469 #3446 Android: Move JNI keyboard/clipboard into backend, add display metrics Open (under review)

Bug Fixes Summary

Merged upstream (3 PRs):

  • Android CI — Pinned Gradle 9.4.1 via setup-gradle action, no binaries (#9467)
  • OpenGL GL_UNPACK state — Backup/restore GL_UNPACK_ROW_LENGTH and GL_UNPACK_ALIGNMENT in UpdateTexture() to prevent caller state corruption (#9473)
  • Android touch release — Clear mouse position on AMOTION_EVENT_ACTION_UP so buttons don't stay hovered (#6627)
  • SDL2 soft keyboard — Restored SDL_StartTextInput()/SDL_StopTextInput() under #ifdef __ANDROID__ for on-screen keyboard (#7636)

Open PRs (2):

  • OpenGL2 texture destroy — Defer destruction until UnusedFrames > 0, matching all other backends (#9475)
  • Android backend cleanup — Move JNI keyboard/clipboard into backend, add display metrics, breaking change to Init() signature (#9469, under review by Omar)

Go Bindings

This fork includes Go (cgo) bindings for Dear ImGui:

bindings/go/
  imgui_bridge.h/.cpp  — Thin C API bridge (extern "C")
  imgui.go             — Go cgo wrapper package
  README.md            — Full documentation

examples/example_golang/
  main.go              — Null-mode example
  Makefile             — Build targets

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%