我目前正在开发一个标准的 Windows 桌面应用程序(标准意味着没有花哨的东西:只有按钮、文本、滑块等),并且在研究了一些 GUI 框架并被排斥后,决定自己编写一个 GUI 框架他们全部。由于这是一个爱好项目,我也愿意尝试,并决定制作 GUI 即时模式,而不是保留模式,因为我非常喜欢它简化代码的方式。不过,这是一个问题:
与保留模式 GUI 相比,在将其用于典型桌面应用程序时,使用即时模式 GUI 对性能有何影响?
我总是听说 IMGUI 性能更差,因为它必须重绘每一帧(或者,如果它以某种方式缓存,它仍然必须每帧执行逻辑)。但是我们在这里谈了多少?我会消耗两倍的 CPU 时间吗?更多的?如果我假设运行 20 个 IMGUI 程序,它会最大限度地消耗 CPU(假设我已经优化了它)?我只是想知道大致情况以及权衡在非游戏环境中是否仍然可行,在这种环境中不需要重绘每一帧。
关于延迟还有一个我不明白的含义。在Johannes Norneby的一本工作中讨论 IMGUI 的章节中,解释如下:
剪框
在实时应用程序的上下文中需要注意的 IMGUI 的一个方面(每秒不断地多次渲染新帧)是用户交互将始终响应在前一帧上绘制的内容。这是因为用户界面必须至少绘制一次,以便用户知道那里有要与之交互的小部件。大多数情况下,如果帧速率足够高,这不会导致任何问题,但需要注意这一点。
这在保留模式 GUI 中有何不同?这是否意味着我比保留模式 GUI 多了一个输入延迟帧?