diff options
Diffstat (limited to 'src/core/render_widget_host_view_qt_delegate_item.cpp')
-rw-r--r-- | src/core/render_widget_host_view_qt_delegate_item.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/render_widget_host_view_qt_delegate_item.cpp b/src/core/render_widget_host_view_qt_delegate_item.cpp index 91f765c2d..2bade607e 100644 --- a/src/core/render_widget_host_view_qt_delegate_item.cpp +++ b/src/core/render_widget_host_view_qt_delegate_item.cpp @@ -370,8 +370,10 @@ QSGNode *RenderWidgetHostViewQtDelegateItem::updatePaintNode(QSGNode *oldNode, U #if QT_CONFIG(opengl) } else if (comp->type() == Compositor::Type::OpenGL) { QQuickWindow::CreateTextureOptions texOpts; - if (comp->hasAlphaChannel()) + if (comp->requiresAlphaChannel() || m_clearColor.alpha() < 255) texOpts.setFlag(QQuickWindow::TextureHasAlphaChannel); + else + texOpts.setFlag(QQuickWindow::TextureIsOpaque); int texId = comp->textureId(); node->setTexture(QNativeInterface::QSGOpenGLTexture::fromNative(texId, win, texSize, texOpts)); node->setTextureCoordinatesTransform(QSGImageNode::MirrorVertically); @@ -379,8 +381,10 @@ QSGNode *RenderWidgetHostViewQtDelegateItem::updatePaintNode(QSGNode *oldNode, U #if QT_CONFIG(webengine_vulkan) } else if (comp->type() == Compositor::Type::Vulkan) { QQuickWindow::CreateTextureOptions texOpts; - if (comp->hasAlphaChannel()) + if (comp->requiresAlphaChannel() || m_clearColor.alpha() < 255) texOpts.setFlag(QQuickWindow::TextureHasAlphaChannel); + else + texOpts.setFlag(QQuickWindow::TextureIsOpaque); VkImage image = comp->vkImage(win); VkImageLayout layout = comp->vkImageLayout(); |