summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-09-13 20:45:00 +0100
committerMike Krus <mike.krus@kdab.com>2020-09-14 14:42:40 +0100
commit71686e9a0f0753940d7da058a609064b950f4f34 (patch)
treea7ac4741ef04e4323b4a673d134c87661ef418f5
parent959f3a35a089f5380ce9a84408dd8ecd090c633f (diff)
Enable RHI Renderer by default
Also make sure Scene3D defaults to the RHI renderer since old OpenGL code path no longer works. Handle issue with GCC not supporting use of this in method declarations. Change-Id: I7d8f3ec3ec7405f42161506b21d8a9dee24cc962 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/plugins/renderers/configure.cmake1
-rw-r--r--src/plugins/renderers/rhi/renderer/rendercommand_p.h2
-rw-r--r--src/quick3d/imports/scene3d/scene3ditem.cpp7
3 files changed, 4 insertions, 6 deletions
diff --git a/src/plugins/renderers/configure.cmake b/src/plugins/renderers/configure.cmake
index 54c20d9ab..49d8a8d04 100644
--- a/src/plugins/renderers/configure.cmake
+++ b/src/plugins/renderers/configure.cmake
@@ -22,7 +22,6 @@ qt_feature("qt3d_rhi_renderer" PRIVATE
SECTION "Qt 3D Renderers"
LABEL "RHI Renderer"
PURPOSE "Build the RHI renderer"
- AUTODETECT OFF
)
qt_configure_add_summary_section(NAME "Qt3D Renderers")
diff --git a/src/plugins/renderers/rhi/renderer/rendercommand_p.h b/src/plugins/renderers/rhi/renderer/rendercommand_p.h
index a4f7332de..9e2585588 100644
--- a/src/plugins/renderers/rhi/renderer/rendercommand_p.h
+++ b/src/plugins/renderers/rhi/renderer/rendercommand_p.h
@@ -189,7 +189,7 @@ public:
}
template<typename F>
- auto visit(F&& f) const noexcept(noexcept(std::visit(f, (const variant&) *this)))
+ auto visit(F&& f) const
{
return std::visit(f, (const variant&) *this);
}
diff --git a/src/quick3d/imports/scene3d/scene3ditem.cpp b/src/quick3d/imports/scene3d/scene3ditem.cpp
index f086ab2ae..7d4b60bdd 100644
--- a/src/quick3d/imports/scene3d/scene3ditem.cpp
+++ b/src/quick3d/imports/scene3d/scene3ditem.cpp
@@ -204,6 +204,9 @@ Scene3DItem::Scene3DItem(QQuickItem *parent)
// we still won't get ignored by the QtQuick SG when in Underlay mode
setWidth(1);
setHeight(1);
+
+ if (qgetenv("QT3D_RENDERER").isEmpty())
+ qputenv("QT3D_RENDERER", "rhi"); // QtQuick requires RHI
}
Scene3DItem::~Scene3DItem()
@@ -820,10 +823,6 @@ QSGNode *Scene3DItem::updatePaintNode(QSGNode *node, QQuickItem::UpdatePaintNode
// If the render aspect wasn't created yet, do so now
if (!managerNode->isInitialized()) {
- // Requested API of OpenGLRhi implies OpenGL renderer
- if (windowApi != QSGRendererInterface::OpenGLRhi && qgetenv("QT3D_RENDERER").isEmpty())
- qputenv("QT3D_RENDERER", "rhi"); // else Qt3D still defaults to OpenGL
-
auto *rw = QQuickRenderControl::renderWindowFor(window());
auto renderAspectPriv = static_cast<QRenderAspectPrivate*>(QRenderAspectPrivate::get(renderAspect));
renderAspectPriv->m_screen = (rw ? rw->screen() : window()->screen());