From 72c58eb110b907bf2915ff71fcbb7aa2eb7ddabd Mon Sep 17 00:00:00 2001 From: Be Date: Thu, 24 Oct 2019 01:31:03 -0500 Subject: WaveformRenderMark: fix scaling for high DPI screens --- src/waveform/renderers/waveformrendermark.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/waveform/renderers') diff --git a/src/waveform/renderers/waveformrendermark.cpp b/src/waveform/renderers/waveformrendermark.cpp index 4904e024bf..409e735657 100644 --- a/src/waveform/renderers/waveformrendermark.cpp +++ b/src/waveform/renderers/waveformrendermark.cpp @@ -57,7 +57,8 @@ void WaveformRenderMark::draw(QPainter* painter, QPaintEvent* /*event*/) { if (m_waveformRenderer->getOrientation() == Qt::Horizontal) { // NOTE: vRince I guess image width is odd to display the center on the exact line ! // external image should respect that ... - const int markHalfWidth = pMark->m_image.width() / 2.0; + const int markHalfWidth = pMark->m_image.width() / 2.0 + / m_waveformRenderer->getDevicePixelRatio(); // Check if the current point need to be displayed if (currentMarkPoint > -markHalfWidth && currentMarkPoint < m_waveformRenderer->getWidth() + markHalfWidth) { @@ -196,7 +197,10 @@ void WaveformRenderMark::generateMarkImage(WaveformMark* pMark) { height = 2 * labelRectHeight + 1; } - pMark->m_image = QImage(width, height, QImage::Format_ARGB32_Premultiplied); + pMark->m_image = QImage(width * m_waveformRenderer->getDevicePixelRatio(), + height * m_waveformRenderer->getDevicePixelRatio(), + QImage::Format_ARGB32_Premultiplied); + pMark->m_image.setDevicePixelRatio(m_waveformRenderer->getDevicePixelRatio()); Qt::Alignment markAlignH = markProperties.m_align & Qt::AlignHorizontal_Mask; Qt::Alignment markAlignV = markProperties.m_align & Qt::AlignVertical_Mask; -- cgit v1.2.3