No description
Find a file
high on tantor 0cad307dc3 Fix Dead Link
Fixed dead link for "ImGui File Dialogs - CLI and Client Library". My old account I deleted when my email got hacked it caused me to overreact and delete all my online accounts. New links added.
2025-11-29 17:34:15 +09:00
src updated: Der ImGui / CImGui to 1.92.4dock 2025-11-02 11:45:24 +09:00
tests updated: Der ImGui / CImGui to 1.92.4dock 2025-11-02 11:45:24 +09:00
.gitattributes .gitattributes test 2025-09-20 22:21:25 +09:00
.gitignore added: ImGuiTextSelect / CImGuiTextSelect library 2025-09-14 21:44:22 +09:00
.gitmodules fixed: nimble install error. 2024-07-13 19:50:16 +09:00
imgui.ini added: ImSpinner / CimSpinner and some refactors 2025-02-11 14:58:33 +09:00
imguin.nimble updated: Der ImGui / CImGui to 1.92.4dock 2025-11-02 11:45:24 +09:00
LICENSE Initial commit 2023-03-03 17:46:13 +09:00
Makefile README.md 2025-10-26 19:25:35 +09:00
README.md Fix Dead Link 2025-11-29 17:34:15 +09:00

ImGuin

alt alt

Updated to latest Dear ImGui / CImGui version: : v1.92.4 dock (2025/11)

This project is Dear ImGui wrapper library for Nim language 1.

Screenshot


Note: First see examples project ImGuin_examples

tests folder

tglfw_opengl3.nim

alt

Dear ImGui + Naylib(Raylib) + rlImgui example

rlimgui_basic

alt

Prerequisites


  • Nim-2.2.4 or later

  • Windows11 or later
    MSys2/MinGW command line tools (Unix tools), make, cp, rm, git, ...etc

    pacman -S mingw-w64-ucrt-x86_64-glfw make
    
  • Linux: Ubuntu / Debian families

    $ sudo apt install gcc g++ make git curl xz-utils
    $ sudo apt install lib{opengl-dev,gl1-mesa-dev,glfw3-dev,xcursor-dev,xinerama-dev,xi-dev,sdl2-dev} 
    
    • Install nim

      curl https://nim-lang.org/choosenim/init.sh -sSf | sh
      

      You must now ensure that the Nimble bin dir is in your PATH. Place the following line in the ~/.profile or ~/.bashrc file. export PATH=/home/username/.nimble/bin:$PATH

Install


nimble refresh
nimble uninstall imguin  # Remove old versions if exists. 
nimble install imguin

Available libraries


Library name / C lang. wrapper

Additional examples

Frontends and Backends


GLFW SDL2 SDL3
OpenGL3 backend v v v
SDL2 backend v
SDL3 GPU / Renderer backend v
Vulkan backend WIP

Update / Downgrade Dear ImGui and CImGui by yourself


  • Prerequisite

    1. Windows10 or later Clang/LLVM refer to Futhark installation.

      nimble install futhark
      

      It must exist libclang.a file in the library path (e.g. in c:\llvm\lib).

    2. 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.15.0 at this time.

    nimble dump futhark
    
  • Update / Downgrade ImGui/CImGui

    1. Compose development folders
      First move to your working folder you like, then

      mkdir imguin_dev
      cd imguin_dev
      git clone https://github.com/dinau/imguin
      cd imguin
      
    2. Clone ImGui/CImGui etc. sources at once forever

      pwd
      imguin
      make clonelibs
      

      Cloned libraries are under ../libs/ folder

    3. Recursively update the sources using git Pull or fetch in the each library folder,
      ../libs/cimgui
      ../libs/cimguizmo
      ../libs/cimnodes
      ../libs/cimplot
      ... snip ...

    4. Checkout arbitrary version with git command in the respective folder

    5. Specify your Clang include path to ClangIncludePath in imguin/src/imguin/cimgui.nim.

    6. Generate the definition file uisng Futhark,

      pwd
      imguin
      make gen
      
    7. Install updated files
      Properly edit the version info etc in imguin.nimble file, then

      pwd
      imguin
      nimble uninstall imguin  # Remove old versions if it exists. 
      nimble install 
      

      That's all.
      Repeat from 3. 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.92.4 dock 1.92.4.0 2025/11 OK
    1.92.3 dock 1.92.3.0 2025/09 OK
    1.92.2b dock 1.92.2.1 2025/09 OK
    1.92.2b dock 1.92.2.0 2025/08 OK
    1.92.0 dock 1.92.0.2 2025/08 OK
    1.92.0 dock 1.92.0.1 2025/07 OK
    1.91.9b dock 1.91.9.4 2025/06 OK
    1.91.8dock 1.91.8.2 2025/03 OK
    1.91.6dock 1.91.6.15 2025/01 (4)
    1.91.4dock 1.91.4.2 2024/12 OK
    1.91.3dock 1.91.3.1 2024/10 (4)
    1.91.2dock 1.91.2.0 2024/10 (4)
    1.91.1dock 1.91.1.2 2024/09 Except ImNodes example
    1.91.0dock 1.91.0.0 2024/08 (4)
    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) Dedian / Ubuntu familiy.
    (4) Doesn't check, but probably will work well.

TODO


  1. Whether can it use cimgui.dll ? (Now it can only be static link) Closed. Only be static link.
  2. Easier compilation for SDL2 app. (2024/09) Done.
  3. Added: ImNodes/CImNodes (2023/10) Done
  4. Unfortunately ImGui 1.89.7 dosn't work well at this moment.(2023/07) Done. (2023/08)
  5. Whether can it do nimble install imguin ? Done (2023/09) (#Issue 13)
  6. Add Font Awesome (Icon Font) demo. Done (2023/04).
  7. Can it compile with MSVC (--cc:vcc) ? Done. Except SDL2 demo. (2023/03), TODO (2024/09)
  8. Can it compile with Clang (--cc:clang) ? Done. (2023/03)
  9. Add SDL2 example. Done. examples/sdl2_opengl3 (2023/03)
  • First step is done. (2023/03)

My tools version


Windows11 (main)

  • Nim Compiler Version 2.2.4
  • GCC (Rev1, Built by MSYS2 project) 15.2.0
  • Visual Studio C++/C 2022
  • git version 2.46.0.windows.1
  • Make: GNU Make 4.4.1
  • MSys2/MinGW tools

Linux Debian 13

  • Nim Compiler Version 2.2.4
  • gcc 14.2.0
  • make: GNU Make 4.4.1

Language Project
Lua Script LuaJITImGui
NeLua Compiler NeLuaImGui / NeLuaImGui2
Nim Compiler ImGuin, Nimgl_test, Nim_implot
Python Script DearPyGui for 32bit WindowsOS Binary
Ruby Script igRuby_Examples
Zig, C lang. Compiler Dear_Bindings_Build
Zig Compiler ImGuinZ
  • SDL Game tutorial Platfromer

    ald

Language SDL Project
LuaJIT Script SDL2 LuaJIT-Platformer
Nelua Compiler SDL2 NeLua-Platformer
Nim Compiler SDL3 / SDL2 Nim-Platformer-sdl2/ Nim-Platformer-sdl3
Ruby Script SDL3 Ruby-Platformer
Zig Compiler SDL2 Zig-Platformer
  • Other link2

  • Memo

    error: assignment to 'char **' from incompatible pointer type 'const char * const*' [-Wincompatible-pointer-types]
    
    type ConstCstring {.importc: const char *.} = cstring
    

Notes:

  • Using ImPlot3D / ImPlot with Nim
  • Nim + ImGui + ImPlot3D / ImPlot demo
  • Build with ImPlot3D / ImPlot
  • ImPlot3D integration example
  • This project builds and runs Dear ImGui + ImPlot3D / ImPlotusing Nim.
  • ImPlot3D is compiled from source (implot3d.h / implot3d.cpp)
  • ImPlot is compiled from source (implot.h / implot.cpp)

  1. 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) ↩︎