深圳幻海软件技术有限公司 欢迎您!

看了介绍就心动的即时渲染UI,到底有多强大?

2023-03-01

今天,猿妹要和大家分享一个用C/C++语言实现的即时渲染UI——ImGUI,实现了按钮、文本、输入框、表格、Radio/CheckBox与列表等几乎所有UI元素,并且给人耳目一新的感觉,入手与学习也极其简单。ImGUI不但提供了跨平台的支持,而且可以几乎涵盖所有的编译器的支持。ImGui的设计目的是

今天,猿妹要和大家分享一个用 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