From 74802f25f06d3b629c5811683ccf1de824683fae Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 7 Oct 2022 01:01:50 +0200 Subject: [PATCH 1/2] fixed missing first line of custom font added yAdvance of the custom font to the sum of y coordinates for the font, so that the first line isn't drawn offscreen anymore --- Adafruit_GFX.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Adafruit_GFX.cpp b/Adafruit_GFX.cpp index 7b9a1833..907b18a0 100644 --- a/Adafruit_GFX.cpp +++ b/Adafruit_GFX.cpp @@ -1179,6 +1179,7 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, // drawChar() directly with 'bad' characters of font may cause mayhem! c -= (uint8_t)pgm_read_byte(&gfxFont->first); + uint8_t yAdvance = (uint8_t) pgm_read_byte(&gfxFont->yAdvance); GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c); uint8_t *bitmap = pgm_read_bitmap_ptr(gfxFont); @@ -1220,9 +1221,9 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, } if (bits & 0x80) { if (size_x == 1 && size_y == 1) { - writePixel(x + xo + xx, y + yo + yy, color); + writePixel(x + xo + xx, y + yo + yy + yAdvance, color); } else { - writeFillRect(x + (xo16 + xx) * size_x, y + (yo16 + yy) * size_y, + writeFillRect(x + (xo16 + xx) * size_x, y + (yo16 + yy) * size_y + yAdvance * size_y, size_x, size_y, color); } } From 4f0ab8bdacfb123586a45336e5d070c65a557557 Mon Sep 17 00:00:00 2001 From: Dave Date: Fri, 7 Oct 2022 01:26:54 +0200 Subject: [PATCH 2/2] guessing the format --- Adafruit_GFX.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Adafruit_GFX.cpp b/Adafruit_GFX.cpp index 907b18a0..dd229bcd 100644 --- a/Adafruit_GFX.cpp +++ b/Adafruit_GFX.cpp @@ -1179,7 +1179,7 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, // drawChar() directly with 'bad' characters of font may cause mayhem! c -= (uint8_t)pgm_read_byte(&gfxFont->first); - uint8_t yAdvance = (uint8_t) pgm_read_byte(&gfxFont->yAdvance); + uint8_t yAdvance = (uint8_t)pgm_read_byte(&gfxFont->yAdvance); GFXglyph *glyph = pgm_read_glyph_ptr(gfxFont, c); uint8_t *bitmap = pgm_read_bitmap_ptr(gfxFont); @@ -1223,8 +1223,9 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, if (size_x == 1 && size_y == 1) { writePixel(x + xo + xx, y + yo + yy + yAdvance, color); } else { - writeFillRect(x + (xo16 + xx) * size_x, y + (yo16 + yy) * size_y + yAdvance * size_y, - size_x, size_y, color); + writeFillRect(x + (xo16 + xx) * size_x, + y + (yo16 + yy) * size_y + yAdvance * size_y, size_x, + size_y, color); } } bits <<= 1;