aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@qt.io>2016-08-25 12:31:20 +0200
committerJani Heikkinen <jani.heikkinen@qt.io>2016-09-12 04:21:49 +0000
commitc1d726fe19c83cf081042e55ace9d9d7b31c40e6 (patch)
treeca976d2c90d3e32cfd1ebc56c0c9623461291719 /src/quick
parent5ebd768aa80c9668a106ea8502f2e6556e5d675d (diff)
Correctly update the geometry of QSGDefaultPainterNodev5.6.2
When using a FBO, the source rect should be the painted part (m_textureSize) of the FBO. Also, the texture size is now correctly set when using an Image render target. Task-number: QTBUG-52054 Change-Id: If5d7a9c0b02f16f5d4be2cdf8c3c4cb15cb0583e Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/scenegraph/util/qsgdefaultpainternode.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/quick/scenegraph/util/qsgdefaultpainternode.cpp b/src/quick/scenegraph/util/qsgdefaultpainternode.cpp
index e3103341cd..7a92d61016 100644
--- a/src/quick/scenegraph/util/qsgdefaultpainternode.cpp
+++ b/src/quick/scenegraph/util/qsgdefaultpainternode.cpp
@@ -218,7 +218,7 @@ void QSGDefaultPainterNode::updateGeometry()
if (m_actualRenderTarget == QQuickPaintedItem::Image)
source = QRectF(0, 0, 1, 1);
else
- source = QRectF(0, 0, qreal(m_size.width()) / m_fboSize.width(), qreal(m_size.height()) / m_fboSize.height());
+ source = QRectF(0, 0, qreal(m_textureSize.width()) / m_fboSize.width(), qreal(m_textureSize.height()) / m_fboSize.height());
QRectF dest(0, 0, m_size.width(), m_size.height());
if (m_actualRenderTarget == QQuickPaintedItem::InvertedYFramebufferObject)
dest = QRectF(QPointF(0, m_size.height()), QPointF(m_size.width(), 0));
@@ -300,7 +300,7 @@ void QSGDefaultPainterNode::updateRenderTarget()
QSGPainterTexture *texture = new QSGPainterTexture;
if (m_actualRenderTarget == QQuickPaintedItem::Image) {
texture->setOwnsTexture(true);
- texture->setTextureSize(m_size);
+ texture->setTextureSize(m_textureSize);
} else {
texture->setTextureId(m_fbo->texture());
texture->setOwnsTexture(false);