マイコン工作実験日記

Microcontroller を用いての工作、実験記録

日本語フォントで表示する

2013-12-11 10:13:31 | LCD
LPCcappuccinoのSDカードの使い道として計画していた日本語フォントの格納と、それを用いた表示作業を時おり進めてきましたが、ようやくと表示できるようになりました。まだまだやっつけ作業なので、これから改善要。



フォントデータはもともとSAM4LでのLCD表示に使っていたものを流用しています。元となっているのはやさしさゴシックフォントです。マイコンにはttfの展開処理は重すぎるので、freetype2を使ってビットマップ展開した独自フォーマットのファイルを作成し、これをSDカードに保存しておきます。上の例では文字の大きさに応じて2種類のビットマップフォントファイルを用意しています。

描画時には、実際に使用しされる文字のビットマップとメトリックデータだけをSDカードから読み込んで、これをEVEにダウンロード、そしてCMD_SETFONTによりユーザ定義フォントとして登録します。現時点ではEVEで使うユーザ定義フォント用のビットマップとするためには、データ読み込み後にさらに加工が必要になってしまっています。また、元データが深さ8ビットであることもあり、EVE上でも深さ8ビットのフォーマット(L8)でダウンロードしています。そのため、RAM_Gの空間をいたずらに消費してしまっています。この例では25kB程度を使用。深さ4ビットに変えれば半分近くに減るはずです。ttfファイルからビットマップデータへの変換ツールを作りなおした方がいいので、そのうちにやろうかとは思っています。

ユーザフォントデータは, RAM_Gの空間にダウンロードするので、画面キャプチャはこの領域を破壊しないようにします。そうすると、全画面をCMD_SNAPSHOTでキャプチャすることはできなくなるので、今回は画面の上半分(480×135)画素分だけをキャプチャしています。