summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-03-13 09:46:42 +0100
committerPaul Lemire <paul.lemire@kdab.com>2019-12-19 07:54:19 +0100
commit00013d253e9ffac7091422a605ff4e06a1607480 (patch)
treec4af9434c1aa1ee4133645157fea60e2eaddbe41
parentbba6f45889fe1b7503bf812bb2bf6456a730c3a5 (diff)
Use QT3D_RENDERER env var to load different renderer plugins
-rw-r--r--src/render/frontend/qrenderaspect.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp
index 196b5b333..6a2b91842 100644
--- a/src/render/frontend/qrenderaspect.cpp
+++ b/src/render/frontend/qrenderaspect.cpp
@@ -672,13 +672,19 @@ Render::AbstractRenderer *QRenderAspectPrivate::loadRendererPlugin()
// Note: for now we load the first renderer plugin that is successfully loaded
// In the future we might want to offer the user a way to hint at which renderer
// plugin would best be loaded
+
+ const QByteArray envTarget = qgetenv("QT3D_RENDERER");
+ const QString targetKey = !envTarget.isEmpty() ? QString::fromLatin1(envTarget) : QStringLiteral("opengl");
const QStringList keys = Render::QRendererPluginFactory::keys();
for (const QString &key : keys) {
+ if (key != targetKey)
+ continue;
Render::AbstractRenderer *renderer = Render::QRendererPluginFactory::create(key, m_renderType);
if (renderer)
return renderer;
}
- qFatal("Unable to load a renderer plugin");
+ const QByteArray targetKeyName = targetKey.toLatin1();
+ qFatal("Unable to find renderer plugin for %s", targetKeyName.constData());
return nullptr;
}