diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-05-06 14:54:52 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-07 13:53:57 +0200 |
commit | ea164757cd709613c2aa2271a71fa32c9a987b1d (patch) | |
tree | bd9353ea693eb0e54c83115f06fdfd47856d623c /src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | |
parent | 2e24488fb16b67a387f58668a8cfe66b04081d40 (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.cpp | 9 |
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(); |