Instead of using the blown up UTERM_FORMAT_GREY binary data, we now use an
A1 1bit alpha channel and extract the data during runtime. This guarantees
that only used characters will be extracted into the full alpha channel.
We should add support for A1 formats in uterm to avoid this problem
entirely.
We also now link the binary file directly into the module via ld. This
avoids the long compile times for the huge C-array that we previously
generated. As a side effect, you no longer run out of memory linking this
file on small machines.
With this change we could even start making unifont a default font-backend
as it now works pretty well.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Instead of clipping every character to a one-cell boundary, we now render
multi-cell characters correctly into multiple cells.
This does not adjust the console-renderers but only the font renderers to
provide the correct glyphs.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Current warning without the patch:
src/genunifont.c: In function 'print_data_row':
src/genunifont.c:85:3: warning: format not a string literal and no format arguments [-Wformat-security]
src/genunifont.c:88:3: warning: format not a string literal and no format arguments [-Wformat-security]
We use fputs() to avoid any format-string parsing and instead directly
write the string into the file.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This new generator converts the unifont hex-encoded data into a C-source
file which then can be compiled statically into the kmscon binary. Please
note that the resulting source file is bigger than 100MB and can take
quite a while to compile.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>