我正在评估是否可以调整我的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);
}
但没有进一步解释为什么它需要2个UI通行证 .
任何人都可以对此有所了解吗?