aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@jollamobile.com>2014-05-06 14:54:52 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-07 13:53:57 +0200
commitea164757cd709613c2aa2271a71fa32c9a987b1d (patch)
treebd9353ea693eb0e54c83115f06fdfd47856d623c /src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
parent2e24488fb16b67a387f58668a8cfe66b04081d40 (diff)
Use correct matrix for render nodes.
Change-Id: I8c137383fa32a64ba64ffb4ed48aa123d0ebf000 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp')
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index 254f32a77c..f525c83009 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -2470,9 +2470,14 @@ void Renderer::renderRenderNode(Batch *batch)
QSGNode *xform = e->renderNode->parent();
QMatrix4x4 matrix;
- while (xform != rootNode()) {
+ QSGNode *root = rootNode();
+ if (e->root) {
+ matrix = qsg_matrixForRoot(e->root);
+ root = e->root->sgNode;
+ }
+ while (xform != root) {
if (xform->type() == QSGNode::TransformNodeType) {
- matrix = qsg_matrixForRoot(e->root) * static_cast<QSGTransformNode *>(xform)->combinedMatrix();
+ matrix = matrix * static_cast<QSGTransformNode *>(xform)->combinedMatrix();
break;
}
xform = xform->parent();