summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Weimer <bernd.weimer@qt.io>2022-07-12 15:03:01 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-07-14 06:19:43 +0000
commit71871c46ed29c7923b85090ddbe6366027c61f2d (patch)
treef998658117b5ba4e57b8bbf003be045660def399
parent25a0157fc4fdf4fe3e33c0a789ac2155356076de (diff)
downloadqtapplicationmanager-71871c46ed29c7923b85090ddbe6366027c61f2d.tar.gz
Avoid rendering fully transparent node
This improves performance in single-process mode, when an ApplicationManagerWindow is fully transparent. Change-Id: I87d35a76c4301b59b513bf19b4de01fb244e028e Reviewed-by: Robert Griebl <robert.griebl@qt.io> (cherry picked from commit 1b818ba23087fc57a4392a26f72861c9364d0ba8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/manager-lib/inprocesssurfaceitem.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/manager-lib/inprocesssurfaceitem.cpp b/src/manager-lib/inprocesssurfaceitem.cpp
index 07bcb6ed..3704b2d2 100644
--- a/src/manager-lib/inprocesssurfaceitem.cpp
+++ b/src/manager-lib/inprocesssurfaceitem.cpp
@@ -138,6 +138,9 @@ bool InProcessSurfaceItem::visibleClientSide() const
QSGNode *InProcessSurfaceItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
{
+ if (m_color.alpha() == 0)
+ return oldNode; // no need to render fully transparent node
+
QSGSimpleRectNode *node = static_cast<QSGSimpleRectNode *>(oldNode);
if (!node) {
node = new QSGSimpleRectNode(clipRect(), m_color);