Function Prototype:
bool isEPD(void)
Description:
Return:
Function Prototype:
int32_t height(void)
Description:
Parameters:
Return:
Function Prototype:
int32_t width (void)
Description:
Parameters:
Return:
Function Prototype:
void popState(void)
Description:
Parameters:
Return:
Function Prototype:
void pushState(void)
Description:
Parameters:
Return:
Function Prototype:
void setBrightness(uint8_t brightness)
Description:
Parameters:
Return:
Function Prototype:
uint8_t getBrightness(void)
Description:
Parameters:
Return:
Function Prototype:
void setEpdMode(epd_mode_t epd_mode)
Description:
Parameters:
Return:
Function Prototype:
epd_mode_t getEpdMode(void)
Description:
Parameters:
Return:
Function Prototype 1:
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, uint32_t pixel_clock = 74250000)
Function Prototype 2:
bool setResolution( const config_resolution_t& cfg_resolution )
Description:
M5AtomDisplay
.Parameters:
cfg_resolution
contains all the parameters listed above.Return:
Function Prototype:
void setRotation(uint_fast8_t r)
Description:
Parameters:
Return:
Function Prototype:
uint8_t getRotation(void)
Description:
Parameters:
Return:
Function Prototype:
void setBaseColor(T c)
Description:
Parameters:
Return:
Function Prototype:
uint32_t getBaseColor(void)
Description:
Parameters:
Return:
Function Prototype 1:
void setColor(uint8_t r, uint8_t g, uint8_t b)
Function Prototype 2:
void setColor(T color)
Description:
Parameters:
Return:
Function Prototype:
void setRawColor(uint32_t c)
Description:
Parameters:
Return:
Function Prototype:
uint32_t getRawColor(void)
Description:
Parameters:
Return:
Function Prototype 1:
void setColorDepth(uint8_t bpp)
Function Prototype 2:
void* setColorDepth(color_depth_t depth)
Description:
Parameters:
Function Prototype:
color_depth_t getColorDepth(void)
Description:
Parameters:
Return:
Function Prototype:
RGBColor* getPalette(void)
Description:
Parameters:
Return:
Function Prototype:
uint32_t getPaletteCount(void)
Description:
Parameters:
Return:
Function Prototype:
void clear(const T &color)
Description
Parameters:
Return:
Function Prototype:
void clearDisplay(uint32_t color = 0)
Description:
Parameters:
Return:
Function Prototype:
void fillScreen(const T &color)
Description:
Parameters:
Return:
Function Prototype 1:
void setCursor(int16_t x, int16_t y)
Function Prototype 2:
void setCursor(int16_t x, int16_t y, uint8_t font)
void setCursor( int32_t x, int32_t y, const IFont* font)
Description:
Parameters:
Return:
Function Prototype:
int32_t getCursorX(void)
Description:
Parameters:
Return:
Function Prototype:
int32_t getCursorY(void)
Description:
Parameters:
Return:
Function Prototype:
void setPivot(float x, float y)
Description:
Parameters:
Return:
Function Prototype:
float getPivotX(void)
Description:
Parameters:
Return:
Function Prototype:
float getPivotY(void)
Description:
Parameters:
Return:
Function Prototype:
void setAddrWindow(int32_t x, int32_t y, int32_t w, int32_t h)
Description:
Parameters:
Return:
Function Prototype:
void setWindow(uint_fast16_t xs, uint_fast16_t ys, uint_fast16_t xe, uint_fast16_t ye)
Description:
Parameters:
Return:
Function Prototype:
void setAddrWindow(int32_t x, int32_t y, int32_t w, int32_t h)
Description:
Parameters:
Return:
Function Prototype:
void setWindow(uint_fast16_t xs, uint_fast16_t ys, uint_fast16_t xe, uint_fast16_t ye)
Description:
Parameters:
Return:
Function Prototype:
void setClipRect(int32_t x, int32_t y, int32_t w, int32_t h)
Description:
Parameters:
Return:
Function Prototype:
void getClipRect(int32_t *x, int32_t *y, int32_t *w, int32_t *h)
Description:
Parameters:
Return:
Function Prototype:
void clearClipRect(void)
Description:
Parameters:
Return:
Function Prototype:
void scroll(int_fast16_t dx, int_fast16_t dy)
Description:
Parameters:
Return:
Example Program:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint16_t x;
uint16_t y;
bool flag = false;
void setup()
{
display.begin();
display.drawString(" Scrolling... ", 0, 0, &fonts::lgfxJapanGothic_24);
}
void loop()
{
if(flag)
{
for (int i=-53; i<=53; i+=1) {
display.scroll(0, -2);
if(i>=53){ flag = false; }
}
}
else
{
for (int i=-53; i<=53; i+=1) {
display.scroll(0, 2);
if(i>=53){ flag = true; }
}
}
}
Function Prototype:
void setTextScroll(bool scroll)
Description:
Parameters:
Return:
setTextScroll(true)
.Function Prototype:
void setScrollRect(int32_t x, int32_t y, int32_t w, int32_t h, const T& color)
Description:
Parameters:
Return:
Function Prototype:
void getScrollRect(int32_t *x, int32_t *y, int32_t *w, int32_t *h)
Description:
Parameters:
Return:
Function Prototype:
void clearScrollRect(void)
Description:
Parameters:
Return:
Example Program 1:
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint32_t count = 0;
void setup() {
display.begin();
display.setRotation(1);
if(display.isEPD())
{
display.setColorDepth(8);//The ink screen product supports a maximum bit depth of 8 bits.
display.setEpdMode(epd_fastest);
}
else
{
display.setColorDepth(16);
}
display.fillScreen(TFT_WHITE);
display.setBaseColor(TFT_WHITE);
display.setTextFont(&fonts::FreeMonoBoldOblique18pt7b);
display.setTextColor(TFT_BLACK);
display.setTextScroll(true);
display.setScrollRect(0, 0, display.width(), display.height());
}
void loop() {
display.printf("Scroll: %d\n", count);
count++;
delay(500);
}
By comparing the final results of the following two example programs, you can see the advantages of using Canvas.
Example Program 2 (Display):
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
uint16_t w;
uint16_t h;
static constexpr char text[] = "Hello world ! This is M5Stack scroll test.";
static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
int textpos = 0;
int scrollstep = 2;
void setup()
{
display.begin();
display.setRotation(3);
display.setBaseColor(TFT_WHITE);
display.fillScreen(TFT_WHITE);
display.setFont(&fonts::FreeMonoBoldOblique24pt7b);
display.setTextColor(TFT_BLACK);
w = display.width() / 2;
h = display.height() / 2;
}
void loop()
{
int32_t cursor_x = display.getCursorX() - scrollstep;
if (cursor_x <= 0)
{
textpos = 0;
cursor_x = 0;
}
display.setCursor(cursor_x, h-24);
display.scroll(-scrollstep, 0);
while (textpos < textlen && cursor_x <= display.width())
{
display.print(text[textpos++]);
cursor_x = display.getCursorX();
}
}
Example Program 3 (Canvas):
#include <Arduino.h>
#include <M5GFX.h>
M5GFX display;
M5Canvas canvas(&display);
uint16_t w;
uint16_t h;
static constexpr char text[] = "Hello world ! This is M5Stack scroll test.";
static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
int textpos = 0;
int scrollstep = 2;
void setup()
{
display.begin();
display.setRotation(3);
display.fillScreen(TFT_WHITE);
canvas.createSprite(display.width() + 64, 108);
canvas.fillSprite(TFT_WHITE);
canvas.setBaseColor(TFT_WHITE);
canvas.setFont(&fonts::FreeMonoBoldOblique24pt7b);
canvas.setTextColor(TFT_BLACK);
canvas.setTextSize(1.5);
}
void loop()
{
int32_t cursor_x = canvas.getCursorX() - scrollstep;
if (cursor_x <= 0)
{
textpos = 0;
cursor_x = display.width();
}
canvas.setCursor(cursor_x, 0);
canvas.scroll(-scrollstep, 0);
while (textpos < textlen && cursor_x <= display.width())
{
canvas.setColor(TFT_BLACK);
canvas.print(text[textpos++]);
cursor_x = canvas.getCursorX();
}
int y = (display.height() - canvas.height()) >> 1;
canvas.pushSprite(&display, 0, y);
}
Function Prototype:
void effect(int32_t x, int32_t y, int32_t w, int32_t h, TFunc&& effector)
Description:
Parameters:
Return: