LovyanGFXに同封されているフォント

起因はこれ。

この巨大なリテラル文字列をMSVCでコンパイルしようとすると、コンパイル時にヒープ不足が発生(32bitコンパイラ)したり、コンパイル時間がちょー長かったり(64bitコンパイラ)するというもの。

MSVCをイジる、、、という選択肢は無いので、、、 リテラル文字列を数値配列にすれば多少は改善されるのかも?と思い、フォントファイルからCコードを生成するbdfconvを改造して試そうとしました。

ですが、そもそもフォントのあたりよく知らないので、LovyanGFXコードを徘徊することに。

LovyanGFXに同封されているフォントは、lgfx_fonts.hppに列挙されていました。

github.com

形式がいろいろとあるみたい。

図にしたのがこちら。

f:id:matsujirushix:20210919142941p:plain

Wio Terminalで、指定フォントで表示を見るコードは、こんな感じでOKでした。 (3_fonts.inoから抜粋。)

#include <LovyanGFX.hpp>

static LGFX lcd;

void setup() {
  lcd.init();
  lcd.setTextWrap(true, true);
  
  lcd.setFont(&fonts::efontJA_10);
}

void loop() {
  lcd.setTextColor(random(0x10000), random(0x10000));

  lcd.print("Hello");
  lcd.print("こんにちは");
  lcd.print("你好");
  lcd.print("안녕하세요");
  lcd.print("Доброе утро");
  lcd.print("Päivää");
  lcd.print("Здравствуйте");
  lcd.println();
  
  delay(3000);
}

f:id:matsujirushix:20210919143312p:plain