X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Funifont.c;h=0da81e8ff2dcd46822991f3ee9039a11ddef8501;hb=113b3fc1a8061f4a24dd0db74e9a3cd0083b2251;hp=aa91794410ffe92e37e729535619e6926d4426ab;hpb=c2977e5cb874e696994bcb93b8148f52c315b901;p=elogind.git diff --git a/src/libsystemd-terminal/unifont.c b/src/libsystemd-terminal/unifont.c index aa9179441..0da81e8ff 100644 --- a/src/libsystemd-terminal/unifont.c +++ b/src/libsystemd-terminal/unifont.c @@ -28,13 +28,10 @@ #include #include -#include #include #include #include #include -#include -#include #include "macro.h" #include "unifont-def.h" #include "unifont.h" @@ -181,6 +178,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 +218,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; +}