diff --git a/lib/lib_display/Adafruit-GFX-Library-1.5.6-gemu-1.0/Adafruit_GFX.cpp b/lib/lib_display/Adafruit-GFX-Library-1.5.6-gemu-1.0/Adafruit_GFX.cpp index 8741e6247..a40702660 100644 --- a/lib/lib_display/Adafruit-GFX-Library-1.5.6-gemu-1.0/Adafruit_GFX.cpp +++ b/lib/lib_display/Adafruit-GFX-Library-1.5.6-gemu-1.0/Adafruit_GFX.cpp @@ -1579,6 +1579,8 @@ void Adafruit_GFX_Button::initButtonUL( strncpy(_label, label, 9); } +void draw_picture(char *path, uint32_t xp, uint32_t yp, uint32_t xs, uint32_t ys, bool inverted); + /**************************************************************************/ /*! @brief Draw the button on the screen @@ -1598,16 +1600,20 @@ void Adafruit_GFX_Button::drawButton(boolean inverted) { text = _fillcolor; } - uint8_t r = min(_w, _h) / 4; // Corner radius - _gfx->fillRoundRect(_x1, _y1, _w, _h, r, fill); - _gfx->drawRoundRect(_x1, _y1, _w, _h, r, outline); - - _gfx->setCursor(_x1 + (_w/2) - (strlen(_label) * 3 * _textsize_x), - _y1 + (_h/2) - (4 * _textsize_y)); - _gfx->setTextColor(text); - _gfx->setTextSize(_textsize_x, _textsize_y); - _gfx->print(_label); + if (_label[0]=='/') { + // picture path + draw_picture(_label, _x1, _y1, _w, _h, inverted); + _gfx->drawRect(_x1, _y1, _w, _h, text); + } else { + uint8_t r = min(_w, _h) / 4; // Corner radius + _gfx->fillRoundRect(_x1, _y1, _w, _h, r, fill); + _gfx->drawRoundRect(_x1, _y1, _w, _h, r, outline); + _gfx->setCursor(_x1 + (_w/2) - (strlen(_label) * 3 * _textsize_x), _y1 + (_h/2) - (4 * _textsize_y)); + _gfx->setTextColor(text); + _gfx->setTextSize(_textsize_x, _textsize_y); + _gfx->print(_label); + } } /**************************************************************************/ diff --git a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp index a4391f10e..d590cdc14 100644 --- a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp +++ b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.cpp @@ -545,6 +545,12 @@ void ILI9341_2::DisplayOnff(int8_t on) { } } +void ILI9341_2::invertDisplay(boolean i) { + ILI9341_2_CS_LOW + writecmd(i ? ILI9341_2_INVOFF : ILI9341_2_INVON); + ILI9341_2_CS_HIGH +} + void ili9342_dimm(uint8_t dim); // dimmer 0-100 diff --git a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h index 27ff00e5d..a4608e6ba 100644 --- a/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h +++ b/lib/lib_display/ILI9341-gemu-1.0/ILI9341_2.h @@ -119,30 +119,6 @@ class ILI9341_2 : public Renderer { ILI9341_2(int8_t cs, int8_t res, int8_t dc, int8_t bp); void init(uint16_t width, uint16_t height); - /* - void begin(void); - void DisplayInit(int8_t p,int8_t size,int8_t rot,int8_t font); - void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); - void setScrollArea(uint16_t topFixedArea, uint16_t bottomFixedArea); - void scroll(uint16_t pixels); - void pushColor(uint16_t color); - void pushColors(uint16_t *data, uint8_t len, boolean first); - //void drawImage(const uint8_t* img, uint16_t x, uint16_t y, uint16_t w, uint16_t h); - void fillScreen(uint16_t color); - void drawPixel(int16_t x, int16_t y, uint16_t color); - void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); - void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); - void fillRect(int16_t x, int16_t y, int16_t w, int16_t h,uint16_t color); - void setRotation(uint8_t r); - void invertDisplay(boolean i); - uint16_t color565(uint8_t r, uint8_t g, uint8_t b); - void DisplayOnff(int8_t on); - void writecommand(uint8_t c); - void writedata(uint8_t d); - void write16BitColor(uint16_t color); - void commandList(uint8_t *addr); - void hw_spi_init(); - void dim(uint8_t contrast);*/ uint16_t GetColorFromIndex(uint8_t index); private: @@ -161,7 +137,7 @@ class ILI9341_2 : public Renderer { void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); void dim(uint8_t dim); void pushColors(uint16_t *data, uint8_t len, boolean first); - + void invertDisplay(boolean i); void spiwrite(uint8_t c); void spiwrite16(uint16_t c); void spiwrite32(uint32_t c); diff --git a/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.cpp b/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.cpp index 357000a69..61dea05c1 100644 --- a/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.cpp +++ b/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.cpp @@ -503,6 +503,16 @@ void ILI9488::scroll(uint16_t pixels){ }*/ void ILI9488::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { + if (!x0 && !y0 && !x1 && !y1) { + x0=0; + y0=0; + x1=_width; + y1=_height; + } + setAddrWindow_int(x0, y0, x1-1, y1-1); +} + +void ILI9488::setAddrWindow_int(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { uint8_t flag=0; if (!x0 && !y0 && !x1 && !y1) { @@ -594,6 +604,7 @@ void ILI9488::pushColor(uint16_t color) { ILI9488_STOP } +#if 1 void ILI9488::pushColors(uint16_t *data, uint8_t len, boolean first) { uint16_t color; uint8_t buff[len*3+1]; @@ -616,6 +627,17 @@ void ILI9488::pushColors(uint16_t *data, uint8_t len, boolean first) { ILI9488_STOP } +#else + +void ILI9488::pushColors(uint16_t *data, uint8_t len, boolean first) { + uint16_t color; + + while (len--) { + write16BitColor(*data++); + } + ILI9488_STOP +} +#endif void ILI9488::write16BitColor(uint16_t color){ // #if (__STM32F1__) @@ -688,7 +710,7 @@ void ILI9488::drawPixel(int16_t x, int16_t y, uint16_t color) { if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) return; - setAddrWindow(x,y,x+1,y+1); + setAddrWindow_int(x,y,x+1,y+1); write16BitColor(color); ILI9488_STOP } @@ -702,7 +724,7 @@ void ILI9488::drawFastVLine(int16_t x, int16_t y, int16_t h, if((y+h-1) >= _height) h = _height-y; - setAddrWindow(x, y, x, y+h-1); + setAddrWindow_int(x, y, x, y+h-1); uint8_t r = (color & 0xF800) >> 11; uint8_t g = (color & 0x07E0) >> 5; @@ -770,7 +792,7 @@ void ILI9488::drawFastHLine(int16_t x, int16_t y, int16_t w, if((x >= _width) || (y >= _height)) return; if((x+w-1) >= _width) w = _width-x; - setAddrWindow(x, y, x+w-1, y); + setAddrWindow_int(x, y, x+w-1, y); uint8_t r = (color & 0xF800) >> 11; uint8_t g = (color & 0x07E0) >> 5; @@ -905,7 +927,7 @@ void ILI9488::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t colo if((x + w - 1) >= _width) w = _width - x; if((y + h - 1) >= _height) h = _height - y; - setAddrWindow(x, y, x+w-1, y+h-1); + setAddrWindow_int(x, y, x+w-1, y+h-1); //ILI9488_START uint8_t r = (color & 0xF800) >> 11; @@ -1050,7 +1072,7 @@ void ILI9488::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t colo if((x + w - 1) >= _width) w = _width - x; if((y + h - 1) >= _height) h = _height - y; - setAddrWindow(x, y, x+w-1, y+h-1); + setAddrWindow_int(x, y, x+w-1, y+h-1); uint8_t r = (color & 0xF800) >> 11; uint8_t g = (color & 0x07E0) >> 5; diff --git a/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.h b/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.h index 5fd2e39e5..50557822e 100644 --- a/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.h +++ b/lib/lib_display/JaretBurkett_ILI9488-gemu-1.0/ILI9488.h @@ -136,6 +136,7 @@ class ILI9488 : public Renderer { void begin(void); void DisplayInit(int8_t p,int8_t size,int8_t rot,int8_t font); + void setAddrWindow_int(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); void setScrollArea(uint16_t topFixedArea, uint16_t bottomFixedArea); void scroll(uint16_t pixels); diff --git a/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.cpp b/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.cpp index a8f0f9e57..1b78aaa9a 100644 --- a/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.cpp +++ b/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.cpp @@ -32,6 +32,10 @@ //#define USE_GFX_FONTS #define USE_TINY_FONT +#ifdef ESP32 +#define USE_ICON_FONT +#endif + uint8_t wr_redir=0; uint8_t *buffer; @@ -223,27 +227,32 @@ void Renderer::setTextFont(uint8_t f) { break; case 7: selected_font = &RAFont; + break; default: - font=0; + selected_font = &Font12; + break; } #else #ifdef USE_EPD_FONTS - if (1 == font) { + switch (font) { selected_font = &Font12; - } else { - #ifdef USE_TINY_FONT - if (2 == font) { - selected_font = &Font24; - } else { - selected_font = &Font8; - } - #else + break; + case 2: selected_font = &Font24; - #endif + break; + case 3: +#ifdef USE_TINY_FONT + selected_font = &Font8; +#else + selected_font = &Font24; +#endif + break; + default: + selected_font = &Font12; + break; } #endif #endif - } @@ -513,6 +522,9 @@ void Renderer::setDrawMode(uint8_t mode) { drawmode=mode; } +void Renderer::invertDisplay(boolean i) { +} + void VButton::xdrawButton(bool inverted) { wr_redir=1; drawButton(inverted); @@ -520,4 +532,6 @@ void VButton::xdrawButton(bool inverted) { } + + /* END OF FILE */ diff --git a/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.h b/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.h index 27ff56efe..0685b9bb1 100644 --- a/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.h +++ b/lib/lib_display/esp-epaper-29-ws-20171230-gemu-1.1/src/renderer.h @@ -35,6 +35,7 @@ public: virtual void dim(uint8_t contrast); virtual void pushColors(uint16_t *data, uint8_t len, boolean first); virtual void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); + virtual void invertDisplay(boolean i); void setDrawMode(uint8_t mode); uint8_t drawmode; virtual void FastString(uint16_t x,uint16_t y,uint16_t tcolor, const char* str);