@@ -5701,18 +5701,6 @@ template<typename T> struct nk_alignof{struct Big {T x; char c;}; enum {
57015701#define NK_ALIGNOF(t) ((char*)(&((struct {char c; t _h;}*)0)->_h) - (char*)0)
57025702#endif
57035703
5704- #ifdef NK_IMPLEMENTATION
5705- #define STB_RECT_PACK_IMPLEMENTATION
5706- #define STB_TRUETYPE_IMPLEMENTATION
5707- #endif
5708-
5709- #ifndef STBTT_malloc
5710- static nk_handle fictional_handle = {0};
5711-
5712- #define STBTT_malloc(x,u) nk_malloc( fictional_handle, 0, x )
5713- #define STBTT_free(x,u) nk_mfree( fictional_handle , x)
5714- #endif
5715-
57165704#endif /* NK_NUKLEAR_H_ */
57175705
57185706#ifdef NK_IMPLEMENTATION
@@ -6043,6 +6031,32 @@ NK_LIB void nk_draw_property(struct nk_command_buffer *out, const struct nk_styl
60436031NK_LIB void nk_do_property(nk_flags *ws, struct nk_command_buffer *out, struct nk_rect property, const char *name, struct nk_property_variant *variant, float inc_per_pixel, char *buffer, int *len, int *state, int *cursor, int *select_begin, int *select_end, const struct nk_style_property *style, enum nk_property_filter filter, struct nk_input *in, const struct nk_user_font *font, struct nk_text_edit *text_edit, enum nk_button_behavior behavior);
60446032NK_LIB void nk_property(struct nk_context *ctx, const char *name, struct nk_property_variant *variant, float inc_per_pixel, const enum nk_property_filter filter);
60456033
6034+ #ifdef NK_INCLUDE_FONT_BAKING
6035+
6036+ #define STB_RECT_PACK_IMPLEMENTATION
6037+ #define STB_TRUETYPE_IMPLEMENTATION
6038+
6039+ /* Allow consumer to define own STBTT_malloc/STBTT_free, and use the font atlas' allocator otherwise */
6040+ #ifndef STBTT_malloc
6041+ static void*
6042+ nk_stbtt_malloc(nk_size size, void *user_data) {
6043+ struct nk_allocator *alloc = (struct nk_allocator *) user_data;
6044+ return alloc->alloc(alloc->userdata, 0, size);
6045+ }
6046+
6047+ static void
6048+ nk_stbtt_free(void *ptr, void *user_data) {
6049+ struct nk_allocator *alloc = (struct nk_allocator *) user_data;
6050+ alloc->free(alloc->userdata, ptr);
6051+ }
6052+
6053+ #define STBTT_malloc(x,u) nk_stbtt_malloc(x,u)
6054+ #define STBTT_free(x,u) nk_stbtt_free(x,u)
6055+
6056+ #endif // STBTT_malloc
6057+
6058+ #endif // NK_INCLUDE_FONT_BAKING
6059+
60466060#endif
60476061
60486062
@@ -16419,7 +16433,9 @@ nk_font_bake_pack(struct nk_font_baker *baker,
1641916433 /* setup font baker from temporary memory */
1642016434 for (config_iter = config_list; config_iter; config_iter = config_iter->next) {
1642116435 it = config_iter;
16422- do {if (!stbtt_InitFont(&baker->build[i++].info, (const unsigned char*)it->ttf_blob, 0))
16436+ struct stbtt_fontinfo *font_info = &baker->build[i++].info;
16437+ font_info->userdata = alloc;
16438+ do {if (!stbtt_InitFont(font_info, (const unsigned char*)it->ttf_blob, 0))
1642316439 return nk_false;
1642416440 } while ((it = it->n) != config_iter);
1642516441 }
@@ -28293,7 +28309,7 @@ nk_combo_begin_text(struct nk_context *ctx, const char *selected, int len,
2829328309 sym = style->combo.sym_hover;
2829428310 else if (is_clicked)
2829528311 sym = style->combo.sym_active;
28296- else
28312+ else
2829728313 sym = style->combo.sym_normal;
2829828314
2829928315 /* represents whether or not the combo's button symbol should be drawn */
@@ -29154,6 +29170,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
2915429170/// - [yy]: Minor version with non-breaking API and library changes
2915529171/// - [zz]: Bug fix version with no direct changes to API
2915629172///
29173+ /// - 2020/09/05 (4.05.0) - Use the nk_font_atlas allocator for stb_truetype memory management.
2915729174/// - 2020/09/04 (4.04.1) - Replace every boolean int by nk_bool
2915829175/// - 2020/09/04 (4.04.0) - Add nk_bool with NK_INCLUDE_STANDARD_BOOL
2915929176/// - 2020/06/13 (4.03.1) - Fix nk_pool allocation sizes.
0 commit comments