diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2020-11-26 11:43:11 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-11-27 05:48:47 +0000 |
commit | 7b2b4eca3d836df9aa54ef1ca7b5ee1ba9304f13 (patch) | |
tree | a050b00230294ac5cabb27b1474ee1e2b8206806 /src/quick3d/imports/scene3d/scene3drenderer_p.h | |
parent | 69c38b45ad4ecb08ebdcbf83c5e4276cd02233b1 (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.h | 4 |
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(); |