diff options
author | Yoann Lopes <yoann.lopes@qt.io> | 2016-08-25 12:31:20 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2016-09-12 04:21:49 +0000 |
commit | c1d726fe19c83cf081042e55ace9d9d7b31c40e6 (patch) | |
tree | ca976d2c90d3e32cfd1ebc56c0c9623461291719 | |
parent | 5ebd768aa80c9668a106ea8502f2e6556e5d675d (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>
-rw-r--r-- | src/quick/scenegraph/util/qsgdefaultpainternode.cpp | 4 |
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); |