Moves painting of frame into helper function
This commit is contained in:
@@ -56,11 +56,16 @@ void OsciWidget::paintEvent(QPaintEvent *event)
|
|||||||
m_statsTimer.restart();
|
m_statsTimer.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPainter painter(this);
|
||||||
|
painter.drawPixmap(0, 0, m_pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OsciWidget::updateFrameBuffer()
|
||||||
|
{
|
||||||
if (m_pixmap.size() != size())
|
if (m_pixmap.size() != size())
|
||||||
m_pixmap = QPixmap(size());
|
m_pixmap = QPixmap(size());
|
||||||
|
|
||||||
QPainter painter;
|
QPainter painter(&m_pixmap);
|
||||||
painter.begin(&m_pixmap);
|
|
||||||
|
|
||||||
// darkening last frame
|
// darkening last frame
|
||||||
painter.setCompositionMode(QPainter::CompositionMode_Multiply);
|
painter.setCompositionMode(QPainter::CompositionMode_Multiply);
|
||||||
@@ -100,21 +105,14 @@ void OsciWidget::paintEvent(QPaintEvent *event)
|
|||||||
m_lastPoint = p;
|
m_lastPoint = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
painter.setOpacity(1);
|
|
||||||
painter.resetTransform();
|
|
||||||
|
|
||||||
painter.end();
|
|
||||||
|
|
||||||
painter.begin(this);
|
|
||||||
painter.drawPixmap(0, 0, m_pixmap);
|
|
||||||
painter.end();
|
|
||||||
|
|
||||||
m_buffer.clear();
|
m_buffer.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OsciWidget::timerEvent(QTimerEvent *event)
|
void OsciWidget::timerEvent(QTimerEvent *event)
|
||||||
{
|
{
|
||||||
QWidget::timerEvent(event);
|
QWidget::timerEvent(event);
|
||||||
if (event->timerId() == m_redrawTimerId)
|
if (event->timerId() == m_redrawTimerId){
|
||||||
|
updateFrameBuffer();
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@@ -39,6 +39,9 @@ protected:
|
|||||||
void paintEvent(QPaintEvent *event) override;
|
void paintEvent(QPaintEvent *event) override;
|
||||||
void timerEvent(QTimerEvent *event) override;
|
void timerEvent(QTimerEvent *event) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void updateFrameBuffer();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float m_factor{2.f};
|
float m_factor{2.f};
|
||||||
int m_fps{30}, m_afterglow{175};
|
int m_fps{30}, m_afterglow{175};
|
||||||
|
Reference in New Issue
Block a user