From 31217c686f31e39a1cf2cd3b46bfbfec50b2259e Mon Sep 17 00:00:00 2001 From: Rasmus Date: Thu, 10 Sep 2026 17:31:47 +0200 Subject: [PATCH] display: fix font cell row/col-major bug causing garbled glyphs (draw_bitmap expects row-major) --- main/display_manager.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main/display_manager.c b/main/display_manager.c index 416f1d1..c429c3d 100644 --- a/main/display_manager.c +++ b/main/display_manager.c @@ -128,11 +128,13 @@ int display_put_text(int x, int y, const char *str, uint16_t fg, uint16_t bg) char c = *str++; if (c >= FONT5X7_FIRST_CHAR && c <= FONT5X7_LAST_CHAR) { const uint8_t *glyph = font5x7[c - FONT5X7_FIRST_CHAR]; - uint16_t cell[FONT5X7_W][FONT5X7_H]; + /* Row-major [row][col] so the linear buffer matches what + * esp_lcd_panel_draw_bitmap expects. */ + uint16_t cell[FONT5X7_H][FONT5X7_W]; for (int gy = 0; gy < FONT5X7_H; gy++) { for (int gx = 0; gx < FONT5X7_W; gx++) { - cell[gx][gy] = (glyph[gy] >> gx) & 1 ? fg : bg; + cell[gy][gx] = (glyph[gy] >> gx) & 1 ? fg : bg; } } if (x + FONT5X7_W <= DISP_W && y + FONT5X7_H <= DISP_H) {