# createFont???()

フォントジェネレータ関数は、収録フォントごとに定義されています。関数パラメータは共通で、以下のようになります。

```cpp
const FontDef& createFontShinonome16(
    uint8_t id,
    uint8_t line_space = 0,
    uint8_t char_space = 0,
    uint32_t u32Opt = 0);
```

上記は東雲フォント16ドット版（常用漢字収録）のジェネレータの例です。

`id`は、ユーザが指定するフォントID。

`line_space`はフォントの行間スペースをピクセル数で指定します。

`char_space`は文字間スペースでピクセルで指定します。文字間スペースはシングル幅のフォントの指定です。ダブル幅のフォントの場合は倍になります。

`u32Opt`は、フォントのオプションを指定します。オプションは`U32_OPT_FONT_TATEBAI`と`U32_OPT_FONT_YOKOBAI`があり、論理和で指定します。

フォントジェネレータの戻り値は`FontDef&`になっています。この戻り値はライブラリ内部のフォント管理テーブルに生成されたオブジェクトへの参照です。既に登録済みのIDであるばあいは、そのIDに対して上書きを行います。登録できなかった場合は`.is_default()`メソッドが`true`になるデフォルトフォントが返されます。

```cpp
if (createFontShinonome16(11).is_default()) {
    // フォント作成のエラー
}
```
