IMGUI 系统 - Dear ImGUI
文章目錄
- 簡單介紹
- Unity 也有使用
- 現(xiàn)在庫名字的理解
- 名字歷史
- 入門步驟建議
- 其他資料
- Showcase Screen Snapshot - 案例截圖
簡單介紹
因為我在寫 LearnGL 系列筆記的時候,發(fā)現(xiàn)沒有 GUI 可以用,好蛋疼,然后在 GitHub 上找到一個叫:Dear ImGui,這個IMGUI系統(tǒng)對我來說,太太太完美了,它是用 C++ 編寫的一個 IMGUI 系統(tǒng)。
Unity 也有使用
看了下面的 案例截圖 你會發(fā)現(xiàn),原來前幾年看到的一些大廠的各種 DEMO,或是一些軟件原來就是用 Dear ImGui 制作的,Vulkan、OpenGL的一些示例,還有如果你使用過 Unity 的舊版的 IMGUI 系統(tǒng),你就會發(fā)現(xiàn) Unity 的 IMGUI 接口與 Dear ImGui 的非常類似,因為它們都是按 IMGUI 范例設(shè)計的,所以也就說,如果你用過 Unity 舊版 IMGUI 你肯定很容易接受 Dear ImGui 的接口。
現(xiàn)在庫名字的理解
Git Hub 上 Dear ImGui 的簡述:
Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
然后我去下載 master 分支,壓縮包也就 1.4 MB,基本都是純代碼,編譯后更小,難怪它用 Bloat-free 來形容,非常精簡的一個GUI 庫。
名字歷史
從 What is this library called? 中可得知,作者是從 2014 年開始編寫的庫,當(dāng)時沒想好名字,就暫時用了 ImGui 的名字。但是 IMGUI 這個術(shù)語很早之前就有提出來,IMGUI == Immediate-Mode Graphical User Interface,即時模式的圖形用戶接口,它是 Casey Muratori 提出來的,如果你想了解 IMGUI 范例,可以查看:http://www.johno.se/book/imgui.html,http://mollyrocket.com/861 或是在下面提到的 FAQ 中的更多的鏈接,或是 wiki 中的 Paradigm。Unity 用它來實例了自己的 IMGUI 范例。所以作者為了減少歧義,他在 2015.12 將庫名改為 Dear ImGui(不是 ImGui,也不是IMGUI)。
入門步驟建議
- 先看 master 的 README.txt,先了解大概介紹
- 再看 example 下的 README.txt
- 再倒回看 master 下的 imgui.cpp 的代碼、注釋,作為程序開發(fā)主要看:PROGRAMMER GUID 的部分
- 再看看 FAQ.md 部分,了解常見的問題
- 這時差不多可以開始將 Dear ImGui 引入你的項目了,先去 example 下找對應(yīng)的 實現(xiàn)窗體 + 渲染平臺
- 找到適合你的窗體、渲染平臺的,點擊去查看 demo
- 例如,我使用的是 GLFW 窗體庫 + OpenGL 3+ 版本的:example_glfw_opengl3,參考工程使用即可
其他資料
后續(xù)更多功能的查閱,可以查看他的 git/wiki:https://github.com/ocornut/imgui/wiki
其中有一些不錯的小部件:useful-widgets–references
也一些不錯的文章:articles-about-dear-imgui
我自己粗略閱讀過,也不是每個都不錯,下面將一些我自己看過覺得不錯的博客都列出來:
英文的視頻:
- ImGui in OpenGL
英文的文章:
- C++ desktop application with Dear Imgui
日語的 qiita 上的文章:
- OpenGLやDirectXなGUIにimguiが最強(qiáng)すぎる
- imguiのwindowの中で3d cubeの描畫をしてやった
如果你想用 Dear ImGui 來制作軟件,或是游戲引擎的GUI,可以使用他目前的 docking 分支的。
未來作者會合并到 master 分支,現(xiàn)在還在完善中。
值得一提的 Upcoming 內(nèi)容:
- 而且他的 docking 和一般的 docking 還不一樣,可以跨窗體。
- 他的 multiple viewport 也不一般,可以將窗體內(nèi)的內(nèi)容繪制到窗體外,即:ImGuiWindow 可以繪制到 host window 外。
- 他的 table 也是做的強(qiáng)大又美觀
Dear ImGui docking,可以查看:
https://ruurdsdevlog.wordpress.com/2020/03/07/c-desktop-application-with-dear-imgui/
docking 的可以再查考 wiki 上的各個推薦的 blog 或是 video
后面如果要給圖片做一個資源管理,或是 材質(zhì)系統(tǒng)管理,都需要了解如何加載圖片
當(dāng)然這些內(nèi)容現(xiàn)在還沒有引入到 master 分支,還在完善開發(fā)中,所以如果感興趣可以 watch 持續(xù)關(guān)注這位大神 git。
Showcase Screen Snapshot - 案例截圖
為了提起你對 Dear ImGui 的興趣我將一些截圖放上來。
總結(jié)
以上是生活随笔為你收集整理的IMGUI 系统 - Dear ImGUI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于 Ubuntu 16.04 LTS
- 下一篇: 【系统架构】ER图的画图规范和优化点