diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-10-27 11:42:00 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-10-30 08:39:39 +0000 |
commit | f64ef7ede82260b8c2740930c85e224229855da3 (patch) | |
tree | f0bede084659f13fc41d34cede2a6c4f0fdfe5e9 /src/quick/scenegraph/adaptations | |
parent | 742e869afe2dbba6aae6302d20ba9c82f3ed99c6 (diff) |
Mark pixmaps without alpha channel as opaque in the SW renderer
And help avoid that we draw the same pixel multiple times.
Change-Id: I56dccfeffe6865d0aaa252c84ae693380c3bbb5b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Diffstat (limited to 'src/quick/scenegraph/adaptations')
-rw-r--r-- | src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode_p.h | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode_p.h b/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode_p.h index f21667fdf7..5c95eb064a 100644 --- a/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode_p.h +++ b/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode_p.h @@ -124,8 +124,8 @@ public: QRectF rect() const; -private: const QPixmap &pixmap() const; +private: QRectF m_targetRect; QRectF m_innerTargetRect; diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp index e5b9430236..b8b0972113 100644 --- a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp +++ b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenode.cpp @@ -155,8 +155,7 @@ void QSGSoftwareRenderableNode::update() boundingRect = m_handle.simpleTextureNode->rect(); break; case QSGSoftwareRenderableNode::Image: - // There isn't a way to tell, so assume it's not - m_isOpaque = false; + m_isOpaque = !m_handle.imageNode->pixmap().hasAlphaChannel() && !m_transform.isRotating(); boundingRect = m_handle.imageNode->rect().toRect(); break; |