X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Funifont.c;h=2acfa9821ab2520e19f2604b25d025adaaba2c2f;hb=b57b06258e0b1894edb6d1fc52a80b3c33164892;hp=9e0f718665fb8b2eda2ac2434dc7efe1d10fbb40;hpb=86db5dfb6d334e583ea4161191754522ce850eed;p=elogind.git diff --git a/src/libsystemd-terminal/unifont.c b/src/libsystemd-terminal/unifont.c index 9e0f71866..2acfa9821 100644 --- a/src/libsystemd-terminal/unifont.c +++ b/src/libsystemd-terminal/unifont.c @@ -37,7 +37,7 @@ #include #include "macro.h" #include "unifont-def.h" -#include "unifont-internal.h" +#include "unifont.h" #include "util.h" struct unifont { @@ -181,6 +181,18 @@ unifont *unifont_unref(unifont *u) { return NULL; } +unsigned int unifont_get_width(unifont *u) { + assert(u); + + return 8U; +} + +unsigned int unifont_get_height(unifont *u) { + assert(u); + + return 16U; +} + unsigned int unifont_get_stride(unifont *u) { assert(u); @@ -209,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; +}