Я оцениваю, могу ли я адаптировать свое приложение Windows OpenGL для использования библиотеки Nuklear imgui.
Я бы использовал ее в стиле «блокировки», то есть только обновлял и перерисовывал пользовательский интерфейс на основесобытия пользовательского ввода.
В документации при обсуждении этой темы говорится следующее:
Если вы действительно обновляете только ввод, убедитесь, что пользовательский интерфейс обновляется два раза в каждом кадре, иВызывайте 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 прохода пользовательского интерфейса.
Кто-нибудь может пролить свет на это?