Introduction
ImGui is a popular library written by ocornut, it can make awesome user interface based on directx.
It is being used by many big apps/games.
The UI is nice and flexible, easy to use because of frame-by-frame drawing.
So I decided to convert the entire ImGui library to AutoIt
At first it's just an experiment, i converted some basic draw functions of imgui, compile to a dll, then using DllCall in autoit to call the functions.
I was testing to see how much FPS i can get in autoit, and i was expected a low FPS, since autoit is slow.
Suprisingly, the FPS turned out to be so high, it works really fast, even when drawing 1000 buttons at the same time.
Features
More than +270 functions converted from ImGui (compiled dll).
Has 90% of the capability of what you can do in C++;
Usable ImGuiIO and ImGuiStyle, so you can set whatever configurations you like.
Preview
Usage
#include <WinAPI.au3>
#include "ImGui.au3"
; Create a window
Local $hwnd = _ImGui_GUICreate("AutoIt ImGui", 1024, 768)
_WinAPI_ShowWindow($hwnd)
; Set style color
_ImGui_StyleColorsLight()
;~ _ImGui_StyleColorsDark()
Local $f_value = 5
While 1
; when the user click close button on the window, this will return false
if Not _ImGui_PeekMsg() Then Exit
; must call
_ImGui_BeginFrame()
_ImGui_Begin("Another window")
_ImGui_Text("Hello there..")
If _ImGui_Button("click me") Then $f_value = 5
_ImGui_SliderFloat("slider", $f_value, 2, 20)
If _ImGui_IsItemHovered() Then _ImGui_ToolTip("what r u doing?")
_ImGui_End()
; must call
_ImGui_EndFrame()
Wend
Remark
Most of the functions were converted automatically. I haven't tested all of them yet, if some function doesn't work for you, please tell me.
Still missing some features of ImGui, please tell me if you needed any.
Run \tools\imgui-au3-setup.au3 to add _ImGui functions to SciTE auto-complete.
Source Code
Require: DirectX
GitHub: imgui-autoit