This project aims to generate go wrapper for Dear ImGui.
It comes with a default backend with GLFW 3.3 and OpenGL 3.2.
It works on macOS(arm64/x86), windows(x64), Arch Linux/KDE and Fedora Workstation 36, idealy other linux GUI should works but I don't have a linux machine to test it. Check out examples
, cd in and go run .
.
Integrated rlImGui(https://github.com/raylib-extras/rlImGui) into cimgui-go, check out examples/main.go
.
- Use cimgui's lua generator to generate function and struct definition as json.
- Generate proper go code from the definition (via manual crafted go program
/cmd/codegen
). - Use the backend implementation from imgui (currently glfw and opengl3).
- Use github workflow to compile cimgui and glfw to static lib and place them in /lib folder for further link.
- For functions, 'Im/ImGui/ig' is trimmed.
- If function comes from
imgui_internal.h
,Internal
prefix is added. - Struct fields (if any exported) are prefixed with word
Field
Currently most of the functions are generated, except memory related stuff (eg. memory allocator, storage management, etc...). If you find any function is missing, report an issue.
Install GNU make and run make
to re-generate bunding.
To update to the latest version of dependencies, run make update
.
After doing this, commit changes and navigate to GitHub.
In Actions tab, manually trigger workflows for each platform.
cimgui/
directory holds C binding for C++ Dear ImGui libraries- generator bases on
cimgui/{package_name}_templates
and generates all necessary GO/C code libs/
contains pre-built shared libraries.cimgui.go
includes and uses to decrease building time.