fix(nv14): fix QT simulator display

This commit is contained in:
Raphael Coeffic
2022-06-12 18:30:42 +02:00
parent f80cd8cacc
commit 7e50b2f948
3 changed files with 12 additions and 10 deletions
@@ -132,7 +132,8 @@ void SimulatedUIWidget::onLcdChange(bool backlightEnable)
if (!m_lcd || !m_lcd->isVisible())
return;
m_lcd->onLcdChanged(backlightEnable);
uint8_t* lcdBuf = m_simulator->getLcd();
m_lcd->onLcdChanged(lcdBuf, backlightEnable);
m_simulator->lcdFlushed();
setLightOn(backlightEnable);
@@ -189,7 +190,11 @@ void SimulatedUIWidget::setLcd(LcdWidget * lcd)
{
m_lcd = lcd;
Firmware * firmware = getCurrentFirmware();
m_lcd->setData(m_simulator->getLcd(), firmware->getCapability(LcdWidth), firmware->getCapability(LcdHeight), firmware->getCapability(LcdDepth));
auto width = firmware->getCapability(LcdWidth);
auto height = firmware->getCapability(LcdHeight);
auto depth = firmware->getCapability(LcdDepth);
m_lcd->setData(width, height, depth);
if (!m_backlightColors.size())
return;
@@ -21,9 +21,8 @@
#include "lcdwidget.h"
void LcdWidget::setData(unsigned char *buf, int width, int height, int depth)
void LcdWidget::setData(int width, int height, int depth)
{
lcdBuf = buf;
lcdWidth = width;
lcdHeight = height;
lcdDepth = depth;
@@ -65,11 +64,11 @@ void LcdWidget::makeScreenshot(const QString &fileName)
}
}
void LcdWidget::onLcdChanged(bool light)
void LcdWidget::onLcdChanged(uint8_t* lcdBuf, bool light)
{
QMutexLocker locker(&lcdMtx);
lightEnable = light;
memcpy(localBuf, lcdBuf, lcdSize);
if (lcdBuf) memcpy(localBuf, lcdBuf, lcdSize);
if (!redrawTimer.isValid() ||
redrawTimer.hasExpired(LCD_WIDGET_REFRESH_PERIOD)) {
update();
+2 -4
View File
@@ -44,7 +44,6 @@ class LcdWidget : public QWidget
LcdWidget(QWidget *parent = 0) :
QWidget(parent),
lcdBuf(NULL),
localBuf(NULL),
lightEnable(false),
bgDefaultColor(QColor(198, 208, 199))
@@ -58,13 +57,13 @@ class LcdWidget : public QWidget
}
}
void setData(unsigned char *buf, int width, int height, int depth = 1);
void setData(int width, int height, int depth = 1);
void setBgDefaultColor(const QColor &color);
void setBackgroundColor(const QColor &color);
void makeScreenshot(const QString &fileName);
void onLcdChanged(bool light);
void onLcdChanged(uint8_t* lcdBuf, bool light);
signals:
void touchEvent(int type, int x, int y);
@@ -75,7 +74,6 @@ class LcdWidget : public QWidget
int lcdDepth;
int lcdSize;
unsigned char *lcdBuf;
unsigned char *localBuf;
bool lightEnable;