diff options
-rw-r--r-- | bin/fbclock.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bin/fbclock.c b/bin/fbclock.c index e15deb82..19a48e4b 100644 --- a/bin/fbclock.c +++ b/bin/fbclock.c @@ -108,9 +108,11 @@ int main(int argc, char *argv[]) { for (char *s = str; *s; ++s) { uint8_t *glyph = glyphs[(uint8_t)*s]; for (uint32_t y = 0; y < header.glyphHeight; ++y) { + uint32_t stride = header.glyphSize / header.glyphHeight; for (uint32_t x = 0; x < header.glyphWidth; ++x) { - uint8_t b = glyph[y] >> (header.glyphWidth - x) & 1; - buf[y * info.xres + left + x] = b ? FG : BG; + uint8_t bits = glyph[y * stride + x / 8]; + uint8_t bit = bits >> (7 - x % 8) & 1; + buf[y * info.xres + left + x] = bit ? FG : BG; } } left += header.glyphWidth; |