Posted on 2023-09-18 20:48
eryar 閱讀(603)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
2.OpenCASCADE
OpenCASCADE GLFW IMGUI
如果從事過(guò)C++ Windows客戶(hù)端開(kāi)發(fā),大家對(duì)MFC、Qt、DuiLib、WxWidgets等各種DirectUI應(yīng)該有了解,本篇給大家介紹一個(gè)超級(jí)輕量級(jí)的C++開(kāi)源跨平臺(tái)圖形界面框架ImGUI. ImGUI主要用于游戲行業(yè),所有的控件都需要手繪實(shí)現(xiàn),當(dāng)然性能也是滿(mǎn)滿(mǎn)的,畢竟是直接用dx/opengl來(lái)實(shí)現(xiàn)。ImGUI倉(cāng)庫(kù):https://github.com/ocornut/imgui
ImGUI又稱(chēng)為Dear ImGui,它是與平臺(tái)無(wú)關(guān)的C++輕量級(jí)跨平臺(tái)圖形界面庫(kù),沒(méi)有任何第三方依賴(lài),可以將ImGUI的源碼直接加到項(xiàng)目中使用,也可以編譯成dll, ImGUI使用DX或者OpenGL進(jìn)行界面渲染,對(duì)于畫(huà)面質(zhì)量要求較高,例如客戶(hù)端游戲,4k/8k視頻播放時(shí),用ImGUI是很好的選擇,當(dāng)然,你得非常熟悉DirectX或者OpenGL,不然就是寶劍在手,屠龍無(wú)力。相對(duì)于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更輕量級(jí),當(dāng)然對(duì)于開(kāi)發(fā)者的要求也更高.ImGUI沒(méi)有類(lèi)似于Qt/MFC這種,可以拖拽控件進(jìn)行搭建界面,ImGUI的所有控件都必須手寫(xiě)實(shí)現(xiàn)。ImGUI的demo基本提供了所有控件、圖表等的實(shí)現(xiàn),源碼也有,可以對(duì)照的學(xué)習(xí)。在PC端技術(shù)選型時(shí),如果公司有音視頻、圖形圖像、4k/8k視頻業(yè)務(wù),或者一些簡(jiǎn)單的UI可以考慮一下使用ImGUI,畢竟是直接使用DX/OpenGL來(lái)進(jìn)行繪制渲染,其它功能就直接使用C++來(lái)實(shí)現(xiàn)。

OpenCASCADE提供了一個(gè)GLFW的示例程序,將OpenCASCADE與IMGUI集成起來(lái),對(duì)于實(shí)現(xiàn)一些簡(jiǎn)單的小的三維應(yīng)用程序的UI,有滿(mǎn)滿(mǎn)的科技感。很多游戲相關(guān)的小程序都是使用IMGUI來(lái)做界面。

其中OpenCASCAE開(kāi)源的光線追蹤程序CADRays的UI就是用IMGUI實(shí)現(xiàn)的:

IMGUI也支持Docking,常見(jiàn)的控件都有,并且也支持跨平臺(tái),只依賴(lài)OpenGL,生成的程序體積很小。
使用GLFW配置IMGUI可以實(shí)現(xiàn)跨平臺(tái)的界面開(kāi)發(fā),對(duì)于不復(fù)雜的應(yīng)用程序是個(gè)不錯(cuò)的選擇。