GadgetSeed  0.9.6
フォント描画

GadgetSeedは表示デバイスへの文字フォント描画機能があります。
フォントは複数の種類を持つことができます。
またそれぞれのフォントは異なる文字の大きさやデザインを定義することができます。
GadgeeSeedでは選択できるフォントの単位をフォントセット st_fontset として定義しています。

フォント描画を使用するには、以下のコンフィグ項目を有効にして下さい。

COMP_ENABLE_FONTS


フォントセット

GadgetSeedは使用するフォントセットを コンフィグレーション で選択することができます。

フォントセット構造体

フォントセットは以下の構造体で定義されます。

st_fontset フォントセット

フォントセット構造体は1種類のフォントセットを定義するデータ構造です。
フォントセット構造体は以下の組み合わせのフォントデータ st_font を定義することが出来ます。

  • 半角フォントデータのみ
  • 半角フォントデータと全角フォントデータ

それぞれのフォントデータは以下のように定義しています。

  • 半角フォントデータ - 文字コードが1バイトで0x00 - 0xFFの文字
  • 全角フォントデータ - 文字コードが2バイト以上の文字

全角フォントは主に漢字文字を示しています。

フォントデータ構造体

フォントデータは以下の構造体で定義されています。

st_font フォントデータ


文字描画API

include ファイル : font.h

API名 機能
set_fontset() 描画に使用するフォントセット(カレントフォントセット)を設定する
get_fontset() 描画に使用されているフォントセット(カレントフォントセット)取得する
fontset_count() 登録されているフォントセットの数を取得する
fontset_name() フォント名を取得する
get_fontptr_by_name() フォントセットのポインタを取得する
set_font_by_name() カレントフォントセットをフォント名で設定する
set_font_drawmode() フォント描画モードを設定する
draw_char() 文字を描画する
draw_str() 文字列を描画する
draw_fixed_width_str() 固定幅で文字列を描画する
draw_str_in_box() 四角形内に文字列を描画する
font_width() カレントフォントセットの文字幅を取得する
str_width() カレントフォントセットの文字列幅を取得する
font_height() カレントフォントセットの文字高さを取得する

フォントデータの作成

テキストデータからのフォントデータ作成

以下のような文字イメージを記載したテキストデータからフォントデータのCソースを作成するツールを使用することができます。

# 0x41 0 8 A
. . X X X . . .
. X X X X X . .
X X X . X X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
X X X X X X X .
X X X X X X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
X X . . . X X .
. . . . . . . .

"8x16"フォントは以下のテキストデータを使用して作成されています。

fontdata/8x16/font_8x16.txt

テキストデータからのCソースデータの作成手順は以下のMakefileを参照してください。

fontdata/8x16/Makefile
fontdata/txt2font.mk

BDFフォントからのフォントデータ作成

BDFフォントからフォントデータを作成することができます。

"jiskan16"フォントはBDFフォントのjiskan16より作成されています。

BDFフォントからのCソースデータの作成手順は以下のMakefileを参照してください。

fontdata/jiskan16/Makefile
fontdata/bdf2dbfont.mk

OTF、TTFフォントからのフォントデータ作成

OTFフォントやTTFフォントからフォントデータを作成することができます。 これは、実験的な試みです。