Posted on 2023-09-18 20:48
eryar 阅读(541)
评论(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可以实现跨平台的界面开发,对于不复杂的应用程序是个不错的选择。