تم تحديثه إلى أحدث إصدار من IMGUI/CIMGUI :: v1.91.6Dock (2024/12)
هذا المشروع هو مشروع التجربة الخاص بي لاستخدام لغة NIM و IMGUI و INSLOT و 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.
| اسم المكتبة | ||
|---|---|---|
| الخامس | Imgui / Cimgui | مكتبة قاعدة |
| الخامس | ضمن / cimplot | |
| الخامس | Imnodes / cimnodes | |
| الخامس | Imguizmo / cimguizmo | |
| الخامس | Imgui-knobs/ cimgui- Knobs | |
| الخامس | imgaiFileDialog / cimigifiledialog | |
| ... | ... | ... |
| x | imguicolortextedit / cimcte | 2025؟ |
| GLFW | SDL2 | SDL3 | ||
|---|---|---|---|---|
| OpenGL3 الخلفية | الخامس | الخامس | الخامس | |
| 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- Knobs
ساهمت مصادر Cimgui-Knobs من System64mC / PR (2024/12). شكرًا لك.

يبني
pwd
examples/glfw_opengl3_imknobs
make أو
nim c -d:ImKnobsEnable --warning:HoleEnumConv:off glfw_opengl3_imknobs.nim imgaiFileDialog / cimigifiledialog

يبني
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
يرى:
التجميع المتقاطع إلى 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 الخاص بك ، قم بتضمين المسار إلى 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. | تاريخ | Windowsos | Linux Mint 22 | ديبيان NOOMWORM (1) |
|---|---|---|---|---|---|
| 1.91.6 dock | 1.91.6.6 | 2024/12 | نعم | نعم | - |
| 1.91.5 Dock | - | - | - | - | - |
| 1.91.4 Dock | 1.91.4.2 | 2024/12 | نعم | نعم | - |
| 1.91.3 Dock | 1.91.3.1 | 2024/10 | نعم | (7) | - |
| 1.91.2 Dock | 1.91.2.0 | 2024/10 | نعم | (7) | - |
| 1.91.1Dock | 1.91.1.2 | 2024/09 | نعم | (6) | - |
| 1.91.0 Dock | 1.91.0.0 | 2024/08 | نعم | - | (7) |
| 1.90.4 Dock | 1.90.4.2 | 2024/02 | نعم | - | طيب (4) |
| 1.90.1Dock | 1.90.1.0 | 2024/01 | نعم | - | نانوغرام/موافق (1) (3) (4) |
| 1.89.9 Dock | 1.89.9.8 | 2023/12 | نعم | - | نانوغرام/موافق (1) (3) (4) |
(1): باستثناء Imnodes و SDL2 مثال.
(2): لا يعمل بشكل جيد.
(3): يعمل بشكل جيد فقط إذا تم تجميعه وضع التصحيح.
(4): استخدم NIM-2.0.2
(5): لا أعرف لماذا لا يمكن تجميعها على Linux.
(6): موافق: باستثناء مثال 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 (رئيسي)
NIM برنامج التحويل البرمجي 2.2.0
GCC (REV1 ، بنيت بواسطة مشروع MSYS2) 14.2.0
pacman -S mingw-w64-ucrt-x86_64-gccالإصدار Clang 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
Linux Mint 22
مربع الحوار
آخر
واجهة المستخدم الرسومية
رسومية
| لغة | مشروع | |
|---|---|---|
| نيم | المترجم | Imguin ، nimgl_test ، nim_implot |
| لوا | السيناريو | Luajitimgui |
| متعرج ، C لانج. | المترجم | dear_bindings_build |
| متعرج | المترجم | Imguinz |
| نيلوا | المترجم | Neluaimgui |
| بيثون | السيناريو | Dearpygui لـ 32bit Windowsos ثنائي |

| لغة | مشروع | |
|---|---|---|
| نيم | المترجم | nim-platformer/ sdl3_nim |
| لوجيت | السيناريو | Luajit-platformer |
| نيلوا | المترجم | Nelua-platformer |
| متعرج | المترجم | ملعون منصمي |
error: assignment to ' char ** ' from incompatible pointer type ' const char * const* ' [-Wincompatible-pointer-types] type ConstCstring {. importc : const char *. } = cstring