diff --git a/res/skins/Shade/audio_latency/audio_latency_usage_back.png b/res/skins/Shade/audio_latency/audio_latency_usage_back.png new file mode 100644 index 00000000000..695885cce42 Binary files /dev/null and b/res/skins/Shade/audio_latency/audio_latency_usage_back.png differ diff --git a/res/skins/Shade/mixer_panel.xml b/res/skins/Shade/mixer_panel.xml index 9d8cf5c3503..aed89678565 100644 --- a/res/skins/Shade/mixer_panel.xml +++ b/res/skins/Shade/mixer_panel.xml @@ -524,13 +524,13 @@ 113,28 - 26,1 + 26,2 horizontal audio_latency_usage skin:/audio_latency/audio_latency_usage.png - skin:/audio_latency/audio_latency_overload_back.png + skin:/audio_latency/audio_latency_usage_back.png 5 1000 100 diff --git a/src/util/texture.cpp b/src/util/texture.cpp index 65763ce6c4e..869063d9038 100644 --- a/src/util/texture.cpp +++ b/src/util/texture.cpp @@ -7,7 +7,7 @@ QOpenGLTexture* createTexture(const QImage& image) { QOpenGLTexture* pTexture = new QOpenGLTexture(image); pTexture->setMinificationFilter(QOpenGLTexture::Linear); pTexture->setMagnificationFilter(QOpenGLTexture::Linear); - pTexture->setWrapMode(QOpenGLTexture::ClampToBorder); + pTexture->setWrapMode(QOpenGLTexture::ClampToEdge); return pTexture; } diff --git a/src/widget/wvumeterbase.cpp b/src/widget/wvumeterbase.cpp index cc9048719a3..34216b9433c 100644 --- a/src/widget/wvumeterbase.cpp +++ b/src/widget/wvumeterbase.cpp @@ -77,6 +77,13 @@ void WVuMeterBase::setup(const QDomNode& node, const SkinContext& context) { m_iPeakFallTime = DEFAULT_FALLTIME; } + if (height() < 2 || width() < 2) { + // This triggers a QT bug and displays a white widget instead. + // We warn here, because the skin designer may not use the affected mode. + SKIN_WARNING(node, context) + << "VuMeterBase needs to have 2 pixel in all extents to be visible on all targets."; + } + setFocusPolicy(Qt::NoFocus); } diff --git a/src/widget/wvumeterglsl.cpp b/src/widget/wvumeterglsl.cpp index 88ed2baac11..626ed78fb69 100644 --- a/src/widget/wvumeterglsl.cpp +++ b/src/widget/wvumeterglsl.cpp @@ -72,7 +72,7 @@ void WVuMeterGLSL::paintGL() { const double pixmapHeight = m_pTextureVu->height(); if (m_bHorizontal) { const double widgetPosition = math_clamp(widgetWidth * m_dParameter, 0.0, widgetWidth); - QRectF targetRect(0, 0, widgetPosition, widgetHeight); + QRectF targetRect(0, 0, widgetPosition, math_min(pixmapHeight, widgetHeight)); const double pixmapPosition = math_clamp( pixmapWidth * m_dParameter, 0.0, pixmapWidth); @@ -89,7 +89,7 @@ void WVuMeterGLSL::paintGL() { QRectF targetRect(widgetPeakPosition - widgetPeakHoldSize, 0, widgetPeakHoldSize, - widgetHeight); + math_min(pixmapHeight, widgetHeight)); const double pixmapPeakPosition = math_clamp( pixmapWidth * m_dPeakParameter, 0.0, pixmapWidth);