From a53745d8fd9361b04ab144db14330a2598a03ce9 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 28 Apr 2020 11:05:43 +0200 Subject: [PATCH] Fix x10 video buffer protection --- radio/src/gui/480x272/lcd.cpp | 4 ++++ radio/src/gui/480x272/radio_diaganas.cpp | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/radio/src/gui/480x272/lcd.cpp b/radio/src/gui/480x272/lcd.cpp index 6659e386b..9c6f48cdf 100644 --- a/radio/src/gui/480x272/lcd.cpp +++ b/radio/src/gui/480x272/lcd.cpp @@ -422,7 +422,11 @@ void lcdDrawPoint(coord_t x, coord_t y, LcdFlags att) { display_t * p = PIXEL_PTR(x, y); display_t color = lcdColorTable[COLOR_IDX(att)]; +#if defined(PCBX10) + if (p >= displayBuf) { // x10 screen is reversed, so overflow are happening the other way around +#else if (p < DISPLAY_END) { +#endif *p = color; } } diff --git a/radio/src/gui/480x272/radio_diaganas.cpp b/radio/src/gui/480x272/radio_diaganas.cpp index 0df7ca1bf..b269f8fc0 100644 --- a/radio/src/gui/480x272/radio_diaganas.cpp +++ b/radio/src/gui/480x272/radio_diaganas.cpp @@ -76,10 +76,8 @@ bool menuRadioDiagAnalogs(event_t event) lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.x); lcdDrawText(lcdNextPos, MENU_CONTENT_TOP + 7 * FH, ", "); lcdDrawNumber(lcdNextPos + 1, MENU_CONTENT_TOP + 7 * FH, touchState.y); - coord_t x = limit(10, (coord_t)touchState.x, 469); // TODO remove, prevent an emergency crash when drawing on y 280 line - coord_t y = limit(7, (coord_t)touchState.y, 264); // TODO remove, prevent an emergency crash when drawing on y 280 line - lcdDrawLine(x - 10, y - 7, x + 10, y + 7, SOLID); - lcdDrawLine(x - 10, y + 7, x + 10, y - 7, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y - 7, touchState.x + 10, touchState.y + 7, SOLID); + lcdDrawLine(touchState.x - 10, touchState.y + 7, touchState.x + 10, touchState.y - 7, SOLID); } #endif