summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3drenderer_p.h
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-11-26 11:43:11 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-11-27 05:48:47 +0000
commit7b2b4eca3d836df9aa54ef1ca7b5ee1ba9304f13 (patch)
treea050b00230294ac5cabb27b1474ee1e2b8206806 /src/quick3d/imports/scene3d/scene3drenderer_p.h
parent69c38b45ad4ecb08ebdcbf83c5e4276cd02233b1 (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 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit af56e7966d523714a3d64c0780fc266175431fd1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3drenderer_p.h')
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer_p.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer_p.h b/src/quick3d/imports/scene3d/scene3drenderer_p.h
index 72e6d34ce..a279f2a63 100644
--- a/src/quick3d/imports/scene3d/scene3drenderer_p.h
+++ b/src/quick3d/imports/scene3d/scene3drenderer_p.h
@@ -101,6 +101,7 @@ public:
bool multisample() const { return m_multisample; }
QSize boundingSize() const { return m_boundingRectSize; }
+ bool isYUp() const;
void init(Qt3DCore::QAspectEngine *aspectEngine, QRenderAspect *renderAspect);
@@ -128,6 +129,7 @@ private:
virtual void beforeRendering(Scene3DRenderer *scene3DRenderer) = 0;
virtual void beforeRenderPassRecording(Scene3DRenderer *scene3DRenderer) = 0;
virtual void shutdown(Scene3DRenderer *sceneRenderer) = 0;
+ virtual bool isYUp() const = 0;
protected:
bool m_lastMultisample = false;
@@ -148,6 +150,7 @@ private:
void beforeRendering(Scene3DRenderer *scene3DRenderer) override;
void beforeRenderPassRecording(Scene3DRenderer *scene3DRenderer) override;
void shutdown(Scene3DRenderer *sceneRenderer) override;
+ bool isYUp() const override { return true; };
private:
QScopedPointer<QOpenGLFramebufferObject> m_multisampledFBO;
@@ -165,6 +168,7 @@ private:
void beforeRendering(Scene3DRenderer *scene3DRenderer) override;
void beforeRenderPassRecording(Scene3DRenderer *scene3DRenderer) override;
void shutdown(Scene3DRenderer *sceneRenderer) override;
+ bool isYUp() const override;
private:
void releaseRHIResources();