M5Stack用のLcd描画ターミナル
M5Stack の 320x240 LCD 用のターミナルの実装です。ITerm
を実装しています。
本クラスはnamespace TWEARD
内に定義されます。
ITerm
のコンストラクタにdrawArea
と_M5
のパラメータが追加されています。
drawArea
は、LCD内のターミナル描画エリアを決めます。Rect
構造体で指定しx,y,w,hを指定します。(x,y)は領域の左上の座標、(w,h)は領域の幅と高さです。
_M5
は、M5Stackのグローバルインスタンス M5
を指定します。
カラム最大値を64、行数の最大値を20、左上座標を (0, 16)、領域サイズを (320, 192) として the_screen
オブジェクトを構築します。
ITerm::refresh()
の実装です。この関数により画面の描画を行います。loop()
関数内で定期的に呼び出します。
本実装では、パフォーマンスの向上のため、原則として描画変更の必要にある行のみを上書きします。画面全領域を再描画したい場合はforce_refresh()
メソッドを呼び出します。
以下の例では32msごとに描画を行います。
フォントを指定します。
u8id
はフォントIDを指定します。
u8col_request
は、設定したいカラム数を指定します。指定した数値が領域サイズに対して大きい場合は指定領域に入るように値が丸められます。0を指定した場合は、領域サイズから計算できる最大のカラム数に設定されます。
u8row_request
は、設定したい行数を指定します。指定した数値が領域サイズに対して大きい場合は指定領域に入るように値が丸められます。0を指定した場合は、領域サイズから計算できる最大の行数に設定されます。
font_id()
は、指定したフォントのIDを返します。
font_width()
は、指定したフォントの幅をピクセル数で返します。ダブル幅のピクセル数は、この値の2倍になります。
font_height()
は、指定したフォントの高さをピクセル数で返します。
ターミナルの文字色と背景色を指定します。
color
は文字色を指定します。
bgcolor
は背景色を指定します。
色は565形式の16bit値です。TWEARD::color565()
関数で計算します。
白色は ALMOST_WHITE
で指定します。color565(255,255,255) または WHITE を指定すると描画が崩れます。
ターミナルで使用できる8色のテーブルを指定します。ptbl
はuint16_t
型の配列で8つの要素が必要です。
上記の例では青とマゼンダの色調を変えたテーブルを指定し、ターミナルオブジェクト the_screen
に指定しています。
r, g, b
を指定して、565形式の色コードを生成します。