From 59b8723aff396569f0ecffeaeea7c8f95562b212 Mon Sep 17 00:00:00 2001 From: Alberto Mardegan Date: Sun, 29 Dec 2024 18:23:19 +0300 Subject: [PATCH] Fix nk_font_bake_convert() for big-endian machines Fix the byte order for converting alpha images into RGBA by writing the destination byte-by-byte. The compiler should anyway be able to optimize this. --- nuklear.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nuklear.h b/nuklear.h index 8c3fea99..e7b86ab5 100644 --- a/nuklear.h +++ b/nuklear.h @@ -17230,7 +17230,7 @@ nk_font_bake_convert(void *out_memory, int img_width, int img_height, const void *in_memory) { int n = 0; - nk_rune *dst; + nk_byte *dst; const nk_byte *src; NK_ASSERT(out_memory); @@ -17239,10 +17239,14 @@ nk_font_bake_convert(void *out_memory, int img_width, int img_height, NK_ASSERT(img_height); if (!out_memory || !in_memory || !img_height || !img_width) return; - dst = (nk_rune*)out_memory; + dst = (nk_byte*)out_memory; src = (const nk_byte*)in_memory; - for (n = (int)(img_width * img_height); n > 0; n--) - *dst++ = ((nk_rune)(*src++) << 24) | 0x00FFFFFF; + for (n = (int)(img_width * img_height); n > 0; n--) { + *dst++ = 0xff; // r + *dst++ = 0xff; // g + *dst++ = 0xff; // b + *dst++ = *src++; // a + } } /* -------------------------------------------------------------