From f3822f2f0ddbde5df298363d9f97958cefd2a483 Mon Sep 17 00:00:00 2001 From: Gary Wong Date: Sun, 3 Jan 2021 22:46:00 -0700 Subject: [PATCH] Add DEC line drawing characters to font. --- tests/console/Makefile | 2 +- tests/console/font.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/tests/console/Makefile b/tests/console/Makefile index 68e266b..d7582dc 100644 --- a/tests/console/Makefile +++ b/tests/console/Makefile @@ -1,6 +1,6 @@ # Point to a suitable monospaced TTF font: DejaVu Sans Mono will work, see: # https://dejavu-fonts.github.io/ -FONT=/usr/share/fonts/dejavu/DejaVuSansMono.ttf +FONT=$(shell fc-match -f %{file} mono) all: console.svf diff --git a/tests/console/font.c b/tests/console/font.c index a8db446..5cc9195 100644 --- a/tests/console/font.c +++ b/tests/console/font.c @@ -85,7 +85,7 @@ extern int main( int argc, char *argv[] ) { slot = face->glyph; - for( i = 0; i < 127; i++ ) { + for( i = 0x21; i < 0x7F; i++ ) { if( FT_Load_Char( face, i, FT_LOAD_RENDER ) ) continue; @@ -94,6 +94,10 @@ extern int main( int argc, char *argv[] ) { } for( y = 0; y < 0x20; y++ ) + for( x = 0; x < 0x10; x++ ) + font[ 0x01 ][ y ][ x ] = x ^ y ? 0x0 : 0xF; + + for( y = 0; y < 0x20; y++ ) for( x = 0; x < 0x20; x++ ) { int fill; @@ -120,10 +124,59 @@ extern int main( int argc, char *argv[] ) { font[ 6 + ( x < 0x10 ) ][ y ][ 0x0F - ( x & 0x0F ) ] = fill; font[ 8 + ( x >= 0x10 ) ][ y ][ x & 0x0F ] = fill; } + + for( y = 0; y <= 0x10; y++ ) + for( x = 0x07; x <= 0x08; x++ ) { + font[ 0x0A ][ y ][ x ] = 0x0F; + font[ 0x0D ][ y ][ x ] = 0x0F; + font[ 0x0E ][ y ][ x ] = 0x0F; + font[ 0x14 ][ y ][ x ] = 0x0F; + font[ 0x15 ][ y ][ x ] = 0x0F; + font[ 0x16 ][ y ][ x ] = 0x0F; + font[ 0x18 ][ y ][ x ] = 0x0F; + } + + for( y = 0x0F; y < 0x20; y++ ) + for( x = 0x07; x <= 0x08; x++ ) { + font[ 0x0B ][ y ][ x ] = 0x0F; + font[ 0x0C ][ y ][ x ] = 0x0F; + font[ 0x0E ][ y ][ x ] = 0x0F; + font[ 0x14 ][ y ][ x ] = 0x0F; + font[ 0x15 ][ y ][ x ] = 0x0F; + font[ 0x17 ][ y ][ x ] = 0x0F; + font[ 0x18 ][ y ][ x ] = 0x0F; + } + + for( x = 0; x <= 0x08; x++ ) + for( y = 0x0F; y <= 0x10; y++ ) { + font[ 0x0A ][ y ][ x ] = 0x0F; + font[ 0x0B ][ y ][ x ] = 0x0F; + font[ 0x0E ][ y ][ x ] = 0x0F; + font[ 0x11 ][ y ][ x ] = 0x0F; + font[ 0x15 ][ y ][ x ] = 0x0F; + font[ 0x16 ][ y ][ x ] = 0x0F; + font[ 0x17 ][ y ][ x ] = 0x0F; + } + + for( x = 0x07; x < 0x10; x++ ) + for( y = 0x0F; y <= 0x10; y++ ) { + font[ 0x0C ][ y ][ x ] = 0x0F; + font[ 0x0D ][ y ][ x ] = 0x0F; + font[ 0x0E ][ y ][ x ] = 0x0F; + font[ 0x11 ][ y ][ x ] = 0x0F; + font[ 0x14 ][ y ][ x ] = 0x0F; + font[ 0x16 ][ y ][ x ] = 0x0F; + font[ 0x17 ][ y ][ x ] = 0x0F; + } + + font[ 0x1E ][ 0x0F ][ 0x07 ] = 0x0F; + font[ 0x1E ][ 0x0F ][ 0x08 ] = 0x0F; + font[ 0x1E ][ 0x10 ][ 0x07 ] = 0x0F; + font[ 0x1E ][ 0x10 ][ 0x08 ] = 0x0F; for( y = 0; y < 0x20; y++ ) for( x = 0; x < 0x10; x++ ) - font[ 127 ][ y ][ x ] = y >> 1; + font[ 0x7F ][ y ][ x ] = y >> 1; show_font(); -- 2.11.4.GIT