summaryrefslogtreecommitdiffstats
path: root/src/render/backend/transform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend/transform.cpp')
-rw-r--r--src/render/backend/transform.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/render/backend/transform.cpp b/src/render/backend/transform.cpp
index 8999acaed..629ef51b3 100644
--- a/src/render/backend/transform.cpp
+++ b/src/render/backend/transform.cpp
@@ -6,14 +6,16 @@
#include <Qt3DCore/private/qchangearbiter_p.h>
#include <Qt3DCore/qtransform.h>
#include <Qt3DCore/private/qtransform_p.h>
+#include <Qt3DRender/qcamera.h>
QT_BEGIN_NAMESPACE
-using namespace Qt3DCore;
namespace Qt3DRender {
namespace Render {
+using namespace Qt3DCore;
+
Transform::Transform()
: BackendNode(ReadWrite)
, m_rotation()
@@ -65,6 +67,13 @@ void Transform::syncFromFrontEnd(const QNode *frontEnd, bool firstTime)
m_translation = transform->translation();
if (dirty || firstTime) {
+ auto camera = qobject_cast<const Qt3DRender::QCamera *>(transform->parentNode());
+ if (camera) {
+ m_viewMatrix = Matrix4x4(camera->viewMatrix());
+ m_hasViewMatrix = true;
+ } else {
+ m_hasViewMatrix = false;
+ }
updateMatrix();
markDirty(AbstractRenderer::TransformDirty);
}