diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..425436d59 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ +# Contributing to imgui_xl + +First and foremost: **Dear ImGui** is developed by [Omar Cornut](https://github.com/ocornut) and the community at [ocornut/imgui](https://github.com/ocornut/imgui). This fork (`imgui_xl`) exists to facilitate community contributions, test improvements, and develop backend fixes before submitting upstream PRs. + +## How to Contribute + +### Reporting Issues + +1. **Check upstream first** — Most issues belong in [ocornut/imgui/issues](https://github.com/ocornut/imgui/issues). Only open issues here if they're specific to this fork's modifications. +2. **Use the issue tracker** — Provide a Minimal, Complete, and Verifiable Example (MCVE). +3. **Include version info** — Branch (master/docking), commit hash, backend, compiler, OS. + +### Submitting Pull Requests + +1. **Fork this repo** and create a feature branch from `master` or `docking` (match the upstream branch you're targeting). +2. **Keep PRs focused** — One fix/feature per PR. Small PRs are reviewed faster. +3. **Follow the existing code style** — Dear ImGui has a specific style. Read the [upstream FAQ](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md) and [CONTRIBUTING.md](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md). +4. **Test your change** — At minimum, build `example_null` to verify compilation: + ```bash + # Windows (MinGW) + mingw32-make -C examples/example_null + + # Windows (MSVC) + cd examples\example_null + call "C:\Program Files\Microsoft Visual Studio\...\VC\Auxiliary\Build\vcvars64.bat" + .\build_win32.bat + ``` +5. **Write a clear commit message** — Use the format: `Area: Description. (#issue)` (e.g., `Vulkan: Fixed use-after-free in multi-viewport dynamic rendering. (#9390)`) + +### Areas Needing Help + +Check the [upstream "help wanted" issues](https://github.com/ocornut/imgui/issues?q=is%3Aopen+label%3A%22help+wanted%22) for areas where contributions are needed. Current focus areas in this fork: + +- **Backend improvements** — Vulkan, DirectX, Metal backends +- **CI/CD fixes** — Android build, cross-platform testing +- **Documentation** — Examples, tutorials, backend guides + +### Syncing with Upstream + +This fork tracks `ocornut/imgui:master` and `ocornut/imgui:docking`. To sync: + +```bash +git remote add upstream https://github.com/ocornut/imgui.git +git fetch upstream +git checkout master +git merge upstream/master +git push origin master +``` + +### Branch Strategy + +| Branch | Tracks | Purpose | +|--------|--------|---------| +| `master` | `upstream/master` | Stable, synced with upstream master | +| `docking` | `upstream/docking` | Synced with upstream docking branch | +| `fix/*` | — | Bug fix branches for PRs | +| `enhance/*` | — | Enhancement/feature branches | + +## License + +All contributions are subject to the [MIT License](LICENSE.txt), same as upstream Dear ImGui. + +## Code of Conduct + +Be respectful, constructive, and patient. This is a community effort. diff --git a/README.md b/README.md new file mode 100644 index 000000000..3f536612d --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# imgui_xl + +**Dear ImGui XL** — An enhanced community fork of [Dear ImGui](https://github.com/ocornut/imgui), focused on backend improvements, CI/CD fixes, and extended examples. + +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Upstream](https://img.shields.io/badge/upstream-ocornut%2Fimgui-blue)](https://github.com/ocornut/imgui) +[![Branch: master](https://img.shields.io/badge/branch-master-green)](https://github.com/Turtle-PB/imgui_xl/tree/master) + +> 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). + +## Why This Fork? + +This fork (`imgui_xl`) serves as a staging ground for community contributions to Dear ImGui. It tracks upstream `master` and `docking` branches closely and adds: + +- **Backend fixes** — Vulkan use-after-free fix for multi-viewport dynamic rendering (#9390) +- **CI/CD improvements** — Android build fixed via pinned Gradle wrapper (#8878) +- **Enhanced metadata** — Topics, issues, and discussions enabled for community engagement +- **Contributing guide** — Clear path for new contributors + +## Sync Status + +This fork is kept in sync with [ocornut/imgui](https://github.com/ocornut/imgui): + +| Branch | Tracks | Status | +|--------|--------|--------| +| `master` | `upstream/master` | ✅ Synced | +| `docking` | `upstream/docking` | ✅ Synced | + +## Active Contribution Branches + +| Branch | Issue | Description | +|--------|-------|-------------| +| `fix/vulkan-dynamic-rendering-use-after-free` | [#9390](https://github.com/ocornut/imgui/issues/9390) | Fix use-after-free in Vulkan multi-viewport dynamic rendering | +| `fix/android-ci-gradle-wrapper` | [#8878](https://github.com/ocornut/imgui/issues/8878) | Pin Gradle 9.4.1 via wrapper for AGP 9.2.0 compatibility | + +## Quick Start + +```bash +# 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](CONTRIBUTING.md) for guidelines on submitting issues, PRs, and syncing with upstream. + +## Upstream Resources + +- **Dear ImGui Homepage**: [github.com/ocornut/imgui](https://github.com/ocornut/imgui) +- **Documentation**: [docs/](docs/) directory +- **FAQ**: [docs/FAQ.md](docs/FAQ.md) +- **Wiki**: [github.com/ocornut/imgui/wiki](https://github.com/ocornut/imgui/wiki) +- **Issues**: [github.com/ocornut/imgui/issues](https://github.com/ocornut/imgui/issues) + +## License + +MIT License — see [LICENSE.txt](LICENSE.txt) for details. + +## Credits + +Dear ImGui is developed by [Omar Cornut](https://github.com/ocornut) and every direct or indirect [contributor](https://github.com/ocornut/imgui/graphs/contributors) to the GitHub repository.