Updated to latest ImGui / CImGui version: : v1.91.6dock (2024/12)
This project is my experiment project to use ImGui, ImPlot, futhark and so on with Nim language.
- Notice
It may be better to use the mainstream project nimgl/imgui (ImGui v1.85)
,updated project nimgl-imgui (ImGui v1.89.9) ,sub project nim_implot and test project nimgl_test,
or https://github.com/daniel-j/nimgl-imgui (ImGui v1.91.1)
See example project ImGuin_examples
-
Nim-2.0.14 or later
-
Windows10 or later
MSys2/MinGW command line tools (Unix tools), make, cp, rm, git, ...etc -
Linux: Ubuntu / Debian families
$ sudo apt install gcc g++ make git $ sudo apt install xorg-dev libopengl-dev libgl1-mesa-dev $ sudo apt install libglfw3 libglfw3-dev libsdl2-dev
nimble uninstall imguin # Remove old versions if exists.
nimble install https://github.com/dinau/imguin
Library name | ||
---|---|---|
v | ImGui / CImGui | Base library |
v | ImPlot / CImPlot | |
v | ImNodes / CImNodes | |
v | ImGuizmo / CImGuizmo | |
v | ImGui-Knobs/ CImGui-Knobs | |
v | ImGuiFileDialog / CImGuiFileDialog | |
... | ... | ... |
x | ImGuiColorTextEdit / cimCTE | 2025 ? |
GLFW | SDL2 | SDL3 | ||
---|---|---|---|---|
OpenGL3 backend |
v | v | v | Done. |
SDL2 backend |
- | v | - | Done. 2025 |
SDL3 backend |
- | - | v | Done. 2025 |
-
Prerequisite
-
Windows10 or later Clang/LLVM refer to Futhark installation.
nimble install futhark
It must exist
libclang.a
file in the library path (e.g. inc:\llvm\lib
). -
Linux Debian / Ubuntu families
sudo apt install clang-16 nimble install --passL:"-L/usr/lib/llvm-16/lib" futhark
Important Notice: Confirm Futhark version is v0.13.7 at this time.
nimble dump futhark
-
-
Update / Downgrade ImGui/CImGui
-
Compose development folders
First move to your working folder you like, thenmkdir imguin_dev cd imguin_dev git clone https://github.com/dinau/imguin cd imguin
-
Clone ImGui/CImGui etc. sources at once forever
pwd imguin make clonelibs
Cloned libraries are under
../libs/
folder -
Recursively update the sources using git
Pull
orfetch
in the each library folder,
../libs/cimgui
../libs/cimguizmo
../libs/cimnodes
../libs/cimplot
... snip ... -
Checkout arbitrary version with git command in the respective folder
-
Specify your
Clang
include path toClangIncludePath
inimguin/src/imguin/cimgui.nim
. -
Generate the definition file uisng Futhark,
pwd imguin make gen
-
Install updated files
Properly edit the version info etc inimguin.nimble
file, thenpwd imguin nimble uninstall imguin # Remove old versions if it exists. nimble install
That's all.
Repeat from3.
if you'd like to update or downgrade to other version.
-
-
Confirmed version
Windows OS is all OK.ImGui/CImGui Ver. ImGuin Ver. Date Linux Debian Family (3) 1.91.6dock 1.91.6.10 2025/01 OK 1.91.4dock 1.91.4.2 2024/12 OK 1.91.3dock 1.91.3.1 2024/10 ? 1.91.2dock 1.91.2.0 2024/10 ? 1.91.1dock 1.91.1.2 2024/09 Except ImNodes example 1.91.0dock 1.91.0.0 2024/08 ? 1.90.4dock 1.90.4.2 2024/02 Use nim-2.0.2 1.89.9dock 1.89.9.8 2023/12 OK (1)(2) (1): Except imnodes and SDL2 example.
(2): Works well only if it is compiled debug mode.
(3) Dedian12 Bookworm, Linux Mint 22 , Ubuntu familiy etc.
Whether can it useClosed. Only be static link.cimgui.dll
? (Now it can only be static link)Easier compilation for SDL2 app. (2024/09) Done.Added: ImNodes/CImNodes(2023/10) DoneUnfortunately ImGui 1.89.7 dosn't work well at this moment.(2023/07)Done. (2023/08)Whether can it doDone (2023/09) (#Issue 13)nimble install imguin
?Add Font Awesome (Icon Font) demo.Done (2023/04).Can it compile with MSVC (--cc:vcc) ?Done. Except SDL2 demo. (2023/03), TODO (2024/09)Can it compile with Clang (--cc:clang) ?Done. (2023/03)Add SDL2 example.Done. examples/sdl2_opengl3 (2023/03)
- First step is done. (2023/03)
Windows11 (main)
-
Nim Compiler Version 2.2.0
-
GCC (Rev1, Built by MSYS2 project) 14.2.0
pacman -S mingw-w64-ucrt-x86_64-gcc
-
Clang version 19.1.6
pacman -S mingw-w64-ucrt-x86_64-clang
-
Visual Studio C++/C 2022
-
git version 2.46.0.windows.1
-
SDL2.dll: 2.30.7
-
Make: GNU Make 4.4.1
-
MSys2/MinGW tools
Linux Mint 22
- Nim Compiler Version 2.2.0
- gcc 13.2.0
- SDL2: 2.30.0
- make: GNU Make 4.3
- git version 2.43.0
-
File Dialog
-
Other
-
GUI
-
Graphical
-
Similar project ImGui / CImGui
Language Project Nim Compiler ImGuin, Nimgl_test, Nim_implot Lua Script LuaJITImGui Zig, C lang. Compiler Dear_Bindings_Build Zig Compiler ImGuinZ NeLua Compiler NeLuaImGui Python Script DearPyGui for 32bit WindowsOS Binary -
SDL Game tutorial Platfromer
Language Project Nim Compiler Nim-Platformer/ sdl3_nim LuaJIT Script LuaJIT-Platformer Nelua Compiler NeLua-Platformer Zig Compiler Zig-Platformer -
Other link2
- https://github.com/SpartanJ/SOIL2
SOIL2 is a tiny C library used primarily for uploading textures into OpenGL.
- https://github.com/SpartanJ/SOIL2
-
Memo
error: assignment to 'char **' from incompatible pointer type 'const char * const*' [-Wincompatible-pointer-types]
type ConstCstring {.importc: const char *.} = cstring