前回から引き続き、美咲フォントという8*8ピクセルのサイズで第二水準の漢字までが扱えるビットマップフォントをC言語で扱うプログラムを作っています。
ソースはここにあります。
処理は結構完成していて、呼び出し側から使うAPIの仕様などが固まってきました。
//文字のデータ。"美しい美咲フォントの世界" char test_letters[12][2] ={{0x94,0xfc}, {0x82,0xb5}, {0x82,0xa2}, {0x94,0xfc}, {0x8d,0xe7}, {0x83,0x74}, {0x83,0x48}, {0x83,0x93},{0x83,0x67}, {0x82,0xcc}, {0x90,0xa2}, {0x8a,0x45}}; for(int i=0;i<(int)sizeof(test_letters)/2;i++){ char test_letter0[2]; //多次元配列もう少しスマートにコピーしたいなぁ test_letter0[0] = test_letters[i][0]; test_letter0[1] = test_letters[i][1]; //独自定義型。実態はchar[8] font_data print_test; //フォントを取得する get_font_data(test_letter0,&print_test); //取得したフォントをコンソールに表示。 print_font(print_test); }
print_font
はutil的なものですが。bmpで扱いたかったりvramにデータを描く場合は呼び出し側に何か便利な関数が欲しいですね。
00100100 11111110 01111100 00010000 11111110 00010000 11101110 00000000 00100000 00100000 00100000 00100000 00100000 00100010 00011100 00000000 00000000 10001000 10000100 10000010 10000010 01010000 00100000 00000000 00100100 11111110 01111100 00010000 11111110 00010000 11101110 00000000 00010100 11100000 10111110 10101000 11111110 00001000 00110110 00000000 00000000 01111110 00000010 00000010 00000100 00001000 00110000 00000000 00000000 00000000 00001000 01111100 00011000 01101000 00011000 00000000 01000000 00100000 00000010 00000010 00000100 00001000 01110000 00000000 00100000 00100000 00100000 00111000 00100100 00100000 00100000 00000000 00000000 00111000 01010100 10010010 10100010 01000100 00011000 00000000 01010100 01010100 11111110 01010100 01011100 01000000 01111110 00000000 01111100 01010100 01111100 01010100 01111100 10101010 01001000 00000000 01010100 11101110 01111100 11111010 11110100 01000010 01110100 00000000
適当に見やすく置換して見ました
爨 爨 爨爨爨爨爨爨爨 爨爨爨爨爨 爨 爨爨爨爨爨爨爨 爨 爨爨爨 爨爨爨 爨 爨 爨 爨 爨 爨 爨 爨爨爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨爨爨爨爨爨爨 爨爨爨爨爨 爨 爨爨爨爨爨爨爨 爨 爨爨爨 爨爨爨 爨 爨 爨爨爨 爨 爨爨爨爨爨 爨 爨 爨 爨爨爨爨爨爨爨 爨 爨爨 爨爨 爨爨爨爨爨爨 爨 爨 爨 爨 爨爨 爨 爨爨爨爨爨 爨爨 爨爨 爨 爨爨 爨 爨 爨 爨 爨 爨 爨爨爨 爨 爨 爨 爨爨爨 爨 爨 爨 爨 爨爨爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨 爨爨 爨 爨 爨 爨 爨 爨 爨爨爨爨爨爨爨 爨 爨 爨 爨 爨爨爨 爨 爨爨爨爨爨爨 爨爨爨爨爨 爨 爨 爨 爨爨爨爨爨 爨 爨 爨 爨爨爨爨爨 爨 爨 爨 爨 爨 爨
このライブラリのtodoとしてはヘッダの整理とライブラリとしてのコンパイルでしょうか。 あとエラー処理を一切考えていないので、それも必要かもしれません。