From 988b40888bb6f99b14f001593563e061df42d7d1 Mon Sep 17 00:00:00 2001 From: Sergey Semushin Date: Sat, 25 Nov 2017 09:36:21 +0300 Subject: [PATCH 1/2] Fix NK_INCLUDE_COMMAND_USERDATA usage with images. If userdata is used with drawing images userdata was missing from the first image command and also subsequent commands which draw the same texture but with different user data were incorrectly merged together. --- nuklear.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nuklear.h b/nuklear.h index c3e4246..2fbcfb4 100644 --- a/nuklear.h +++ b/nuklear.h @@ -7968,9 +7968,16 @@ nk_draw_list_push_image(struct nk_draw_list *list, nk_handle texture) nk_draw_list_push_command(list, nk_null_rect, texture); } else { struct nk_draw_command *prev = nk_draw_list_command_last(list); - if (prev->elem_count == 0) + if (prev->elem_count == 0) { prev->texture = texture; - else if (prev->texture.id != texture.id) +#ifdef NK_INCLUDE_COMMAND_USERDATA + prev->userdata = list->userdata; +#endif + } else if (prev->texture.id != texture.id +#ifdef NK_INCLUDE_COMMAND_USERDATA + || prev->userdata.id != list->userdata.id +#endif + ) nk_draw_list_push_command(list, prev->clip_rect, texture); } } From 3636cb1c5df421e478acf72480df3ec4da49c871 Mon Sep 17 00:00:00 2001 From: vurtun Date: Mon, 27 Nov 2017 20:27:02 +0100 Subject: [PATCH 2/2] Fixed #511 and changed formatting --- nuklear.h | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/nuklear.h b/nuklear.h index 2fbcfb4..91dc74c 100644 --- a/nuklear.h +++ b/nuklear.h @@ -7970,15 +7970,14 @@ nk_draw_list_push_image(struct nk_draw_list *list, nk_handle texture) struct nk_draw_command *prev = nk_draw_list_command_last(list); if (prev->elem_count == 0) { prev->texture = texture; -#ifdef NK_INCLUDE_COMMAND_USERDATA + #ifdef NK_INCLUDE_COMMAND_USERDATA prev->userdata = list->userdata; -#endif + #endif } else if (prev->texture.id != texture.id -#ifdef NK_INCLUDE_COMMAND_USERDATA - || prev->userdata.id != list->userdata.id -#endif - ) - nk_draw_list_push_command(list, prev->clip_rect, texture); + #ifdef NK_INCLUDE_COMMAND_USERDATA + || prev->userdata.id != list->userdata.id + #endif + ) nk_draw_list_push_command(list, prev->clip_rect, texture); } } @@ -17415,7 +17414,7 @@ nk_clear(struct nk_context *ctx) ctx->active = iter->prev; ctx->end = iter->prev; if (ctx->active) - ctx->active->flags &= ~NK_WINDOW_ROM; + ctx->active->flags &= ~(unsigned)NK_WINDOW_ROM; } /* free unused popup windows */ if (iter->popup.win && iter->popup.win->seq != ctx->seq) {