TWEFONT
フォント定義や描画
namespace TWEFONT には、フォントの定義やフォント描画のための手続きをまとめています。
このフォントライブラリは M5Stack 標準のライブラリのフォントには準じていないため M5Stackでのフォント描画APIなどで使用することが出来ません。
フォントの生成
フォントはFontDefクラスにより管理されます。フォントごとに用意されるFontDefクラスオブジェクトのジェネレータ関数により生成され、ライブラリ内部で生成時に指定したフォントIDと紐づけて管理されます。フォントは最大7つまで定義できます。フォント作成時に字間・行間・倍角を指定することができます。同じフォントに対して複数のフォントIDの登録が可能です。
下記の例では、フォントID 10 に16ドットの東雲フォント(縦倍角・横倍角指定)を、フォントIDを11に同じフォントですが倍角指定なし、行間を1ピクセルとしたフォント定義を行います。
TWEFONT::createFontShinonome16(10, 0, 0,
TWEFONT::U32_OPT_FONT_TATEBAI | TWEFONT::U32_OPT_FONT_YOKOBAI);
TWEFONT::createFontShinonome16(11, 1, 0);コンパイル時に、ジェネレータ関数createFont???()を呼び出されたフォントのデータがリンクされます。
フォントデータについて
本ライブラリには、作者が事実上パブリックドメイン(著作権等取扱はソースヘッダに含まれるクレジットを参照ください)を宣言しているフォントをいくつか含めています。
本ライブラリに含めるにあたって、以下の調整を行っています。
大本がBDF形式を変換し、描画ルーチンに適したデータ構造とした
これらフォントをUnicodeとして取り扱うための参照テーブルを用意した
latin1補助文字 U+00A0~u+00FFについて、フォント定義があるものについては収録した
JIS X201 半角カナ U+FF61~U+FF9F について、フォント定義があるものについては収録した
常用漢字(2645 文字)のフォントデータと、全収録(東雲フォントのみ、一部未収録字形があります)を用意した
日本語フォントのジェネレータ
ジェネレータ関数createFont???()には収録文字数に応じて3種類のジェネレータを用意しています。文字セットの生成は{MWM5ライブラリ}/fontsフォルダにあるスクリプトによって行います。
ジェネレータ
ワイド幅 文字数
収録
createFont???_mini()
576
ASCII, latin1拡張, JIS-X201(半角カナ:0xA1-DF), かな,カナ,記号(選別), 漢字(選別:MWM5ソース中に出現する文字をスクリプトにより抽出・追加), スクリプト指定文字
createFont???_std()
createFont???()
2645
ASCII, latin1拡張, JIS-X201(半角カナ:0xA1-DF), かな,カナ,記号,常用漢字,スクリプト指定文字
createFont???_full()
6867
ASCII, latin1拡張, JIS-X201(半角カナ:0xA1-DF), かな,カナ,記号,漢字,スクリプト指定文字
東雲フォント (12,14,16ドット)
12,14,16ドット版をライブラリに含めています。
常用漢字のみのジェネレータ (createFontShinonome12???(), createFontShinonome14???() , createFontShinonome16???())を呼び出します。
MP+フォント (10ドット, 12ドット)
ジェネレータ createFontMP10???()または createFontMP12???() を呼び出します。
8x6 LCD フォント
ジェネレータ createFontLcd8x6() を呼び出します。
latin拡張文字や日本語フォントは含まれません。
このフォントはいずれかのジェネレータ関数createFont???()が呼び出されたときに、デフォルトとしてフォントID=0に登録されます。
フォントIDについて
フォントIDは作成したフォントごとに割り当てられます。
IDは 0..32 の値を指定可能ですが、ユーザが登録できるのは 1..32 で最大7フォント登録できます。
ID=0 のフォントは 8x6 LCD フォントに割り当てられます。
フォント情報の取得
フォント情報にアクセスするためには、queryFont()によりFontDefオブジェクトを取得し、諸情報を得ます。
ターミナルでの使用
ターミナルにフォントを指定するには、フォントの生成を行い、フォントIDをターミナルオブジェクトに指定します。フォント指定後はforce_refresh()メソッドによる再描画を行います。
ターミナルのフォント変更は、set_font()によりフォントを指定し、その後、clear_screen()とforce_refresh()を呼び出します。
フォントの描画について
drawChar()関数を用いて描画することができます。
最終更新