From 1d4ac4c0e0300cc0b4fb0ee66cbbb8aa2b18dd99 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Thu, 18 Jun 2020 16:43:57 +0100 Subject: fix text wrapping --- stm32/app/font8x8.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'stm32/app/font8x8.c') diff --git a/stm32/app/font8x8.c b/stm32/app/font8x8.c index c5c9d05..e9f3d4e 100644 --- a/stm32/app/font8x8.c +++ b/stm32/app/font8x8.c @@ -264,15 +264,25 @@ font8x8_put_ch (uint8_t *vram, unsigned ch, unsigned x, unsigned y) { unsigned shift = y & 7; unsigned page = y >> 3; + unsigned xe; + + if (x >= SSD1306_WIDTH) return; + + xe = x + 8; + + if (xe > SSD1306_WIDTH) xe = SSD1306_WIDTH; + x += page * SSD1306_WIDTH; + xe += page * SSD1306_WIDTH; - oled_blit_strip (vram, x, x + 8, 0xff << shift, shift, font8x8[ch]); + oled_blit_strip (vram, x, xe, 0xff << shift, shift, font8x8[ch]); if (shift) { x += SSD1306_WIDTH; + xe += SSD1306_WIDTH; shift = 8 - shift; - oled_blit_strip (vram, x, x + 8, 0xff >> shift, -shift, font8x8[ch]); + oled_blit_strip (vram, x, xe, 0xff >> shift, -shift, font8x8[ch]); } } -- cgit v1.2.3