diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-10-30 15:21:33 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-11-03 15:37:48 +0000 |
commit | e180ab18c1e5dabcbf5965325fb957bd745d4e97 (patch) | |
tree | fba042ef686077d9522376b715ad1987515bb224 /src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp | |
parent | e7b73cc5e2cd1564d7f2ee9de1340b0913b4ecdf (diff) |
Mark layers in the SW rasterizer as opaque if possible
If the content of a layer completely covers every pixel of
it, mark that layer as opaque so that we can avoid alpha
blending where possible.
Change-Id: Ia0be4e7a96ecddd31a26f353509de976bcc9e397
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Diffstat (limited to 'src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp')
-rw-r--r-- | src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp b/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp index 02cf8209d1..30088846a6 100644 --- a/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp +++ b/src/quick/scenegraph/adaptations/software/qsgabstractsoftwarerenderer.cpp @@ -193,6 +193,12 @@ QRegion QSGAbstractSoftwareRenderer::optimizeRenderList() } } + if (m_obscuredRegion.contains(m_background->rect().toAlignedRect())) { + m_isOpaque = true; + } else { + m_isOpaque = false; + } + // Empty dirtyRegion (for second pass) m_dirtyRegion = QRegion(); m_obscuredRegion = QRegion(); |