terminal/unifont: add built-in fallback glyph
In case we cannot render a glyph, we want a fallback we can display instead. If we rely on the font itself to provide the fallback character, we have nothing to display if that character is not available. Therefore, add a static fallback that we can use at any time.
This commit is contained in:
@@ -221,3 +221,21 @@ int unifont_lookup(unifont *u, unifont_glyph *out, uint32_t ucs4) {
|
||||
memcpy(out, &g, sizeof(g));
|
||||
return 0;
|
||||
}
|
||||
|
||||
void unifont_fallback(unifont_glyph *out) {
|
||||
static const uint8_t fallback_data[] = {
|
||||
/* unifont 0xfffd '�' (unicode replacement character) */
|
||||
0x00, 0x00, 0x00, 0x7e,
|
||||
0x66, 0x5a, 0x5a, 0x7a,
|
||||
0x76, 0x76, 0x7e, 0x76,
|
||||
0x76, 0x7e, 0x00, 0x00,
|
||||
};
|
||||
|
||||
assert(out);
|
||||
|
||||
out->width = 8;
|
||||
out->height = 16;
|
||||
out->stride = 1;
|
||||
out->cwidth = 1;
|
||||
out->data = fallback_data;
|
||||
}
|
||||
|
||||
@@ -54,3 +54,4 @@ unsigned int unifont_get_width(unifont *u);
|
||||
unsigned int unifont_get_height(unifont *u);
|
||||
unsigned int unifont_get_stride(unifont *u);
|
||||
int unifont_lookup(unifont *u, unifont_glyph *out, uint32_t ucs4);
|
||||
void unifont_fallback(unifont_glyph *out);
|
||||
|
||||
Reference in New Issue
Block a user