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

OpenCASCADE提供了一個GLFW的示例程序,將OpenCASCADE與IMGUI集成起來,對于實現一些簡單的小的三維應用程序的UI,有滿滿的科技感。很多游戲相關的小程序都是使用IMGUI來做界面。

其中OpenCASCAE開源的光線追蹤程序CADRays的UI就是用IMGUI實現的:

IMGUI也支持Docking,常見的控件都有,并且也支持跨平臺,只依賴OpenGL,生成的程序體積很小。
使用GLFW配置IMGUI可以實現跨平臺的界面開發,對于不復雜的應用程序是個不錯的選擇。