Merge pull request #705 from daleglass-overte/fix-plugin-crash

Fix crash when starting with --display, --disable-displays or --disable-inputs
This commit is contained in:
ksuprynowicz 2023-11-06 22:16:30 +01:00 committed by GitHub
commit d1cbfa8838
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -763,19 +763,7 @@ bool setupEssentials(int& argc, char** argv, const QCommandLineParser& parser, b
}
}
// Tell the plugin manager about our statically linked plugins
DependencyManager::set<ScriptInitializers>();
DependencyManager::set<PluginManager>();
auto pluginManager = PluginManager::getInstance();
pluginManager->setInputPluginProvider([] { return getInputPlugins(); });
pluginManager->setDisplayPluginProvider([] { return getDisplayPlugins(); });
pluginManager->setInputPluginSettingsPersister([](const InputPluginList& plugins) { saveInputPluginSettings(plugins); });
if (auto steamClient = pluginManager->getSteamClientPlugin()) {
steamClient->init();
}
if (auto oculusPlatform = pluginManager->getOculusPlatformPlugin()) {
oculusPlatform->init();
}
PROFILE_SET_THREAD_NAME("Main Thread");
@ -8763,6 +8751,21 @@ void Application::sendLambdaEvent(const std::function<void()>& f) {
}
void Application::initPlugins(const QCommandLineParser& parser) {
// Tell the plugin manager about our statically linked plugins
DependencyManager::set<ScriptInitializers>();
DependencyManager::set<PluginManager>();
auto pluginManager = PluginManager::getInstance();
pluginManager->setInputPluginProvider([] { return getInputPlugins(); });
pluginManager->setDisplayPluginProvider([] { return getDisplayPlugins(); });
pluginManager->setInputPluginSettingsPersister([](const InputPluginList& plugins) { saveInputPluginSettings(plugins); });
if (auto steamClient = pluginManager->getSteamClientPlugin()) {
steamClient->init();
}
if (auto oculusPlatform = pluginManager->getOculusPlatformPlugin()) {
oculusPlatform->init();
}
if (parser.isSet("display")) {
auto preferredDisplays = parser.value("display").split(',', Qt::SkipEmptyParts);
qInfo() << "Setting prefered display plugins:" << preferredDisplays;