パネルを初期化します。
Syntax:
void begin()
パネルのトランザクションを開始します。
Syntax:
void beginTransaction()
タッチパネルをキャリブレーションします。
実行するとキャリブレーションを行う画面が表示されます。uint16_t[8]の配列ポインタに値が入るので、それをFlashやNVMに記録しておくと、 setTouchCalibrate() で設定することが可能です。
Syntax:
void calibrateTouch<T>(uint16_t* parameters, const T &color_fg, const T &color_bg)
Parameter | Type | 説明 |
---|---|---|
parameters | uint16_t* | uint16_t[8] キャリブレーション値 |
color_fg | const T& | 前面の色(*1) |
color_bg | const T& | 背景の色(*1) |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint16_t touch_point[8];
void setup() {
display.begin();
display.calibrateTouch(touch_point, BLACK, YELLOW);
display.clear();
for (int i=0; i<8; i++) {
display.printf("%4x:", touch_point[i]);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
パネルをクリアします。引数にカラーコードを指定した場合、その色で初期化します。
Syntax:
void clear(const T &color)
Parameter | Type | 説明 |
---|---|---|
color | const T& | クリア後の色(*1) |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
display.clear(RED);
}
void loop() {
}
setClipRect() で指定した領域をクリアします。
Syntax:
void clearClipRect()
パネルをクリアします。引数にカラーコードを指定した場合、その色で初期化します。
Syntax:
void clearDisplay(uint32_t color = 0)
Parameter | Type | 説明 |
---|---|---|
color | uint32_t | クリア後の色 |
setScrollRect() で指定した領域をクリアします。
Syntax:
void clearScrollRect()
RGB565(16bit)のカラーコードをRGB888(24bit)へ変換します。
Syntax:
uint32_t color16to24(uint16_t rgb565)
Parameter | Type | 説明 |
---|---|---|
rgb565 | uint16_t | RGB565のカラーコード |
RGB565(16bit)のカラーコードをRGB332(8bit)へ変換します。
Syntax:
uint8_t color16to8(uint16_t rgb565)
Parameter | Type | 説明 |
---|---|---|
rgb565 | uint16_t | RGB565のカラーコード |
RGB888(24bit)のカラーコードをRGB565(16bit)へ変換します。
Syntax:
uint16_t color24to16(uint32_t rgb888)
Parameter | Type | 説明 |
---|---|---|
rgb888 | uint32_t | RGB888のカラーコード |
r, g, bの値からRGB332(8bit)のカラーコードを生成します。
Syntax:
uint8_t color332(uint8_t r, uint8_t g, uint8_t b)
Parameter | Type | 説明 |
---|---|---|
r | uint8_t | 0 - 255 |
g | uint8_t | 0 - 255 |
b | uint8_t | 0 - 255 |
r, g, bの値からRGB565(16bit)のカラーコードを生成します。
Syntax:
uint16_t color332(uint8_t r, uint8_t g, uint8_t b)
Parameter | Type | 説明 |
---|---|---|
r | uint8_t | 0 - 255 |
g | uint8_t | 0 - 255 |
b | uint8_t | 0 - 255 |
r, g, bの値からRGB888(24bit)のカラーコードを生成します。
Syntax:
uint32_t color332(uint8_t r, uint8_t g, uint8_t b)
Parameter | Type | 説明 |
---|---|---|
r | uint8_t | 0 - 255 |
g | uint8_t | 0 - 255 |
b | uint8_t | 0 - 255 |
RGB332(8bit)のカラーコードをRGB565(16bit)へ変換します。
Syntax:
uint16_t color8to16(uint8_t rgb332)
Parameter | Type | 説明 |
---|---|---|
rgb332 | uint8_t | RGB332カラーコード |
getTouchRaw() で取得した情報を変換します。
Syntax:
void convertRawXY(touch_po2 *tp, uint_fast8_t count)
Parameter | Type | 説明 |
---|---|---|
*tp | touch_point_t | touch point |
count | uint_fast8_t | count |
矩形範囲をコピーします。
Syntax:
void copyRect(uint32_t dst_x, uint32_t dst_y, uint32_t w, uint32_t h, uint32_t src_x, uint32_t src_y)
Parameter | Type | 説明 |
---|---|---|
dst_x | uint32_t | コピー先のX座標 |
dst_y | uint32_t | コピー先のY座標 |
w | uint32_t | 矩形範囲の幅 |
h | uint32_t | 矩形範囲の高さ |
src_x | uint32_t | コピー元のX座標 |
src_y | uint32_t | コピー元のY座標 |
スクリーンショット機能です。パネルに表示しているデータをPNG形式でメモリに保存します。
Syntax:
void* createPng(size_t* datalen, int32_t x, int32_t y, int32_t w, int32_t h)
Parameter | Type | 説明 |
---|---|---|
datalen | size_t* | データ長さ |
x | int32_t | X座標 |
y | int32_t | Y座標 |
w | int32_t | 矩形範囲の幅 |
h | int32_t | 矩形範囲の高さ |
描画データをパネルへ表示します。(M5Paper, CoreInk, OLEDUnit用の関数です。)
Syntax:
void display()
パネルがBusyかどうかをチェックします。
Syntax:
bool displayBusy()
パネルのDMAがBusyかチェックします。
Syntax:
bool dmaBusy()
円弧を描きます。r0とr1を指定し厚みのある円弧を描きます。
Syntax:
void drawArc(int32_t x, int32_t y, int32_t r0, int32_t r1, float angle0, float angle1, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 円弧の中心 X座標 |
y | int32_t | 円弧の中心 Y座標 |
r0 | int32_t | 内側の半径 |
r1 | int32_t | 外側の半径 |
angle0 | float | 描画を開始する角度 |
angle1 | float | 描画を終了する角度 |
color | const T | 色(*1) |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawArc(x, y, 10, 20, 20, 240, TFT_WHITE);
}
void loop() {
}
ベジェ曲線を描きます。制御点は3点または4点を指定します。
Syntax:
void drawBezier(x0, y0, x1, y1, x2, y2, const int &color)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | point0 x |
y0 | int32_t | point0 y |
x1 | int32_t | point1 x |
y1 | int32_t | point1 y |
x2 | int32_t | point2 x |
y2 | int32_t | point2 y |
color | const T(*1) | color of line |
void drawBezier(x0, y0, x1, y1, x2, y2, x3, y3, const int &color)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | point0 x |
y0 | int32_t | point0 y |
x1 | int32_t | point1 x |
y1 | int32_t | point1 y |
x2 | int32_t | point2 x |
y2 | int32_t | point2 y |
x3 | int32_t | point3 x |
y3 | int32_t | point3 y |
color | const T(*1) | color of line |
*1. カラーコードについて
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawBezier(0, 0, x, 0, x, y, TFT_WHITE);
display.drawBezier(0, 0, x, 0, x, y, 0, y, TFT_WHITE);
}
void loop() {
}
BMP形式のビットマップデータを描きます。ファイルやStreamを指定できます。
Syntax:
void drawBmp(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
path | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawBmp(Stream *dataSource, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | Stream* | Stream object |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 最大幅 |
maxHeight | int32_t | 最大高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawBmp(const uint8_t *data, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | const uint8_t* | bmp data |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
bmpファイルのビットマップデータを描きます。
Syntax:
void drawBmpFile(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
pat | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | scale X |
scaleY | float | scale Y |
datum | datum_t | 画像の基準点(*1) |
URLで指定したBMPデータを描きます。
#include <M5GFX.h>
より前に #include <HTTPClient.h>
を定義してください。Syntax:
void drawBmpUrl(const String &url, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
url | const String | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
テキストを中寄せで描画します。
Syntax:
void drawCenterString(const String &string, int32_t x, int32_t y, IFont* font)
Parameter | Type | 説明 |
---|---|---|
string | const String | x |
x | int32_t | x |
y | int32_t | y |
font | IFont* (*1) | font |
*1. フォント一覧
ユニコードで文字を描画します。
Syntax:
size_t drawChar(uint16_t uniCode, int32_t, x, int32_t y, uint8_t font)
円を描きます。
Syntax:
void drawCircle(int32_t x, int32_t y, int32_t r, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
r | int32_t | フォント |
color | const T& | color(*1) |
*1. カラーコードについて
楕円を描きます。
Syntax:
void drawEllipse(int32_t x, int32_t y, int32_t rx, int32_t ry, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
rx | int32_t | 半径 X |
ry | int32_t | 半径 Y |
color | const T& | color(*1) |
*1. カラーコードについて |
楕円の円弧を描きます。
Syntax:
void drawEllipseArc(int32_t x, int32_t y, int32_t r0x, int32_t r1x, int32_t r0y, int32_t r1y, float angle0, float angle1, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 円弧の中心座標X |
y | int32_t | 円弧の中心座標Y |
r0x | int32_t | 内側の円の半径X |
r1x | int32_t | 外側の円の半径X |
r0y | int32_t | 内側の円の半径Y |
r1y | int32_t | 外側の円の半径Y |
angle0 | float | 円弧の開始角度 |
angle1 | float | 円弧の終了角度 |
color | const T& | 円弧の色(*1) |
*1. カラーコードについて
水平方向の線を描きます。
Syntax:
void drawFastHLine(int32_t x, int32_t y, int32_t w, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
w | int32_t | 幅 |
color | const T& | 色(*1) |
*1. カラーコードについて
垂直方向の線を描きます。
Syntax:
void drawFastHLine(int32_t x, int32_t y, int32_t w, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
h | int32_t | 高さ |
color | const T& | 色(*1) |
*1. カラーコードについて
Float型(浮動少数型)の値を描画します。
Syntax:
size_t drawFloat(float floatNumber, uint8_ dp, int32_t poX, int32_t poY, const IFont* font)
Parameter | Type | 説明 |
---|---|---|
floatNumber | float | Floatの値 |
dp | uint8_t | 小数点以下の桁数 |
poX | int32_t | x |
poY | int32_t | y |
font | IFont* (*1) | フォント |
*1. フォント一覧
色が変化する水平方向の線を描きます。
Syntax:
void drawGradientHLine(int32_t x, int32_t y, int32_t w, const T &colorstart, const T &colorend)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
w | int32_t | 幅 |
colorstart | const T& | 開始色(*1) |
colorend | const T& | 終了色(*1) |
*1. カラーコードについて |
色が変化する線を描きます。
Syntax:
void drawGradientLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, const T &colorstart, const T &colorend)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | 始点 x |
y0 | int32_t | 始点 y |
x1 | int32_t | 終点 x |
y1 | int32_t | 終点 y |
colorstart | const T& | 開始色 (*1) |
colorend | const T& | 終了色 (*1) |
*1. カラーコードについて |
色が変化する垂直方向の線を描きます。
Syntax:
void drawGradientVLine(int32_t x, int32_t y, int32_t h, const T &colorstart, const T &colorend)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
h | int32_t | 高さ |
colorstart | const T& | 開始色(*1) |
colorend | const T& | 終了色(*1) |
*1. カラーコードについて
JPGデータを描画します。File, Stream等のデータを指定可能です。
Syntax:
void drawJpg(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
path | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scale_x | float | 倍率 X |
scale_y | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawJpg(Stream *dataSource, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | Stream* | Stream object |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawJpg(const uint8_t *data, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | const uint8_t* | bmp data |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
JPGファイルを描画します。
Syntax:
void drawJpgFile(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
path | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
URLで指定したJPGデータを表示します。
#include <M5GFX.h>
より前に #include <HTTPClient.h>
を定義してください。Syntax:
void drawJpgUrl(const String &url, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
url | const String | URL |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
線を描く。
Syntax:
void drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1, const T &color)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | 始点 x |
y0 | int32_t | 始点 y |
x1 | int32_t | 終点 x |
y1 | int32_t | 終点 y |
color | const T& | 色(*1) |
*1. カラーコードについて
long型(整数型)の数値を描画します。
Syntax:
size_t drawNumber(long long_num,int32_t poX, int32_t poY, const IFont* font)
Parameter | Type | 説明 |
---|---|---|
long_num | long | 描画するlongの値 |
poX | int32_t | x |
poY | int32_t | y |
font | IFont* (*1) | フォント |
*1. フォント一覧
点を描画します。
Syntax:
void drawPixel(int32_t x, int32_t y, const int &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
color | const int | color(*1) |
*1. カラーコードについて
PNGデータを描画します。FileやStreamを指定することができます。
Syntax:
void drawPng(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
path | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawPng(Stream *dataSource, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | Stream* | Stream object |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawPng(const uint8_t *data, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | const uint8_t* | bmp data |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
PNGファイルを描きます。
Syntax:
void drawPngFile(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
pat | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
指定したURLのPNGデータを描きます。
Syntax:
void drawPngUrl(const String &url, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
url | const String | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
Qoiデータを描画します。FileやStreamを指定することができます。
Syntax:
void drawQoi(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
path | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawQoi(Stream *dataSource, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | Stream* | Stream object |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
void drawQoi(const uint8_t *data, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
dataSource | const uint8_t* | bmp data |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
Qoiファイルを描画します。
Syntax:
void drawQoiFile(fs::FS &fs,const char *path, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
fs | fs::FS | SPIFFS or SD |
pat | const char* | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
指定したURLのQoiデータを描画します。
Syntax:
void drawPngQoi(const String &url, int32_t x = 0, y = 0, maxWidth = 0, maxHeight = 0, int32_t offX = 0, int32_t offY = 0, float scale_x = 1.0f, float scale_y = 1.0f, datum_t datum = datum_t::top_left )
Parameter | Type | 説明 |
---|---|---|
url | const String | filepath |
x | int32_t | x |
y | int32_t | y |
maxWidth | int32_t | 幅 |
maxHeight | int32_t | 高さ |
offX | int32_t | offset X |
offY | int32_t | offset Y |
scaleX | float | 倍率 X |
scaleY | float | 倍率 Y |
datum | datum_t | 画像の基準点(*1) |
矩形を描きます。
Syntax:
void drawRect(int32_t x, int32_t y, int32_t w, int32_t h, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 始点 y |
w | int32_t | 矩形の幅 |
h | int32_t | 矩形の高さ |
color | const T& | 色(*1) |
*1. カラーコードについて |
右寄せで文字列を描画します。
Syntax:
void drawRightString(const String &string, int32_t x, int32_t y, IFont* font)
Parameter | Type | 説明 |
---|---|---|
string | const String | 文字列 |
x | int32_t | x |
y | int32_t | y |
font | IFont* (*1) | font |
*1. フォント一覧
角が丸い矩形を描画します。
Syntax:
void drawRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 始点 y |
w | int32_t | 矩形の幅 |
h | int32_t | 矩形の高さ |
r | int32_t | 角の半径 |
color | const T& | 色(*1) |
*1. カラーコードについて
文字を描画します。
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
display.setTextDatum(middle_center);
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawString("Text", x, y);
}
void loop() {
}
3つの点を指定して三角形を描画します。
Syntax:
void drawTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, const T &color)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | point0 x |
y0 | int32_t | point0 y |
x1 | int32_t | point1 x |
y1 | int32_t | point1 y |
x2 | int32_t | point2 x |
y2 | int32_t | point2 y |
color | const T& | 色(*1) |
*1. カラーコードについて
ユーザ定義の関数を用いて矩形範囲を変換します。
Syntax:
void effect(int32_t x, int32_t y, int32_t w, int32_t h, TFunc&& effector)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 終点 y |
w | int32_t | 幅 |
h | int32_t | 高さ |
effector | TFunc&& | 変換処理を行う関数 |
startTransaction() とペアで使用します。
Syntax:
void endTransaction()
startWrite() とペアで使用します。
Syntax:
void endWrite()
アフィン変換行列で描画した領域を塗りつぶします。
void fillAffine(const float matrix[6], int32_t w, int32_t h, const T& color)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
color | const T& (*1) | 色 |
*1. カラーコードについて
塗りつぶした円弧を描きます。
Syntax:
void fillArc(int32_t x, int32_t y, int32_t r0, int32_t r1, float angle0, float angle1, const int &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 円弧の中心座標 X |
y | int32_t | 円弧の中心座標 Y |
r0 | int32_t | 内側の円半径 |
r1 | int32_t | 外側の円半径 |
angle0 | float | 開始角度 |
angle1 | float | 終了角度 |
color | const T&(*1) | 色 |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.fillArc(x, y, 10, 20, 20, 240, TFT_WHITE);
}
void loop() {
}
塗りつぶした円を描きます。
Syntax:
void fillCircle(int32_t x, int32_t y, int32_t r, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
r | int32_t | 半径 |
color | const T& | 色(*1) |
*1. カラーコードについて
塗りつぶした楕円を描きます。
Syntax:
void fillEllipse(int32_t x, int32_t y, int32_t rx, int32_t ry, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
rx | int32_t | 半径 X |
ry | int32_t | 半径 Y |
color | const T& | 色(*1) |
*1. カラーコードについて
塗りつぶした円弧を描きます。
Syntax:
void fillEllipseArc(int32_t x, int32_t y, int32_t r0x, int32_t r1x, int32_t r0y, int32_t r1y, float angle0, float angle1, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 円弧の中心座標 X |
y | int32_t | 円弧の中心座標 Y |
r0x | int32_t | 内側の半径 X |
r1x | int32_t | 内側の半径 Y |
r0y | int32_t | 外側の半径 X |
r1y | int32_t | 外側の半径 Y |
angle0 | float | 開始角度 |
angle1 | float | 終了角度 |
color | const T& | 色(*1) |
*1. カラーコードについて
塗りつぶした矩形を描きます。
Syntax:
void fillRect(int32_t x, int32_t y, int32_t w, int32_t h, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 始点 y |
w | int32_t | 矩形の幅 |
h | int32_t | 矩形の高さ |
color | const T& | 色(*1) |
*1. カラーコードについて |
不透明な矩形を描画します。
Syntax:
void fillRectAlpha(int32_t x, int32_t y, int32_t w, int32_t h, uint8_t alpha, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 始点 y |
w | int32_t | 矩形の幅 |
h | int32_t | 矩形の高さ |
alpha | uint8_t | 0 透明 - 255 不透明 |
color | const T& | 色(*1) |
*1. カラーコードについて
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.fillRect(x - 10, y - 10, 50, 50, TFT_WHITE);
display.fillRectAlpha(x, y, 30, 30, 100, TFT_BLACK);
}
void loop()
{
}
角が丸い塗りつぶした矩形を描きます。
Syntax:
void fillRoundRect(int32_t x, int32_t y, int32_t w, int32_t h, int32_t r, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 x |
y | int32_t | 始点 y |
w | int32_t | 矩形の幅 |
h | int32_t | 矩形の高さ |
r | int32_t | 角の半径 |
color | const T& | 色(*1) |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.fillRoundRect(x, y, 30, 30, 5, TFT_WHITE);
}
void loop()
{
}
画面を塗りつぶします。
Syntax:
Parameter | Type | 説明 |
---|---|---|
color | const T& | 色(*1) |
*1. カラーコードについて
3つの点を指定して塗りつぶした三角形を描きます。
Syntax:
void fillTriangle(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t x2, int32_t y2, const T &color)
Parameter | Type | 説明 |
---|---|---|
x0 | int32_t | point0 x |
y0 | int32_t | point0 y |
x1 | int32_t | point1 x |
y1 | int32_t | point1 y |
x2 | int32_t | point2 x |
y2 | int32_t | point2 y |
color | const T& | color(*1) |
*1. カラーコードについて
指定した座標の色域を近似的に塗りつぶします。
Syntax:
void floodFill(uint32_t x, uint32_t y, const T &color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | point x |
y | int32_t | point y |
color | const T& | fill color |
*1. カラーコードについて
Returns the height of the specified font.
Syntax:
int32_t fontHeight(uint8_t font)
Parameter | Type | 説明 |
---|---|---|
font | IFont* | フォント(*1) |
*1. フォント一覧
Returns the width of the specified font.
int32_t fontHeight(uint8_t font)
Parameter | Type | 説明 |
---|---|---|
font | IFont* (*1) | font |
*1. フォント一覧
attributeの値を取得します。
Syntax:
uint8_t getAttribute(attribute_t attr_id)
setBaseColor() で設定されたパネルの背景色を取得します。
注意: 返却値はRGB888形式です。
Syntax:
uint32_t getBaseColor()
ボードを取得します。
Syntax:
uint8_t getBoard()
*1. enum board_t
setBrightness() で設定した値を取得します。
Syntax:
uint8_t getBrightness()
setClipRectRect() で設定したx,y,w,hを取得します。
Syntax:
void getClipRect(int32_t *x, int32_t *y, int32_t *w, int32_t *h)
setColorDepth() で設定されたColorDepthを取得します。
Syntax:
color_depth_t getColorDepth()
*1. About ColorDepth
現在のカーソルX座標を取得します。
Syntax:
int32_t getCursorX()
現在のカーソルY座標を取得します。
Syntax:
int32_t getCursorY()
setEpdMode() で設定されているE-Paperのモードを取得します。(M5Paperのみ)
Syntax:
epd_mode_t getEpdMode()
*1. epd_mode_t
setFont() で設定されているフォントを取得します。
const IFont* getFont()
*1. フォント一覧
M5GFXのインスタンスを取得します。
Syntax:
M5GFX* getInstance()
invertDisplay() で設定した値を取得します。
Syntax:
bool getInvert()
パレット情報を取得します。
Syntax:
RGBColor* getPalette()
パレットの数を取得します。
Syntax:
uint32_t getPaletteCount()
パネルを取得します。
Syntax:
Panel_Device* getPanel()
setPivot() で設定されたPivotのX座標を取得します。
Syntax:
float getPivotX()
setPivot() で設定されたPivotのY座標を取得します。
Syntax:
float getPivotY()
setRawColor() で設定された色を取得します。
**注意:**返却値はRGB888形式です。
uint32_t getRawColor()
setRotation() で設定されたローテーションの値を取得します。
uint8_t getRotation()
setScrollRect() で設定されたx,y,w,hを取得します。
void getScrollRect(int32_t *x, int32_t *y, int32_t *w, int32_t *h)
実行した startWrite() の回数を取得します。
uint32_t getStartCount()
setSwapBytes() で設定された値を取得します。
bool getSwapBytes()
setTextDatum() で設定された構造体を取得します。
Syntax:
textdatum_t getTextDatum()
テキストの余白を取得します。
Syntax:
uint32_t getTextPadding()
setTextSize() 設定されたテキストサイズの幅を取得します。
Syntax:
float getTextSizeX()
setTextSize() で設定されたテキストサイズの高さを取得します。
Syntax:
float getTextSizeY()
setTextStyle() で設定されたテキスト情報を取得します。
Syntax:
TextSytle& getTextStyle()
タッチパネルの情報を取得します。
Syntax:
uint_fast8_t getTouch(touch_point_t *tp, uint_fast8_t count = 1)
Parameter | Type | 説明 |
---|---|---|
tp | touch_pont_t* | タッチ情報 |
count | uint_fast8_t | カウント |
タッチパネルの情報を取得します。
Syntax:
uint_fast8_t getTouchRaw(touch_point_t *tp, uint_fast8_t count = 1)
Parameter | Type | 説明 |
---|---|---|
tp | touch_pont_t* | タッチ情報 |
count | uint_fast8_t | カウント |
パレットが設定されているかどうかを返却します。
Syntax:
bool hasPalette()
パネルの高さを取得します。
Syntax:
int_fast16_t height()
パネルを初期化します。
Syntax:
void init()
DMAを初期化します。
Syntax:
void initDMA
画面の明暗及び色調を反転させて出力するかどうかを設定します。(ネガポジ反転)
Syntax:
void invertDisplay(bool invert)
バスが共有されているかどうかを取得します。
Syntax:
bool isBusShared()
e-Paper displayかどうかを取得します。
Syntax:
bool isEPD()
パネルの情報を読み込みできるかどうかを取得します。
Syntax:
bool isReadable()
SPIバスが共有されているかどうかを取得します。
Syntax:
bool isSPIShared()
フォントデータを読み込みます。
Syntax:
bool loadFont(const uint8_t *array)
| Parameter | Type | 説明 |
| ---------- | -------------- | -------------------------------- |
| array | const uint8_t* | VLW font data |
bool loadFont(fs::FS &fs, const char *path)
| Parameter | Type | 説明 |
| ---------- | ----------- | -------------------------------- |
| fs | fs::FS& | FileSystem(SD or SPIFFS) |
| path | const char* | file path |
floodFill() と同じ機能です。
Syntax:
void paint(int32_t x, int32_t y, const T& color)
パネルを取得します。
Syntax:
Panel_Device* panel()
テキスト情報を一時的に待避します。待避した情報は pushState() で戻します。
Parameter | Type | 説明 |
---|---|---|
gfxFont | IFont * | |
style | TextStyle (*1) | |
metrics | FontMetrics (*2) | |
cursor_x | int32_t | |
cursor_y | int32_t |
*1. struct TextStyle *2. struct FontMetrics
Syntax:
void popState()
パワーセーブの状態を設定します。
Syntax:
void powerSave(bool flg)
Parameter | Type | 説明 |
---|---|---|
flg | bool |
パワーセーブの状態をOFFにします。
Syntax:
void powerSaveOff()
パワーセーブの状態をONにします。
Syntax:
void powerSaveOn()
カーソル位置に文字列を出力します。ArduinoのPrint.hに準拠しています。
Syntax:
size_t print(...)
カーソル位置に文字列を出力します。ArduinoのLibPrint.hに準拠しています。
Syntax:
size_t printf(...)
カーソル位置に文字列を出力します。文字列の最後に改行コードを追加します。ArduinoのPrint.hに準拠しています。
Syntax:
size_t print(...)
プログレスバーを表示します。色は0x09F1(暗い青)のみです。
Syntax:
void progressBar(int x, int y, int w, int h, uint8_t val)
Parameter | Type | 説明 |
---|---|---|
x | int | point x |
y | int | point y |
w | int | 幅 |
h | int | 高さ |
value | uint8_t | value( 0 - 100) |
setWindow() , setAddrWindow() で設定された領域に、行方向に指定された色を描画していきます。
Syntax:
void pushBlock(const T& color, uint32_t length)
Parameter | Type | 説明 |
---|---|---|
color | const T& | 色(*1) |
length | uint32_t | 描画する長さ |
*1. カラーコードについて
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
int32_t x;
int32_t y;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
x = display.width() / 2;
y = display.height() / 2;
display.startWrite();
display.setWindow(0, 0, x - 1 , y);
for (int i=0; i<y; i++) {
display.pushBlock(TFT_RED, x / 4);
display.pushBlock(TFT_BLUE, x / 4);
display.pushBlock(TFT_GREEN, x / 4);
display.pushBlock(TFT_YELLOW, x / 4);
}
display.endWrite();
}
void loop()
{
}
画像データをPushします。
Syntax:
void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const T* data)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 X |
y | int32_t | 始点 Y |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
void pushImage(const float matrix[6], int32_t w, int32_t h, const T* data, const T2& transparent)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 X |
y | int32_t | 始点 Y |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
transparent | const T2& | 透明色(*1) |
*1. カラーコードについて
void pushImage(const float matrix[6], int32_t w, int32_t h, const T* data, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | 始点 X |
y | int32_t | 始点 Y |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
depth | color_depth_t (*1) | Color Depth |
palette | const T* | パレット情報 |
*1. ColorDepthについて
void pushImage(const float matrix[6], int32_t w, int32_t h, const T* data, uint32_t transparent, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | start point x |
y | int32_t | start point y |
w | int32_t | Image width |
h | int32_t | Image height |
data | const T* | Image data |
transparent | uint32_t | Color of transparent |
depth | color_depth_t (*1) | Color depth |
palette | const T& | Color palette |
*1. ColorDepthについて
アフィン変換して画像を描画します。
Syntax:
void pushImageAffine(const float matrix[6], int32_t w, int32_t h, const T* data)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
void pushImageAffine(const float matrix[6], int32_t w, int32_t h, const T* data, const T2& transparent)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
transparent | const T2& | 透明色(*1) |
*1. カラーコードについて
void pushImageAffine(const float matrix[6], int32_t w, int32_t h, const T* data, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
depth | color_depth_t (*1) | Color Depth |
palette | const T* | パレット情報 |
*1. ColorDepthについて
void pushImageAffine(const float matrix[6], int32_t w, int32_t h, const T* data, uint32_t transparent, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
transparent | const T2& | 透明色(*1) |
depth | color_depth_t (*2) | Color Depth |
palette | const T* | パレット情報 |
*1. カラーコードについて *2. ColorDepthについて
アンチエイリアスとアフィン変換を行いつつ画像をpushします。
Syntax:
void pushImageAffineWithAA(const float matrix[6], int32_t w, int32_t h, const T* data)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
void pushImageAffineWithAA(const float matrix[6], int32_t w, int32_t h, const T* data, const T2& transparent)
| Parameter | Type | 説明 |
| ----------- | -------------- | ----------- |
| matrix | const float[6] | 6要素の行列 |
| w | int32_t | 画像の幅 |
| h | int32_t | 画像の高さ |
| data | const T* | 画像データ |
| transparent | const T2& | 透明色(*1) |
*1. カラーコードについて
void pushImageAffineWithAA(const float matrix[6], int32_t w, int32_t h, const T* data, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
depth | color_depth_t (*1) | Color Depth |
palette | const T* | パレット情報 |
*1. ColorDepthについて
void pushImageAffineWithAA(const float matrix[6], int32_t w, int32_t h, const T* data, uint32_t transparent, color_depth_t depth, const T* palette)
Parameter | Type | 説明 |
---|---|---|
matrix | const float[6] | 6要素の行列 |
w | int32_t | 画像の幅 |
h | int32_t | 画像の高さ |
data | const T* | 画像データ |
transparent | const T2& | 透明色(*1) |
depth | color_depth_t (*2) | Color Depth |
palette | const T* | パレット情報 |
*1. カラーコードについて *2. ColorDepthについて
setWindow() , setAddrWindos() で設定された領域に画像データをpushします。
補足: draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void pushPixels(T* data, int32_t len)
Parameter | Type | 説明 |
---|---|---|
data | T* | 画像データ |
len | int32_t | データ長 |
void pushPixels(T* data, int32_t len, bool swap)
Parameter | Type | 説明 |
---|---|---|
data | T* | 画像データ |
len | int32_t | データ長 |
swap | bool | Swap bytes |
DMAに画像データをpushします。
補足: draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void pushPixelsDMA(T* data, int32_t len)
Parameter | Type | 説明 |
---|---|---|
data | T* | 画像データ |
len | int32_t | データ長 |
void pushPixelsDMA(T* data, int32_t len, bool swap)
Parameter | Type | 説明 |
---|---|---|
data | T* | 画像データ |
len | int32_t | データ長 |
swap | bool | Swap bytes |
popState() で一時待避したテキスト情報をリストアします。
Syntax:
void pushState()
文字列をqrcodeに変換します。
Syntax:
void qrcode(const char *string, int32_t x, int32_t y, int32_t w, uint8_t version)
Parameter | Type | 説明 |
---|---|---|
string | const char* | 変換文字列 |
x | int32_t | point x |
y | int32_t | point y |
w | int32_t | 幅 |
version | uint8_t | version of qrcode(1 - 40) |
16bitのデータをパネルから読み込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
uint16_t readData16(uint8_t index=0)
32bitのデータをパネルから読み込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
uint32_t readData32(uint8_t index=0)
8bitのデータをパネルから読み込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
uint8_t readData8(uint8_t index=0)
指定した座標のカラーコード(RGB565)を読み取ります。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
uint16_t readPixel(int32_t x, int32_t y)
指定した座標のカラーコード(RGB888)を読み取ります。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
RGBColor readPixelRGB(int32_t x, int32_t y)
指定された矩形領域のデータを読み込みます。(RGB565)
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void readRect(int32_t x, int32_t y, int32_t w, int32_t h, T* data)
指定された矩形領域のデータを読み込みます。(RGB888)
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void readRectRGB(int32_t x, int32_t y, int32_t w, int32_t h, RGBColor* data)
パネルに表示されているデータをスクロールします。
Syntax:
void scroll(int_fast16_t dx, int_fast16_t dy)
Parameter | Type | 説明 |
---|---|---|
dx | int_fast16_t | X軸の移動量 |
dy | int_fast16_t | Y軸の移動量 |
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint16_t x;
uint16_t y;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
x = display.width() / 2;
y = display.height() / 2;
display.drawCenterString("scroll", x, y, &fonts::lgfxJapanGothic_24);
}
void loop()
{
for (int i=-10; i<=10; i+=1) {
display.scroll(0, i);
}
}
writePixels() , pushPixels() , pushBlock() の描画先となる範囲を指定します。
注意:
setWindow()
と同じですが、引数が違います。
setAddrWindowは画面外へのはみ出しはチェックしますが、setWindowはチェックしません。
Syntax:
void setAddrWindow(int32_t x, int32_t y, int32_t w, int32_t h)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
w | int32_t | 幅 |
h | int32_t | 高さ |
M5Paper, CoreInk, UnitOLEDのみの機能です。 trueを設定すると、 display() を実行しなくても書き込みを行うと即描画されます。
Syntax:
void setAutoDisplay(bool auto_display)
パネルの背景色を設定します。スクロール機能で描画される描画領域外の色を設定することができます。 getBaseColor() と対の関数です。
Syntax:
void setBaseColor(T color)
Parameter | Type | 説明 |
---|---|---|
color | T (*1) | Base color |
*1. カラーコードについて
ディスプレイパネルの明るさを設定します。
Syntax:
void setBrightness(uint8_t brightness)
Parameter | Type | 説明 |
---|---|---|
brightness | unit8_t | ディスプレイの明るさ |
描画に使用する矩形領域を指定します。
Syntax:
void setClipRect(int32_t x, int32_t y, int32_t w, int32_t h)
描画色を指定します。
Syntax:
void setColor(const T &color)
Parameter | Type | 説明 |
---|---|---|
color | const T& (*1) | 色 |
*1. カラーコードについて
ColorDepthを設定します。
void setColorDepth(int32_t bits)
Parameter | Type | 説明 |
---|---|---|
bits | int | ColorDepth(*1) |
*1. ColorDepthについて
カーソル位置を指定します。
void setCursor(int32_t x, int32_t y)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | point x |
y | int32_t | point y |
E-Paperのモードを指定します。(M5Paperのみ)
void setEpdMode(epd_mode_t epd_mode)
Parameter | Type | 説明 |
---|---|---|
epd_mode | epd_mode_t(*1) | epd mode |
*1. About EpdMode
デフォルトフォントを指定します。
Syntax:
void setFont(const IFont *font)
Parameter | Type | 説明 |
---|---|---|
font | IFont (*1) | フォント |
*1. フォント一覧
Pivot座標を設定します。
補足: 引数が実数指定(float型)なのは、pivotがPixelの中心を指す仕様になっているためです。回転すると+0.5ピクセル分右下にオフセットするため、Pivotで-0.5オフセットすると相殺されます。
Syntax:
void setPivot(float x, float y)
Parameter | Type | 説明 |
---|---|---|
x | float | point x |
y | float | point y |
色を指定します。
Syntax:
void setRawColor(uint32_t color)
M5AtomDisplayのみの機能です。 解像度の設定を行います。
Syntax:
bool setResolution(uint16_t logical_width = 0, uint16_t logical_height = 0, float refresh_rate = 0.0f, uint16_t output_width = 0, uint16_t output_height = 0, uint_fast8_t scale_w = 0, uint_fast8_t scale_h = 0)
Parameter | Type | 説明 |
---|---|---|
logical_width | uint16_t | 論理画面の幅 |
logical_height | uint16_t | 論理画面の高さ |
refresh_rate | float | リフレッシュレート |
output_width | uint16_t | 実際の画面幅 |
output_height | uint16_t | 実際の画面高さ |
scale_w | uint_fast8_t | 実画面との比率(幅) |
scale_h | uint_fast8_t | 実画面との比率(高さ) |
パネルの回転方向を指定します。
Syntax:
void setRotation(uint8_t m)
Function parameter:
Parameter | 説明 | Type |
---|---|---|
m | uint8_t | 回転角 ( * 90°) |
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
display.setRotation(2); //Rotate the screen 180 degrees clockwise (2*90)
display.fillEllipse(160, 100, 60, 100, YELLOW); //Create a yellow ellipse at (160, 100) with the long axis and the short axis to 60 and 100 respectively.
delay(1000);
display.setRotation(1); //Restore the screen to the default display state
display.fillEllipse(160, 100, 60, 100, GREEN);
}
void loop() {}
指定した矩形領域でテキストが溢れた場合、スクロールするようになります。
Syntax:
void setScrollRect(int32_t x, int32_t y, int32_t w, int32_t h)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | point x |
y | int32_t | point y |
w | int32_t | 幅 |
h | int32_t | 高さ |
Example:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint16_t x;
uint16_t y;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
x = display.width() / 2;
y = display.height() / 2;
display.setTextScroll(true);
display.setScrollRect(x, y, x / 2, y / 2);
}
uint32_t count = 0;
void loop()
{
display.printf("ScrollTest:%d\n", count);
count++;
delay(100);
}
パネルへデータを書き込む際にスワップするかどうかを設定します。
Syntax:
void setSwapBytes(bool swap)
Set TextColor.
Syntax:
void setTextColor(const T &color)
Parameter | Type | 説明 |
---|---|---|
color | T (*1) | Base color |
*1. カラーコードについて
テキストを表示するときのデフォルト基準点(datum)を設定します。
Syntax:
void setTextDatum(textdatum_t datum)
Parameter | Type | 説明 |
---|---|---|
datum | textdatum_t (*1) | テキスト基準点 |
テキストスクロールを有効にします。
Syntax:
void setTextScroll(bool scroll)
Parameter | Type | 説明 |
---|---|---|
scroll | bool | scroll mode |
テキストサイズを指定します。実数で指定が可能です。
Syntax:
void setTextSize(float size)
| Parameter | Type | 説明 |
| ---------- | -------------- | -------------------------------- |
| size | float | text size |
void setTextSize(float sx, float sy)
| Parameter | Type | 説明 |
| ---------- | -------------- | -------------------------------- |
| sx | float | text size X |
| sy | float | text size Y |
テキストの書式を設定します。
Syntax:
void setTextStyle(TextStyle textstyle)
Parameter | Type | 説明 |
---|---|---|
textstyle | TextStyle (*1) | Text Style |
*1. About TextStyle
X軸は文字列の折返しをするかどうか、Y軸は画面下部まで表示したあと上に戻るかどうかを指定します。
Syntax:
void setTextWrap(bool wrapX, bool wrapY = false)
Parameter | Type | 説明 |
---|---|---|
wrapX | bool | wrap X |
wrapY | bool | wrap Y |
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
display.setTextWrap(true, true); // <- Change Value
}
uint32_t count = 0;
void loop()
{
display.printf("wrap--------------------------------------------:%d\n", count);
count++;
delay(100);
}
calibrateTouch() で取得したタッチパネルのキャリブレーション値を設定します。
Syntax:
void setTouchCalibrate(uint16_t *parameters)
Parameter | Type | 説明 |
---|---|---|
parameters | uint16_t* | uint16_t[8] |
writePixels() , pushPixels() , pushBlock() 等の描画先となる範囲を指定します。
注意:
setAddrWindow()
と同じですが、引数が違います。
setAddrWindowは画面外へのはみ出しはチェックしますが、setWindowはチェックしません。
Syntax:
void setWindow(uint_fast16_t xs, uint_fast16_t ys, uint_fast16_t xe, uint_fast16_t ye)
Parameter | Type | 説明 |
---|---|---|
xs | uint_fast16_t | 始点 x |
ys | uint_fast16_t | 始点 y |
xe | uint_fast16_t | 終点 x |
ye | uint_fast16_t | 終点 y |
Display the specified time font.
Syntax:
void showFont(uint32_t msec)
Parameter | Type | 説明 |
---|---|---|
msec | uint32_t | display time(msec) |
パネルをスリープします。 起動は wakeup() を使います。
Syntax:
void sleep()
SPIバスのCSをアサートします。 endWrite() と対で使用します。startWrite()をパネル描画の際に明示的に記述することによりDMAバッファを効率的に使用することが可能になります。
Syntax:
void startWrite()
M5Canvas上の描画データは、カラーコードがスワップしています。そのためgetBuffer()で取得したデータを扱う場合にswap565を利用します。
Syntax:
uint16_t swap565(uint8_t r, uint8_t g, uint8_t b)
M5Canvas上の描画データは、カラーコードがスワップしています。そのためgetBuffer()で取得したデータを扱う場合にswap888を利用します。
Syntax:
uint32_t swap888(uint8_t r, uint8_t g, uint8_t b)
指定した幅に、指定した文字列のうち表示可能な文字数を取得します。
Syntax:
int32_t textLength(const char *string, int32_t width)
Parameter | Type | 説明 |
---|---|---|
string | const char* | 文字列 |
width | int32_t | 幅 |
パネルに文字列を表示したときの表示幅(pixel)を取得します。フォントを省略するとデフォルトフォントで計算します。
Syntax:
uint32_t textWidth(const char *string)
Parameter | Type | 説明 |
---|---|---|
string | const char* | 文字列 |
uint32_t textWidth(const char *string, IFont *font)
Parameter | Type | 説明 |
---|---|---|
string | const char* | 文字列 |
font | IFont (*1) | font |
#1. フォント一覧
タッチデバイスが有効な場合、ITouchポインタを返します。
Syntax:
ITouch* touch()
setFont() で設定されたフォントを、アンロードして初期値に戻します。(&fonts::Font0)
Syntax:
void unloadFont()
パネルの描画が終わるまで待機します。
Syntax:
void waitDisplay()
DMAが使用中の場合待機します。
Syntax:
void waitDMA()
sleep() でスリープした状態のパネルを起動します。
Syntax:
void wakeup()
パネルの幅を返します。
Syntax:
int32_t width()
setWindow() で設定した矩形領域に指定した色を行方向に指定された長さ描画していきます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
void writeColor(const T &color, uint32_t length)
Parameter | Type | 説明 |
---|---|---|
color | const T& | 色(*1) |
length | uint32_t | 描画する長さ |
*1. カラーコードについて
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
int32_t x;
int32_t y;
void setup()
{
display.begin();
display.fillScreen(TFT_BLACK);
x = display.width() / 2;
y = display.height() / 2;
display.startWrite();
display.setWindow(0, 0, x - 1 , y);
for (int i=0; i<y; i++) {
display.writeColor(TFT_RED, x / 4);
display.writeColor(TFT_BLUE, x / 4);
display.writeColor(TFT_GREEN, x / 4);
display.writeColor(TFT_YELLOW, x / 4);
}
display.endWrite();
}
void loop()
{
}
パネルに16bitのコマンドを書き込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeCommand(uint16_t cmd)
パネルに16bitデータを書き込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeCommand(uint16_t data)
パネルに32bitデータを書き込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeCommand(uint32_t data)
パネルに8bitデータを書き込みます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeCommand(uint8_t data)
水平方向の線を描きます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeFastHLine(int32_t x, int32_t y, int32_t w)
垂直方向の線を描きます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeFastVLine(int32_t x, int32_t y, int32_t h)
矩形を描きます。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writefillRect(int32_t x, int32_t y, int32_t w, int32_t h)
カラーパレット情報を利用して画像データを描画します。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writeIndexedPixels(const uint8_t* data, T* palette, int32_t len, uint8_t depth = 8)
Parameter | Type | 説明 |
---|---|---|
data | const uint8_t* | 画像データ |
palette | T* | パレット情報 |
len | int32_t | データ長 |
depth | uint8_t | Color Depth |
指定座標に点を描画します。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writePixel(int32_t x, int32_t y, const T& color)
Parameter | Type | 説明 |
---|---|---|
x | int32_t | x |
y | int32_t | y |
color | const T& | 色(*1) |
setWindow() , setAddrWindos() で設定された領域に画像データをpushします。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writePixels(T* data, int32_t len)
Parameter | Type | 説明 |
---|---|---|
data | T* | Image data |
len | int32_t | Data length |
void writePixels(T* data, int32_t len, bool swap)
Parameter | Type | 説明 |
---|---|---|
data | T* | Image data |
len | int32_t | Data length |
swap | bool | Swap bytes |
setWindow() , setAddrWindos() で設定した矩形領域に画像データを指定された長さだけDMA転送します。矩形領域の左上から描画が始まります。
補足: startWrite() , endWrite() と組み合わせて使用します。詳しくは draw/push系とwrite系の関数の違いについて を参照してください。
Syntax:
void writePixelsDMA(T* data, int32_t len)
Parameter | Type | 説明 |
---|---|---|
data | T* | Image data |
len | int32_t | Data length |
void writePixelsDMA(T* data, int32_t len, bool swap)
Parameter | Type | 説明 |
---|---|---|
data | T* | Image data |
len | int32_t | Data length |
swap | bool | Swap bytes |