2024/06/03 電子書籍「電子書籍出版・技術文書作成を劇的に加速!秀丸エディタ + Markdown + Pandocの驚異」を出版

M5UnifiedでのM5GFXライブラリの使い方

M5Stack

M5Stack向けのオールインワンライブラリM5Unifiedは、グラフィックライブラリのM5GFXライブラリを使用しています。

M5GFXライブラリは、M5Stackデバイス搭載の各種ディスプレイを、共通のAPIでシンプルに制御できるグラフィックライブラリです。従来の煩雑な設定から解放され、直感的な操作で、思い通りの描画表現を実現します。

本記事では、M5UnifiedでのM5GFXライブラリの使い方を説明します。

以下の記事「M5GFXライブラリの使い方」も参考にしてください。

M5UnifiedでのM5GFXの変数

M5GFX用の変数は、M5Unified.hppで以下の様に定義されています。

M5Unifiedサンプルコードでは、M5.Displayが使われていますが、M5.LcdでもM5GFXライブラリが使用できます。

    M5GFX Display;  // setPrimaryされたディスプレイのインスタンス
    M5GFX &Lcd = Display;

もともとM5Stackでは、TFT_eSPIライブラリ(グラフィックライブラリ)の少し古いバージョンを使用していました。M5.Lcdでライブラリにアクセスしていました。M5Unifiedでは、互換性を考慮して、M5.Lcdで、M5GFXライブラリを使用できます。

GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32...

M5GFXの主なメンバー関数

M5GFXの主なメンバー関数です。

startWrite/endWrite関数

startWriteendWrite関数を使用して複数の描画操作を一度にまとめて実行することで、ディスプレイへの通信回数を減らし、描画速度を向上させます。

関数説明
startWriteSPIバスのCSをアサートします。 endWrite() と対で使用します。startWrite()をパネル描画の際に明示的に記述することによりDMAバッファを効率的に使用することが可能になります。
endWritestartWrite() とペアで使用します。

各種設定/情報取得

各種設定や、情報取得を行う関数です。

関数説明
setRotation画面の向きを指定します。
setCursorカーソル位置を指定します。
setColor描画色を指定します。
setColorDepthColorDepthを設定します。
setTextColorSet TextColor.
setTextDatumテキストを表示するときのデフォルト基準点(datum)を設定します。
TL_DATUM = Top left
TC_DATUM = Top centre
TR_DATUM = Top right
ML_DATUM = Middle left
MC_DATUM = Middle centre
MR_DATUM = Middle right
BL_DATUM = Bottom left
BC_DATUM = Bottom centre
BR_DATUM = Bottom right
setTextScrollテキストスクロールを有効にします。
setTextSizeテキストサイズを指定します。実数で指定が可能です。
setTextStyleテキストの書式を設定します。
setTextWrapX軸は文字列の折返しをするかどうか、Y軸は画面下部まで表示したあと上に戻るかどうかを指定します。
textLength指定した幅に、指定した文字列のうち表示可能な文字数を取得します。
textWidthパネルに文字列を表示したときの表示幅(pixel)を取得します。フォントを省略するとデフォルトフォントで計算します。
getTextDatumsetTextDatum() で設定された構造体を取得します。
getTextPaddingテキストの余白を取得します。
getTextSizeXsetTextSize() 設定されたテキストサイズの幅を取得します。
getTextSizeYsetTextSize() で設定されたテキストサイズの高さを取得します。
getTextStylesetTextStyle() で設定されたテキスト情報を取得します。
fontHeightReturns the height of the specified font.
fontWidthReturns the width of the specified font.

画面クリア

画面クリア用関数です。

関数説明
clearパネルをクリアします。引数にカラーコードを指定した場合、その色で初期化します。
clearClipRectsetClipRect() で指定した領域をクリアします。
clearDisplayパネルをクリアします。引数にカラーコードを指定した場合、その色で初期化します。

フォントの設定用関数

フォントの設定用の関数です。

関数説明
setTextFont(font)1:Adafruit 8ピクセルASCIIフォント

2:16ピクセルASCIIフォント

3:未設定

4:26ピクセルASCIIフォント

5:未設定

6:26ピクセル数字フォント

7:48ピクセル7セグ風フォント

8:75ピクセル数字フォント
setFontデフォルトフォントを指定します。
getFontsetFont() で設定されているフォントを取得します。
loadFontフォントデータを読み込みます。
unloadFontsetFont() で設定されたフォントを、アンロードして初期値に戻します。(&fonts::Font0)

print系関数

文字列を表示する、print系の関数です。

関数説明
printカーソル位置に文字列を出力します。ArduinoのPrint.hに準拠しています。
printfカーソル位置に文字列を出力します。ArduinoのLibPrint.hに準拠しています。
printlnカーソル位置に文字列を出力します。文字列の最後に改行コードを追加します。ArduinoのPrint.hに準拠しています。

draw系関数

図形等を描画するdraw系の関数です。

関数説明
drawArc円弧を描きます。r0とr1を指定し厚みのある円弧を描きます。
drawBezierベジェ曲線を描きます。制御点は3点または4点を指定します。
drawBmpBMP形式のビットマップデータを描きます。ファイルやStreamを指定できます。
drawBmpFilebmpファイルのビットマップデータを描きます。
drawBmpUrlURLで指定したBMPデータを描きます。
drawCenterString(drawCentreString)テキストを中寄せで描画します。
drawCharユニコードで文字を描画します。
drawCircle円を描きます。
drawEllipse楕円を描きます。
drawEllipseArc楕円の円弧を描きます。
drawFastHLine水平方向の線を描きます。
drawFastVLine垂直方向の線を描きます。
drawFloatFloat型(浮動少数型)の値を描画します。
drawGradientHLine色が変化する水平方向の線を描きます。
drawGradientLine色が変化する線を描きます。
drawGradientVLine色が変化する垂直方向の線を描きます。
drawJpgJPGデータを描画します。File, Stream等のデータを指定可能です。
drawJpgFileJPGファイルを描画します。
drawJpgUrlURLで指定したJPGデータを表示します。
drawLine線を描く。
drawNumberlong型(整数型)の数値を描画します。
drawPixel点を描画します。
drawPngPNGデータを描画します。FileやStreamを指定することができます。
drawPngFilePNGファイルを描きます。
drawPngUrl指定したURLのPNGデータを描きます。
drawQoiQoiデータを描画します。FileやStreamを指定することができます。
drawQoiFileQoiファイルを描画します。
drawQoiUrl指定したURLのQoiデータを描画します。
drawRect矩形を描きます。
drawRightString右寄せで文字列を描画します。
drawRoundRect角が丸い矩形を描画します。
drawString文字を描画します。
drawTriangle3つの点を指定して三角形を描画します。

画面の塗りつぶし

画面の塗りつぶし用の関数です。

関数説明
fillAffineアフィン変換行列で描画した領域を塗りつぶします。
fillArc塗りつぶした円弧を描きます。
fillCircle塗りつぶした円を描きます。
fillEllipse塗りつぶした楕円を描きます。
fillEllipseArc塗りつぶした円弧を描きます。
fillRect塗りつぶした矩形を描きます。
fillRectAlpha不透明な矩形を描画します。
fillRoundRect角が丸い塗りつぶした矩形を描きます。
fillScreen画面を塗りつぶします。
fillTriangle3つの点を指定して塗りつぶした三角形を描きます。

組み込みフォント

M5GFXには、LovyanGFXと同じ組み込みフォントとなっています。

efontをコンバートした日本語・韓国語・中国語(簡体字・繁体字)フォントも含まれています。

日本語としては、efontの日本語フォント以外に、明朝体( 固定幅、プロポーショナル)、ゴシック体( 固定幅、プロポーショナル)の8,12,16,20,24,28,32,36,40pxのホントをサポーとしています。

lgfx_fonts.hpp内で、extern宣言されていますので確認してみてください。

標準フォント

以下の6個の標準フォントが使用できます。

Font0  // 8px ASCII文字
Font2  // 16px ASCII文字
Font4  // 26px ASCII文字
Font6  // 36(48)px 数字と時計用文字のみ(1234567890apm.:-)
Font7  // 48px 7セグ風数字と記号のみ(1234567890.:-)
Font8  // 75px 数字と記号のみ(1234567890.:-)

setTextFont関数で、これらのフォントを選択する事ができます。setTextFont関数の引数で示すフォントは、lgfx_fonts.cpp の中で、以下のフォントとなっています。1, 3, 5 は、未使用となっています。

// deprecated array.
const IFont* fontdata [] =
{
    &fonts::Font0,  // GLCD font (Font 0)
    &fonts::Font0,  // Font 1 current unused
    &fonts::Font2,
    &fonts::Font0,  // Font 3 current unused
    &fonts::Font4,
    &fonts::Font0,  // Font 5 current unused
    &fonts::Font6,
    &fonts::Font7,
    &fonts::Font8,
    nullptr,
};
フォント番号Font種類文字幅横幅縦幅
0&fonts::Font0英数固定長68
2&fonts::Font2英数可変長816
4&fonts::Font4英数可変長1426
6&fonts::Font6数字のみ固定長2748
7&fonts::Font7数字のみ固定長3248
8&fonts::Font8数字のみ固定長5575
  • setTextFont関数で、フォントを選択
#include <Arduino.h>
#include <M5Unified.h>

const char* sampleText1 = "[ABCabc123/*~{}";
const char* sampleText2 = "0123456789";

void setup(void)
{
	auto cfg = M5.config();		/// 設定用の構造体を取得。
	M5.begin(cfg);				/// M5Unifiedを使用する準備をする。
	
	
	M5.Lcd.fillScreen(TFT_BLACK);	// 画面塗り潰し
	M5.Lcd.setCursor(0, 0);			// カーソルを左上にリセット

//	M5.Lcd.print("Fornt: 0\n");
//	M5.Lcd.print("print\n");
//	M5.Lcd.println("println");
//	M5.Lcd.printf("printf %d\n", 10);

	M5.Lcd.setTextSize(1);
	M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);	// フォント色セット

	M5.Lcd.setTextFont(0);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setTextFont(2);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setTextFont(4);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setTextFont(6);
	M5.Lcd.println(sampleText2);
	M5.Lcd.setTextFont(7);
	M5.Lcd.println(sampleText2);
	M5.Lcd.setTextFont(8);
	M5.Lcd.println(sampleText2);
}

void loop(void)
{
	M5.delay(1);
	M5.update();	/// ボタン操作・タッチ操作の状態を更新する。
}
  • setFont関数で、フォントを選択
#include <Arduino.h>
#include <M5Unified.h>

const char* sampleText1 = "[ABCabc123/*~{}";
const char* sampleText2 = "0123456789";

void setup(void)
{
	auto cfg = M5.config();		/// 設定用の構造体を取得。
	M5.begin(cfg);				/// M5Unifiedを使用する準備をする。
	
	
	M5.Lcd.fillScreen(TFT_BLACK);	// 画面塗り潰し
	M5.Lcd.setCursor(0, 0);			// カーソルを左上にリセット

	M5.Lcd.setTextSize(1);
	M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);	// フォント色セット

	M5.Lcd.setFont(&fonts::Font0);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setFont(&fonts::Font2);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setFont(&fonts::Font4);
	M5.Lcd.println(sampleText1);
	M5.Lcd.setFont(&fonts::Font6);
	M5.Lcd.println(sampleText2);
	M5.Lcd.setFont(&fonts::Font7);
	M5.Lcd.println(sampleText2);
	M5.Lcd.setFont(&fonts::Font8);
	M5.Lcd.println(sampleText2);
}

void loop(void)
{
	M5.delay(1);
	M5.update();	/// ボタン操作・タッチ操作の状態を更新する。
}
  • 実行結果

日本語フォント(IPA)

IPAフォントをコンバートした日本語フォントが4種類x9サイズ = 36通りプリセットされています。

サイズ明朝体 固定幅明朝体 プロポーショナルゴシック体 固定幅ゴシック体 プロポーショナル
8lgfxJapanMincho_8lgfxJapanMinchoP_8lgfxJapanGothic_8lgfxJapanGothicP_8
12lgfxJapanMincho_12lgfxJapanMinchoP_12lgfxJapanGothic_12lgfxJapanGothicP_12
16lgfxJapanMincho_16lgfxJapanMinchoP_16lgfxJapanGothic_16lgfxJapanGothicP_16
20lgfxJapanMincho_20lgfxJapanMinchoP_20lgfxJapanGothic_20lgfxJapanGothicP_20
24lgfxJapanMincho_24lgfxJapanMinchoP_24lgfxJapanGothic_24lgfxJapanGothicP_24
28lgfxJapanMincho_28lgfxJapanMinchoP_28lgfxJapanGothic_28lgfxJapanGothicP_28
32lgfxJapanMincho_32lgfxJapanMinchoP_32lgfxJapanGothic_32lgfxJapanGothicP_32
36lgfxJapanMincho_36lgfxJapanMinchoP_36lgfxJapanGothic_36lgfxJapanGothicP_36
40lgfxJapanMincho_40lgfxJapanMinchoP_40lgfxJapanGothic_40lgfxJapanGothicP_40
  • 16ドットのサイズと24ドットのサイズを表示したサンプルです。
#include <Arduino.h>
#include <M5Unified.h>

void setup(void)
{
	auto cfg = M5.config();		/// 設定用の構造体を取得。
	M5.begin(cfg);				/// M5Unifiedを使用する準備をする。
	
	M5.Lcd.fillScreen(TFT_BLACK);	// 画面塗り潰し
	M5.Lcd.setCursor(0, 0);			// カーソルを左上にリセット

	M5.Lcd.setTextFont(0);
	M5.Lcd.setTextSize(1);
	M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);	// フォント色セット

	M5.Lcd.setFont(&fonts::lgfxJapanMincho_16);
	M5.Lcd.print("明朝体 16 Hello World\nこんにちは世界\n");
	
	M5.Lcd.setFont(&fonts::lgfxJapanMinchoP_16);
	M5.Lcd.print("明朝 P 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::lgfxJapanGothic_16);
	M5.Lcd.print("ゴシック体 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::lgfxJapanGothicP_16);
	M5.Lcd.print("ゴシック P 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::lgfxJapanMincho_24);
	M5.Lcd.print("明朝体 24 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::lgfxJapanGothic_24);
	M5.Lcd.print("ゴシック体 24 Hello World\nこんにちは世界\n");
}

void loop(void)
{
	M5.delay(1);
	M5.update();	/// ボタン操作・タッチ操作の状態を更新する。
}
  • 実行結果

efontフォント

efontをコンバートした日本語・韓国語・中国語(簡体字・繁体字)フォントが各4種類x5サイズ(10, 12, 14, 16, 24)=20通りプリセットされています。

  • 日本語
サイズボールドボールドイタリックイタリック
10efontJA_10efontJA_10_befontJA_10_biefontJA_10_i
12efontJA_12efontJA_12_befontJA_12_biefontJA_12_i
14efontJA_14efontJA_14_befontJA_14_biefontJA_14_i
16efontJA_16efontJA_16_befontJA_16_biefontJA_16_i
24efontJA_24efontJA_24_befontJA_24_biefontJA_24_i
  • 簡体字
サイズボールドボールドイタリックイタリック
10efontCN_10efontCN_10_befontCN_10_biefontCN_10_i
12efontCN_12efontCN_12_befontCN_12_biefontCN_12_i
14efontCN_14efontCN_14_befontCN_14_biefontCN_14_i
16efontCN_16efontCN_16_befontCN_16_biefontCN_16_i
24efontCN_24efontCN_24_befontCN_24_biefontCN_24_i
  • 繁体字
サイズボールドボールドイタリックイタリック
10efontTW_10efontTW_10_befontTW_10_biefontTW_10_i
12efontTW_12efontTW_12_befontTW_12_biefontTW_12_i
14efontTW_14efontTW_14_befontTW_14_biefontTW_14_i
16efontTW_16efontTW_16_befontTW_16_biefontTW_16_i
24efontTW_24efontTW_24_befontTW_24_biefontTW_24_i
  • 韓国語
サイズボールドボールドイタリックイタリック
10efontKR_10efontKR_10_befontKR_10_biefontKR_10_i
12efontKR_12efontKR_12_befontKR_12_biefontKR_12_i
14efontKR_14efontKR_14_befontKR_14_biefontKR_14_i
16efontKR_16efontKR_16_befontKR_16_biefontKR_16_i
24efontKR_24efontKR_24_befontKR_24_biefontKR_24_i
  • サンプルコード
#include <Arduino.h>
#include <M5Unified.h>

void setup(void)
{
	auto cfg = M5.config();		/// 設定用の構造体を取得。
	M5.begin(cfg);				/// M5Unifiedを使用する準備をする。
		
	M5.Lcd.fillScreen(TFT_BLACK);	// 画面塗り潰し
	M5.Lcd.setCursor(0, 0);			// カーソルを左上にリセット

	M5.Lcd.setTextSize(1);
	M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);	// フォント色セット

	M5.Lcd.setFont(&fonts::efontJA_16);
	M5.Lcd.print("16 Hello World\nこんにちは世界\n");
	
	M5.Lcd.setFont(&fonts::efontJA_16_b);
	M5.Lcd.print("ボールド 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::efontJA_16_bi);
	M5.Lcd.print("ボールドイタリック 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::efontJA_16_i);
	M5.Lcd.print("イタリック 16 Hello World\nこんにちは世界\n");

	M5.Lcd.setFont(&fonts::efontJA_24_b);
	M5.Lcd.print("ボールド 24 Hello World\nこんにちは世界\n");
	
	M5.Lcd.setFont(&fonts::efontJA_24_i);
	M5.Lcd.print("イタリック 24 Hello World\nこんにちは世界\n");
}

void loop(void)
{
	M5.delay(1);
	M5.update();	/// ボタン操作・タッチ操作の状態を更新する。
}
  • 実行結果

その他フォント

フォントサイズ等
Font8x8C648×8px ASCII文字
AsciiFont8x168×16px ASCII文字
AsciiFont24x4824×48px ASCII文字
  • サンプルコード
#include <Arduino.h>
#include <M5Unified.h>

const char* sampleText1 = "[ABCabc123/*~{}";
const char* sampleText2 = "0123456789";

void setup(void)
{
	auto cfg = M5.config();		/// 設定用の構造体を取得。
	M5.begin(cfg);				/// M5Unifiedを使用する準備をする。
	
	M5.Display.fillScreen(TFT_BLACK);	// 画面塗り潰し
	M5.Display.setCursor(0, 0);			// カーソルを左上にリセット

	M5.Display.setTextSize(1);
	M5.Display.setTextColor(TFT_WHITE, TFT_BLACK);	// フォント色セット

	M5.Display.setFont(&fonts::Font8x8C64);
	M5.Display.println("Font8x8C64");
	M5.Display.println(sampleText1);
	M5.Display.println(sampleText2);
	
	M5.Display.setFont(&fonts::AsciiFont8x16);
	M5.Display.println("AsciiFont8x16");
	M5.Display.println(sampleText1);
	M5.Display.println(sampleText2);

	M5.Display.setFont(&fonts::AsciiFont24x48);
	M5.Display.println("AsciiFont24x48");
	M5.Display.println(sampleText1);
	M5.Display.println(sampleText2);
}

void loop(void)
{
	M5.delay(1);
	M5.update();	/// ボタン操作・タッチ操作の状態を更新する。
}
  • 実行結果

フリーフォント(GFXFF)

以下のフリーフォントが使用できます。

    extern const lgfx::GFXfont TomThumb                 ;
    extern const lgfx::GFXfont FreeMono9pt7b            ;
    extern const lgfx::GFXfont FreeMono12pt7b           ;
    extern const lgfx::GFXfont FreeMono18pt7b           ;
    extern const lgfx::GFXfont FreeMono24pt7b           ;
    extern const lgfx::GFXfont FreeMonoBold9pt7b        ;
    extern const lgfx::GFXfont FreeMonoBold12pt7b       ;
    extern const lgfx::GFXfont FreeMonoBold18pt7b       ;
    extern const lgfx::GFXfont FreeMonoBold24pt7b       ;
    extern const lgfx::GFXfont FreeMonoOblique9pt7b     ;
    extern const lgfx::GFXfont FreeMonoOblique12pt7b    ;
    extern const lgfx::GFXfont FreeMonoOblique18pt7b    ;
    extern const lgfx::GFXfont FreeMonoOblique24pt7b    ;
    extern const lgfx::GFXfont FreeMonoBoldOblique9pt7b ;
    extern const lgfx::GFXfont FreeMonoBoldOblique12pt7b;
    extern const lgfx::GFXfont FreeMonoBoldOblique18pt7b;
    extern const lgfx::GFXfont FreeMonoBoldOblique24pt7b;
    extern const lgfx::GFXfont FreeSans9pt7b            ;
    extern const lgfx::GFXfont FreeSans12pt7b           ;
    extern const lgfx::GFXfont FreeSans18pt7b           ;
    extern const lgfx::GFXfont FreeSans24pt7b           ;
    extern const lgfx::GFXfont FreeSansBold9pt7b        ;
    extern const lgfx::GFXfont FreeSansBold12pt7b       ;
    extern const lgfx::GFXfont FreeSansBold18pt7b       ;
    extern const lgfx::GFXfont FreeSansBold24pt7b       ;
    extern const lgfx::GFXfont FreeSansOblique9pt7b     ;
    extern const lgfx::GFXfont FreeSansOblique12pt7b    ;
    extern const lgfx::GFXfont FreeSansOblique18pt7b    ;
    extern const lgfx::GFXfont FreeSansOblique24pt7b    ;
    extern const lgfx::GFXfont FreeSansBoldOblique9pt7b ;
    extern const lgfx::GFXfont FreeSansBoldOblique12pt7b;
    extern const lgfx::GFXfont FreeSansBoldOblique18pt7b;
    extern const lgfx::GFXfont FreeSansBoldOblique24pt7b;
    extern const lgfx::GFXfont FreeSerif9pt7b           ;
    extern const lgfx::GFXfont FreeSerif12pt7b          ;
    extern const lgfx::GFXfont FreeSerif18pt7b          ;
    extern const lgfx::GFXfont FreeSerif24pt7b          ;
    extern const lgfx::GFXfont FreeSerifItalic9pt7b     ;
    extern const lgfx::GFXfont FreeSerifItalic12pt7b    ;
    extern const lgfx::GFXfont FreeSerifItalic18pt7b    ;
    extern const lgfx::GFXfont FreeSerifItalic24pt7b    ;
    extern const lgfx::GFXfont FreeSerifBold9pt7b       ;
    extern const lgfx::GFXfont FreeSerifBold12pt7b      ;
    extern const lgfx::GFXfont FreeSerifBold18pt7b      ;
    extern const lgfx::GFXfont FreeSerifBold24pt7b      ;
    extern const lgfx::GFXfont FreeSerifBoldItalic9pt7b ;
    extern const lgfx::GFXfont FreeSerifBoldItalic12pt7b;
    extern const lgfx::GFXfont FreeSerifBoldItalic18pt7b;
    extern const lgfx::GFXfont FreeSerifBoldItalic24pt7b;

Customフォント

以下のCustomフォントが使用できます。

    extern const lgfx::GFXfont Orbitron_Light_24;
    extern const lgfx::GFXfont Orbitron_Light_32;
    extern const lgfx::GFXfont Roboto_Thin_24   ;
    extern const lgfx::GFXfont Satisfy_24       ;
    extern const lgfx::GFXfont Yellowtail_32    ;
    extern const lgfx::GFXfont DejaVu9 ;
    extern const lgfx::GFXfont DejaVu12;
    extern const lgfx::GFXfont DejaVu18;
    extern const lgfx::GFXfont DejaVu24;
    extern const lgfx::GFXfont DejaVu40;
    extern const lgfx::GFXfont DejaVu56;
    extern const lgfx::GFXfont DejaVu72;

参考URL

以下のWebページも参考にしてください。

タイトルとURLをコピーしました