Yabu.log

ITなどの雑記

C言語で美咲フォントを扱う4

前回から引き続き、美咲フォントという8*8ピクセルのサイズで第二水準の漢字までが扱えるビットマップフォントをC言語で扱うプログラムを作っています。

ソースはここにあります。

github.com

処理は結構完成していて、呼び出し側から使う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としてはヘッダの整理とライブラリとしてのコンパイルでしょうか。 あとエラー処理を一切考えていないので、それも必要かもしれません。