17  GxEPD2_EPD(cs, dc, rst, busy, LOW, 10000000, WIDTH, HEIGHT, panel, hasColor, hasPartialUpdate, hasFastPartialUpdate)
 
 
   34  for (uint32_t i = 0; i < uint32_t(
WIDTH) * uint32_t(
HEIGHT) / 8; i++)
 
   43    for (uint32_t i = 0; i < uint32_t(
WIDTH) * uint32_t(
HEIGHT) / 8; i++)
 
 
   51void GxEPD2_750_T7::writeImage(
const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
   55  uint16_t wb = (w + 7) / 8; 
 
   58  int16_t x1 = x < 0 ? 0 : x; 
 
   59  int16_t y1 = y < 0 ? 0 : y; 
 
   60  int16_t w1 = x + w < int16_t(
WIDTH) ? w : int16_t(
WIDTH) - x; 
 
   61  int16_t h1 = y + h < int16_t(
HEIGHT) ? h : int16_t(
HEIGHT) - y; 
 
   66  if ((w1 <= 0) || (h1 <= 0)) 
return;
 
   69  _setPartialRamArea(x1, y1, w1, h1);
 
   72  for (int16_t i = 0; i < h1; i++)
 
   74    for (int16_t j = 0; j < w1 / 8; j++)
 
   78      uint16_t idx = mirror_y ? j + dx / 8 + uint16_t((h - 1 - (i + dy))) * wb : j + dx / 8 + uint16_t(i + dy) * wb;
 
   81#if defined(__AVR) || defined(ESP8266) || defined(ESP32) 
   82        data = pgm_read_byte(&bitmap[idx]);
 
   91      if (invert) data = ~data;
 
 
  101                                   int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  105  if ((w_bitmap < 0) || (h_bitmap < 0) || (w < 0) || (h < 0)) 
return;
 
  106  if ((x_part < 0) || (x_part >= w_bitmap)) 
return;
 
  107  if ((y_part < 0) || (y_part >= h_bitmap)) 
return;
 
  108  uint16_t wb_bitmap = (w_bitmap + 7) / 8; 
 
  109  x_part -= x_part % 8; 
 
  110  w = w_bitmap - x_part < w ? w_bitmap - x_part : w; 
 
  111  h = h_bitmap - y_part < h ? h_bitmap - y_part : h; 
 
  113  w = 8 * ((w + 7) / 8); 
 
  114  int16_t x1 = x < 0 ? 0 : x; 
 
  115  int16_t y1 = y < 0 ? 0 : y; 
 
  116  int16_t w1 = x + w < int16_t(
WIDTH) ? w : int16_t(
WIDTH) - x; 
 
  117  int16_t h1 = y + h < int16_t(
HEIGHT) ? h : int16_t(
HEIGHT) - y; 
 
  122  if ((w1 <= 0) || (h1 <= 0)) 
return;
 
  125  _setPartialRamArea(x1, y1, w1, h1);
 
  128  for (int16_t i = 0; i < h1; i++)
 
  130    for (int16_t j = 0; j < w1 / 8; j++)
 
  134      uint16_t idx = mirror_y ? x_part / 8 + j + dx / 8 + uint16_t((h_bitmap - 1 - (y_part + i + dy))) * wb_bitmap : x_part / 8 + j + dx / 8 + uint16_t(y_part + i + dy) * wb_bitmap;
 
  137#if defined(__AVR) || defined(ESP8266) || defined(ESP32) 
  138        data = pgm_read_byte(&bitmap[idx]);
 
  147      if (invert) data = ~data;
 
 
  156void GxEPD2_750_T7::writeImage(
const uint8_t* black, 
const uint8_t* color, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  160    writeImage(black, x, y, w, h, invert, mirror_y, pgm);
 
 
  165                                   int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  169    writeImagePart(black, x_part, y_part, w_bitmap, h_bitmap, x, y, w, h, invert, mirror_y, pgm);
 
 
  173void GxEPD2_750_T7::writeNative(
const uint8_t* data1, 
const uint8_t* data2, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  177    writeImage(data1, x, y, w, h, invert, mirror_y, pgm);
 
 
  181void GxEPD2_750_T7::drawImage(
const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  183  writeImage(bitmap, x, y, w, h, invert, mirror_y, pgm);
 
  185  writeImage(bitmap, x, y, w, h, invert, mirror_y, pgm);
 
 
  189                                  int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  191  writeImagePart(bitmap, x_part, y_part, w_bitmap, h_bitmap, x, y, w, h, invert, mirror_y, pgm);
 
  193  writeImagePart(bitmap, x_part, y_part, w_bitmap, h_bitmap, x, y, w, h, invert, mirror_y, pgm);
 
 
  196void GxEPD2_750_T7::drawImage(
const uint8_t* black, 
const uint8_t* color, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  198  writeImage(black, color, x, y, w, h, invert, mirror_y, pgm);
 
  200  writeImage(black, color, x, y, w, h, invert, mirror_y, pgm);
 
 
  204                                  int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  206  writeImagePart(black, color, x_part, y_part, w_bitmap, h_bitmap, x, y, w, h, invert, mirror_y, pgm);
 
  208  writeImagePart(black, color, x_part, y_part, w_bitmap, h_bitmap, x, y, w, h, invert, mirror_y, pgm);
 
 
  211void GxEPD2_750_T7::drawNative(
const uint8_t* data1, 
const uint8_t* data2, int16_t x, int16_t y, int16_t w, int16_t h, 
bool invert, 
bool mirror_y, 
bool pgm)
 
  213  writeNative(data1, data2, x, y, w, h, invert, mirror_y, pgm);
 
  215  writeNative(data1, data2, x, y, w, h, invert, mirror_y, pgm);
 
 
  233  int16_t w1 = x < 0 ? w + x : w; 
 
  234  int16_t h1 = y < 0 ? h + y : h; 
 
  235  int16_t x1 = x < 0 ? 0 : x; 
 
  236  int16_t y1 = y < 0 ? 0 : y; 
 
  237  w1 = x1 + w1 < int16_t(
WIDTH) ? w1 : int16_t(
WIDTH) - x1; 
 
  238  h1 = y1 + h1 < int16_t(
HEIGHT) ? h1 : int16_t(
HEIGHT) - y1; 
 
  239  if ((w1 <= 0) || (h1 <= 0)) 
return; 
 
  242  if (w1 % 8 > 0) w1 += 8 - w1 % 8;
 
  246  _setPartialRamArea(x1, y1, w1, h1);
 
 
  267void GxEPD2_750_T7::_setPartialRamArea(uint16_t x, uint16_t y, uint16_t w, uint16_t h)
 
  269  uint16_t xe = (x + w - 1) | 0x0007; 
 
  270  uint16_t ye = y + h - 1;
 
  285void GxEPD2_750_T7::_PowerOn()
 
  295void GxEPD2_750_T7::_PowerOff()
 
  306void GxEPD2_750_T7::_InitDisplay()
 
  338const unsigned char GxEPD2_750_T7::lut_20_LUTC_partial[] 
PROGMEM =
 
 
  343const unsigned char GxEPD2_750_T7::lut_21_LUTWW_partial[] 
PROGMEM =
 
  348const unsigned char GxEPD2_750_T7::lut_22_LUTKW_partial[] 
PROGMEM =
 
  354const unsigned char GxEPD2_750_T7::lut_23_LUTWK_partial[] 
PROGMEM =
 
  360const unsigned char GxEPD2_750_T7::lut_24_LUTKK_partial[] 
PROGMEM =
 
  365const unsigned char GxEPD2_750_T7::lut_25_LUTBD_partial[] 
PROGMEM =
 
  370void GxEPD2_750_T7::_Init_Full()
 
  379void GxEPD2_750_T7::_Init_Part()
 
  392  _writeDataPGM(lut_20_LUTC_partial, 
sizeof(lut_20_LUTC_partial), 42 - 
sizeof(lut_20_LUTC_partial));
 
  394  _writeDataPGM(lut_21_LUTWW_partial, 
sizeof(lut_21_LUTWW_partial), 42 - 
sizeof(lut_21_LUTWW_partial));
 
  396  _writeDataPGM(lut_22_LUTKW_partial, 
sizeof(lut_22_LUTKW_partial), 42 - 
sizeof(lut_22_LUTKW_partial));
 
  398  _writeDataPGM(lut_23_LUTWK_partial, 
sizeof(lut_23_LUTWK_partial), 42 - 
sizeof(lut_23_LUTWK_partial));
 
  400  _writeDataPGM(lut_24_LUTKK_partial, 
sizeof(lut_24_LUTKK_partial), 42 - 
sizeof(lut_24_LUTKK_partial));
 
  402  _writeDataPGM(lut_25_LUTBD_partial, 
sizeof(lut_25_LUTBD_partial), 42 - 
sizeof(lut_25_LUTBD_partial));
 
  407void GxEPD2_750_T7::_Update_Full()
 
  413void GxEPD2_750_T7::_Update_Part()
 
const unsigned char GxEPD2_750_T7::lut_20_LUTC_partial[] PROGMEM
 
void writeImage(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
static const bool usePartialUpdateWindow
 
void writeNative(const uint8_t *data1, const uint8_t *data2, int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
GxEPD2_750_T7(int16_t cs, int16_t dc, int16_t rst, int16_t busy)
 
static const uint16_t power_on_time
 
static const uint16_t power_off_time
 
void drawImagePart(const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap, int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
void writeImagePart(const uint8_t bitmap[], int16_t x_part, int16_t y_part, int16_t w_bitmap, int16_t h_bitmap, int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
static const uint16_t HEIGHT
 
static const uint16_t WIDTH
 
void clearScreen(uint8_t value=0xFF)
 
void drawImage(const uint8_t bitmap[], int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
void writeScreenBuffer(uint8_t value=0xFF)
 
static const bool hasFastPartialUpdate
 
static const uint16_t full_refresh_time
 
static const uint16_t partial_refresh_time
 
void drawNative(const uint8_t *data1, const uint8_t *data2, int16_t x, int16_t y, int16_t w, int16_t h, bool invert=false, bool mirror_y=false, bool pgm=false)
 
void refresh(bool partial_update_mode=false)
 
void _writeCommand(uint8_t c)
 
void _writeData(uint8_t d)
 
void _waitWhileBusy(const char *comment=0, uint16_t busy_time=5000)
 
void _transfer(uint8_t value)
 
void _writeDataPGM(const uint8_t *data, uint16_t n, int16_t fill_with_zeroes=0)