#pragma once #ifndef FONT_PACK_H #define FONT_PACK_H #include #define FONT_WIDTH 16 #define FONT_HEIGHT 16 #define FONT_BITMAP_SIZE \ ((FONT_WIDTH * FONT_HEIGHT) / 8) // 32 bytes per character static const uint8_t empty_char_16x16[32] = {0}; typedef struct { const uint8_t *bitmaps[26]; // Pointers to each 16x16 bitmap } FontPack; extern const FontPack basic_font_pack; static inline const uint8_t *font_get_char_bitmap(const FontPack *pack, char c) { if (c >= 'a' && c <= 'z') // convert to uppercase c = c - 'a' + 'A'; if (c >= 'A' && c <= 'Z') return pack->bitmaps[c - 'A']; return empty_char_16x16; // fallback for other characters } #endif // FONT_PACK_H