Pixel function used wrong width and height for bounds check.
Remove String variable in smooth font code (not used)
Correct ESP8266UncannyEyes example for new setAddrWindow parameters
This commit is contained in:
Bodmer
2019-02-20 00:45:02 +00:00
parent 66a21cb761
commit 1edfe6c680
6 changed files with 11 additions and 10 deletions

View File

@@ -76,15 +76,13 @@ void TFT_eSPI::loadFont(String fontName)
unloadFont();
_gFontFilename = "/" + fontName + ".vlw";
// Avoid a crash on the ESP32 if the file does not exist
if (SPIFFS.exists(_gFontFilename) == false) {
if (SPIFFS.exists("/" + fontName + ".vlw") == false) {
Serial.println("Font file " + fontName + " not found!");
return;
}
fontFile = SPIFFS.open( _gFontFilename, "r");
fontFile = SPIFFS.open( "/" + fontName + ".vlw", "r");
if(!fontFile) return;

View File

@@ -39,8 +39,6 @@ fontMetrics gFont = { 0, 0, 0, 0, 0, 0, 0 };
int8_t* gdX = NULL; //leftExtent
uint32_t* gBitmap = NULL; //file pointer to greyscale bitmap
String _gFontFilename;
bool fontLoaded = false; // Flags when a anti-aliased font is loaded
private:

View File

@@ -1059,6 +1059,8 @@ int16_t TFT_eSprite::height(void)
// Does nothing for 8 and 16 bpp sprites. TODO allow rotation of these sprites
void TFT_eSprite::setRotation(uint8_t rotation)
{
if (_bpp != 1) return;
_rotation = rotation;
if (rotation == 0 && _iwidth > _iheight) swap_coord(_iwidth, _iheight);
if (rotation == 1 && _iwidth < _iheight) swap_coord(_iwidth, _iheight);
@@ -1085,19 +1087,22 @@ uint8_t TFT_eSprite::getRotation(void)
void TFT_eSprite::drawPixel(int32_t x, int32_t y, uint32_t color)
{
// Range checking
if ((x < 0) || (y < 0) ||(x >= _width) || (y >= _height) || !_created) return;
if ((x < 0) || (y < 0) || !_created) return;
if (_bpp == 16)
{
if ((x >= _iwidth) || (y >= _iheight)) return;
color = (color >> 8) | (color << 8);
_img[x+y*_iwidth] = (uint16_t) color;
}
else if (_bpp == 8)
{
if ((x >= _iwidth) || (y >= _iheight)) return;
_img8[x+y*_iwidth] = (uint8_t)((color & 0xE000)>>8 | (color & 0x0700)>>6 | (color & 0x0018)>>3);
}
else // 1 bpp
{
if ((x >= _dwidth) || (y >= _dheight)) return;
if (_rotation == 1)
{
uint16_t tx = x;

View File

@@ -141,7 +141,7 @@ void drawEye( // Renders one eye. Inputs must be pre-clipped & valid.
// reset on each frame here in case of an SPI glitch.
//eye[e].tft.setAddrWindow(319-127, 0, 319, 127);
eye[e].tft.setAddrWindow(0, 0, 128, 128);
eye[e].tft.setAddrWindow(0, 0, 127, 127);
//digitalWrite(eye[e].cs, LOW); // Chip select

View File

@@ -1,6 +1,6 @@
{
"name": "TFT_eSPI",
"version": "1.4.6",
"version": "1.4.7",
"keywords": "tft, ePaper, display, ESP8266, NodeMCU, ESP32, M5Stack, ILI9341, ST7735, ILI9163, S6D02A1, ILI9486, ST7789",
"description": "A TFT and ePaper SPI graphics library for ESP8266 and ESP32",
"repository":

View File

@@ -1,5 +1,5 @@
name=TFT_eSPI
version=1.4.6
version=1.4.7
author=Bodmer
maintainer=Bodmer
sentence=A fast TFT graphics library for ESP8266 and ESP32 processors for the Arduino IDE