summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3drenderer.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-11-26 11:43:11 +0100
committerPaul Lemire <paul.lemire@kdab.com>2020-11-26 14:50:06 +0100
commitaf56e7966d523714a3d64c0780fc266175431fd1 (patch)
treeeecdadb9f2623f9d68d9de59771d1a218a688fd7 /src/quick3d/imports/scene3d/scene3drenderer.cpp
parent1e62ec8397ddd7d435b358c91ac1ed74e64b6f4c (diff)
Scene3D: handle flipping based on the RHI backend in use
Qt3D handles flipping based on whether the RHI backend in use requires it or not. Scene3D would also flip the content (ignoring the fact that the content was already in the correct orientation). This resulted in cases where a Qt 3D scene rendered with Scene3D would be flipped while the same scene rendered on its own (with Qt3DWindow) would be correct. Change-Id: I9fc2a01f63713ed3dbafaf896dfd9457d7160653 Task-number: QTBUG-87842 Pick-to: 6.0 6.0.0 Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3drenderer.cpp')
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp
index a6ad43182..aa96f62a4 100644
--- a/src/quick3d/imports/scene3d/scene3drenderer.cpp
+++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp
@@ -198,6 +198,11 @@ Scene3DSGNode *Scene3DRenderer::sgNode() const
return m_node;
}
+bool Scene3DRenderer::isYUp() const
+{
+ return m_quickRenderer ? m_quickRenderer->isYUp() : true;
+}
+
// Executed in the QtQuick render thread (which may even be the gui/main with QQuickWidget / RenderControl).
void Scene3DRenderer::shutdown()
{
@@ -595,6 +600,11 @@ void Scene3DRenderer::RHIRenderer::shutdown(Scene3DRenderer *scene3DRenderer)
releaseRHIResources();
}
+bool Scene3DRenderer::RHIRenderer::isYUp() const
+{
+ return m_rhi->isYUpInNDC();
+}
+
void Scene3DRenderer::RHIRenderer::releaseRHIResources()
{
delete m_rhiRenderTarget;