Обновлено до последней версии imgui/cimgui :: v1.91.6dock (2024/12)
Этот проект является моим экспериментальным проектом по использованию языка NIM, IMGUI, IMPOT, FUTHARK и т. Д.
Nim-2.0.14 или более поздней версии
Windows10 или позже
Инструменты командной строки MSYS2/Mingw (инструменты Unix), Make, CP, RM, GIT, ... и т.д.
Linux Mint 22 (или семьи Ubuntu / Debian)
$ sudo apt install gcc g++ make git $ sudo apt install xorg-dev libopengl-dev libgl1-mesa-dev
$ sudo apt install libglfw3 libglfw3-dev libsdl2-devnimble uninstall imguin # Remove old versions if exists.
nimble install https://github.com/dinau/imguinСначала клонировать этот проект,
git clone https://github.com/dinau/imguinПримеры программы здесь, примеры. Например, glfw_opengl3_base.nim,
cd imguin/examples/glfw_opengl3_base
make # or make run После сборки, запустите ./glfw_opengl3_base(.exe)
Параметры установки зависят от ./config.nims и ./Makefile .
Для выбора статической ссылки или динамической ссылки прочитайте эти примеры/readme.md.
| Название библиотеки | ||
|---|---|---|
| V. | Imgui / cimgui | Базовая библиотека |
| V. | IMPOT / CIMPLOT | |
| V. | Imnodes / Cimnodes | |
| V. | Imguizmo / cimguizmo | |
| V. | Imgui-knobs/ cimgui-knobs | |
| V. | Imguifiledialog / cimguifiledialog | |
| ... | ... | ... |
| х | Imguicolortextedit / cimcte | 2025? |
| GLFW | SDL2 | SDL3 | ||
|---|---|---|---|---|
| OpenGL3 Бэкэнд | V. | V. | V. | |
| SDL2 Бэкэнд | - | ? | - | 2025? |
| SDL3 Бэкэнд | - | - | ? | 2025? |
Эти снимки экрана на Windows10.
Основной пример с шрифтами значков

Строить
pwd
examples/glfw_opengl3
make # or make runили
nim c glfw_opengl3.nim # or nim c -r glfw_opengl3.nim or nim r glfw_opengl3.nim https://github.com/altschuler/imgui-klonbs
Источники CIMGUI-KNOBS были предоставлены из System64MC / PR (2024/12). Спасибо.

Строить
pwd
examples/glfw_opengl3_imknobs
make или
nim c -d:ImKnobsEnable --warning:HoleEnumConv:off glfw_opengl3_imknobs.nim Imguifiledialog / cimguifiledialog

Строить
pwd
examples/glfw_opengl3_filedialog
make или
nim c -d:ImGuiFileDialogEnable glfw_opengl3_filedialog.nim Иконовый шрифт зритель и увеличительное стекло

Строить
pwd
examples/iconFontViewer
make или
nim c iconFontViewer.nim Нагрузка на изображение и увеличительное стекло

Строить
pwd
examples/glfw_opengl3_image_load
make или
nim c glfw_opengl3_image_load.nim Постройте версию SDL2
pwd
examples/sdl2_opengl3
make или
nim c -d:SDL sdl2_opengl3.nim Постройте версию SDL3
Только ОС Windows в этот момент и WIP.
pwd
examples/sdl3_opengl3
make или
nim c -d:SDL sdl3_opengl3.nim Загрузка / сохранение изображения и увеличительное стекло
Он может сохранить снимок экрана как файл [JPG, BMP, PNG или TGA].

Строить
pwd
examples/glfw_opengl3_image_save
make # or make runили
nim c glfw_opengl3_image_save.nim Показывая текст UTF-8 и текст ввода с местным языком страны. 
Строить
pwd
examples/glfw_opengl3_jp
make # or make runили
nim c glfw_opengl3_jp.nim Показывая демо -демо с демоверсией Imgui. 
Строить
pwd
examples/glfw_opengl3_implot
make # or make runили
nim c -d:ImPlotEnable glfw_opengl3_implot.nim
Строить
pwd
examples/glfw_opengl3_imnodes
make # or make runили
nim c -d:ImNodesEnable glfw_opengl3_imnodes.nim
Строить
pwd
examples/glfw_opengl3_imguizmo
make # or make runили
nim c -d:ImGuizmoEnable glfw_opengl3_imguizmo.nim
Видеть:
Cross Compilation в Windows, ошибка линкера (нераспознанная опция '-z'
https://nim-lang.org/docs/nimc.html#crossminuscompilation-for-windows
Например, на Linux Mint 22 и так далее,
pwd
examples
cd glfw_opengl3make win или
nim c -d:mingw glfw_opengl3или
nim c --os:windows glfw_opengl3 glfw_opengl3.exe будет генерироваться в текущей папке.
Git установлен.
Установленные инструменты командной строки MSYS2/Mingw (инструменты Unix), Make, CP, RM, ... и т. Д.
Windows10 или более поздней версии Clang/LLVM обратитесь к установке Futhark.
nimble install futhark Он должен существовать файл libclang.a в пути библиотеки (например, в c:llvmlib ).
Linux Debian 12 Bookworm
sudo apt install clang-16
nimble install --passL: " -L/usr/lib/llvm-16/lib " futharkВажное уведомление: Подтвердите версию Futhark - V0.13.6 в настоящее время. (2024/09)
nimble dump futhark
name: " futhark "
version: " 0.13.6 "
author: " PMunch "
desc: " A package which uses libclang to parse C headers into Nim files for easy interop "
license: " MIT "
... Составьте папки разработки
Сначала перейдите в свою рабочую папку, которая вам нравится, затем
mkdir imguin_dev
cd imguin_dev
git clone https://github.com/dinau/imguin
cd imguinКлон imgui/cimgui и т. Д. Источники одновременно навсегда
pwd
imguin
make clonelibs Клонированные библиотеки находятся в папке ../libs/
Рекурсивно обновлять источники, используя команду Git Pull или fetch в папке каждой библиотеки,
../libs/cimgui
../libs/cimguizmo
../libs/cimnodes
../libs/cimplot
Проверка произвольной версии с командой GIT в соответствующей папке
Укажите свой Clang , включите Path to ClangIncludePath в imguin/src/imguin/cimgui.nim .
Генерируйте файл определения, UISNG FUTHARK,
pwd
imguin
make gen Установите обновленные файлы
Правильно отредактировать информацию версии и т. Д. В файле imguin.nimble , затем
pwd
imguin
nimble uninstall imguin # Remove old versions if it exists.
nimble install Вот и все.
Повторите из 3. Если вы хотите обновить или понизить обновление до другой версии.
Подтвержденная версия
| Imgui/cimgui ver. | Imguin ver. | Дата | Окон | Linux Mint 22 | Дебюн Книжный червь (1) |
|---|---|---|---|---|---|
| 1.91.6.dock | 1.91.6.6 | 2024/12 | ХОРОШО | ХОРОШО | - |
| 1.91.5dock | - | - | - | - | - |
| 1.91.4dock | 1.91.4.2 | 2024/12 | ХОРОШО | ХОРОШО | - |
| 1.91.3dock | 1.91.3.1 | 2024/10 | ХОРОШО | (7) | - |
| 1.91.2dock | 1.91.2.0 | 2024/10 | ХОРОШО | (7) | - |
| 1,91.1.1 | 1.91.1.2 | 2024/09 | ХОРОШО | (6) | - |
| 1.91.0dock | 1.91.0.0 | 2024/08 | ХОРОШО | - | (7) |
| 1.90.4dock | 1.90.4.2 | 2024/02 | ХОРОШО | - | ОК (4) |
| 1,90.1.1 | 1.90.1.0 | 2024/01 | ХОРОШО | - | Ng/ok (1) (3) (4) |
| 1,89,9dock | 1.89.9.8 | 2023/12 | ХОРОШО | - | Ng/ok (1) (3) (4) |
(1): кроме примера Imnodes и SDL2.
(2): не работает хорошо.
(3): работает хорошо, только если он составлен режим отладки.
(4): используйте NIM-2.0.2
(5): Я не знаю, почему нельзя составить на Linux.
(6): OK: кроме примера Imnodes
(7): не проверяется в данный момент.
Вы можете использовать другой компилятор C/C ++,
Clang, vcc(Visual Studio C/C++) , zig cc
Изменив переменную TC в примерах/config.nims.common.
cimgui.dll ? (Теперь это может быть только статическая ссылка)nimble install imguin ? Установить UPX с консоли MSYS на Windowsos,
pacman -S mingw-w64-x86_64-upxДля сжатия файла Exe,
pwd
examples
cd glfw_opengl3_implot
make upx Ultimate Packer for eXecutables
Copyright (C) 1996 - 2024
UPX 4.2.4 Markus Oberhumer, Laszlo Molnar & John Reiser May 9th 2024
File size Ratio Format Name
-------------------- ------ ----------- -----------
7117824 - > 1217024 17.10% win64/pe glfw_opengl3_implot.exe Декомпрессия,
make dupxПривести к,
| GCC + UPX: GCC | Clang + UPX: Clang | MSVC (VCC) + UPX: MSVC | |
|---|---|---|---|
| glfw_opengl3.exe | 804 КБ: 2360 КБ | 720 КБ: 2200 КБ | 742 КБ: 2070 КБ |
| glfw_opengl3_implot.exe | 1220 КБ : 7120 КБ | 940 КБ : 4200 КБ | 945 КБ : 3810 КБ |
GCC: V14.2.0, Clang: V18.1.8, MSVC: 2022
Windows11 (Main)
NIM Компилятор Версия 2.2.0
GCC (Rev1, построенный в проекте MSYS2) 14.2.0
pacman -S mingw-w64-ucrt-x86_64-gccClang версия 19.1.6
pacman -S mingw-w64-ucrt-x86_64-clangVisual Studio C ++/C 2022
GIT версия 2.46.0.windows.1
SDL2.dll: 2.30.7
Сделать: GNU сделать 4.4.1
MSYS2/Mingw Tools
Linux Mint 22
Файл диалог
Другой
Графический интерфейс
Графический
| Язык | Проект | |
|---|---|---|
| Ним | Компилятор | Imguin, nimgl_test, nim_implot |
| Луа | Сценарий | Luajitimgui |
| Зиг , C Lang. | Компилятор | DEAL_BINDINGS_BUILD |
| Zig | Компилятор | Имгуинц |
| Нелуа | Компилятор | Нелуаймгуи |
| Питон | Сценарий | Dearpygui для 32 -битного двойного |

| Язык | Проект | |
|---|---|---|
| Ним | Компилятор | NIM-платформер/ SDL3_NIM |
| Luajit | Сценарий | Luajit-Platformer |
| Нелуа | Компилятор | Нелуа-Платформер |
| Zig | Компилятор | Зигплатформер |
error: assignment to ' char ** ' from incompatible pointer type ' const char * const* ' [-Wincompatible-pointer-types] type ConstCstring {. importc : const char *. } = cstring