Use proper composition mode when copying lines to flash buffers

This commit is contained in:
G.K.MacGregor
2023-05-14 17:39:08 +01:00
parent 955a1262e9
commit ed821bde45

View File

@@ -295,9 +295,7 @@ void TeletextPageRender::renderRow(int r, int ph, bool force)
// the flashing cells in those buffers // the flashing cells in those buffers
if (rowRefreshed && m_flashBuffersHz > 0) { if (rowRefreshed && m_flashBuffersHz > 0) {
pixmapPainter.begin(m_pagePixmap[3]); pixmapPainter.begin(m_pagePixmap[3]);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_Clear); pixmapPainter.setCompositionMode(QPainter::CompositionMode_Source);
pixmapPainter.eraseRect(0, r*10, 864, 10);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10); pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10);
pixmapPainter.end(); pixmapPainter.end();
@@ -305,27 +303,19 @@ void TeletextPageRender::renderRow(int r, int ph, bool force)
if (m_flashBuffersHz == 2) { if (m_flashBuffersHz == 2) {
pixmapPainter.begin(m_pagePixmap[1]); pixmapPainter.begin(m_pagePixmap[1]);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_Clear); pixmapPainter.setCompositionMode(QPainter::CompositionMode_Source);
pixmapPainter.eraseRect(0, r*10, 864, 10);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10); pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10);
pixmapPainter.end(); pixmapPainter.end();
pixmapPainter.begin(m_pagePixmap[2]); pixmapPainter.begin(m_pagePixmap[2]);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_Clear); pixmapPainter.setCompositionMode(QPainter::CompositionMode_Source);
pixmapPainter.eraseRect(0, r*10, 864, 10);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10); pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[0], 0, r*10, 864, 10);
pixmapPainter.end(); pixmapPainter.end();
pixmapPainter.begin(m_pagePixmap[4]); pixmapPainter.begin(m_pagePixmap[4]);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_Clear); pixmapPainter.setCompositionMode(QPainter::CompositionMode_Source);
pixmapPainter.eraseRect(0, r*10, 864, 10);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[3], 0, r*10, 864, 10); pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[3], 0, r*10, 864, 10);
pixmapPainter.end(); pixmapPainter.end();
pixmapPainter.begin(m_pagePixmap[5]); pixmapPainter.begin(m_pagePixmap[5]);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_Clear); pixmapPainter.setCompositionMode(QPainter::CompositionMode_Source);
pixmapPainter.eraseRect(0, r*10, 864, 10);
pixmapPainter.setCompositionMode(QPainter::CompositionMode_SourceOver);
pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[3], 0, r*10, 864, 10); pixmapPainter.drawPixmap(0, r*10, *m_pagePixmap[3], 0, r*10, 864, 10);
pixmapPainter.end(); pixmapPainter.end();