Skip to content

dinau/imguin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImGuin

alt alt

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.

Screen shot


See example project ImGuin_examples

alt

Prerequisites


  • 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

Install


nimble uninstall imguin  # Remove old versions if exists. 
nimble install https://github.com/dinau/imguin

Available libraries


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 ?

Frontends and Backends


GLFW SDL2 SDL3
OpenGL3
backend
v v v Done.
SDL2
backend
- v - Done. 2025
SDL3
backend
- - v Done. 2025

Update / Downgrade Dear ImGui and CImGui


  • 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.13.7 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.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.

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.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

Other link