今天,猿妹要和大家分享一个用 C/C++ 语言实现的即时渲染 UI——ImGUI,实现了按钮、文本、输入框、表格、Radio/Check Box 与列表等几乎所有 UI 元素,并且给人耳目一新的感觉,入手与学习也极其简单。ImGUI 不但提供了跨平台的支持,而且可以几乎涵盖所有的编译器的支持。
ImGui的设计目的是支持快速迭代,并使程序员能够创建内容创建工具和可视化/调试工具(相对于面向普通终端用户的UI)。ImGui特别适合集成到游戏引擎(用于工具),实时3D应用程序,全屏应用程序,嵌入式应用程序,或任何操作系统功能是非标准的控制台平台上的应用程序。
ImGui的核心包含在一些平台无关的文件中,你可以很容易地在你的应用程序/引擎中编译。它们都是存储库根目录下的文件(imgui*.cpp, imgui*.h)。不需要特定的构建过程。您可以将.cpp文件添加到现有的项目中。
后端/文件夹中提供了各种图形api和渲染平台,示例应用程序在examples/文件夹中。在应用程序中设置Dear ImGui后,你可以在程序循环中的_anywhere_中使用它:
目前,ImGui在github上标星31.5K,累计分支5.3K(github地址:https://github.com/ocornut/imgui)
代码:
ImGui::Text("Hello, world %d", 123);
if (ImGui::Button("Save"))
MySaveFunction();
ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));
ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
- 1.
- 2.
- 3.
- 4.
- 5.
运行结果:
在issue里面有一个ocornut收录的各路神仙用imgui做的截图合集:
知乎上就有一个提问:如何评价 imgui?有网友就回答说:看完 Readme 想打钱了,还有很多程序员都在上面发表了自己的使用感受。知乎链接地址:https://www.zhihu.com/question/267602287