我正在评估是否可以使我的Windows OpenGL应用程序适应使用Nuklear imgui库。
我将以“阻止”样式使用它-也就是说,仅基于用户输入事件来更新和重绘UI。
在文档中,讨论此主题时,它表示以下内容:
如果您实际上只更新输入,请确保更新两个UI 对每个帧进行计时,并在第一次通过后立即调用nk_clear,然后 仅在第二遍中抽签。
并提供以下示例代码:
struct nk_context ctx;
nk_init_xxx(&ctx, ...);
while (1) {
// [...wait for input ]
// [...do two UI passes ...]
do_ui(...)
nk_clear(&ctx);
do_ui(...)
//
// draw
const struct nk_command *cmd = 0;
nk_foreach(cmd, &ctx) {
switch (cmd->type) {
case NK_COMMAND_LINE:
your_draw_line_function(...)
break;
case NK_COMMAND_RECT
your_draw_rect_function(...)
break;
case ...:
//[...]
}
nk_clear(&ctx);
}
nk_free(&ctx);
}
但没有进一步解释为什么它需要两次UI传递。
有人能对此有所启发吗?