This happens because the PluginManager doesn't exist yet at the time when these options are handled. Fix this by moving PluginManager initialization to an earlier stage of the code.
Showing the changes to interface/src/Application.cpp (1 of 1 file). Show all
Unified · Split
| @@ -763,19 +763,7 @@ bool setupEssentials(int& argc, char** argv, const QCommandLineParser& parser, b · 762 unmodified lines | |||
| 763 | } | 763 | } |
| 764 | } | 764 | } |
| 765 | 765 | ||
| 766 | // Tell the plugin manager about our statically linked plugins | 766 | |
| 767 | DependencyManager::set<ScriptInitializers>(); | ||
| 768 | DependencyManager::set<PluginManager>(); | ||
| 769 | auto pluginManager = PluginManager::getInstance(); | ||
| 770 | pluginManager->setInputPluginProvider([] { return getInputPlugins(); }); | ||
| 771 | pluginManager->setDisplayPluginProvider([] { return getDisplayPlugins(); }); | ||
| 772 | pluginManager->setInputPluginSettingsPersister([](const InputPluginList& plugins) { saveInputPluginSettings(plugins); }); | ||
| 773 | if (auto steamClient = pluginManager->getSteamClientPlugin()) { | ||
| 774 | steamClient->init(); | ||
| 775 | } | ||
| 776 | if (auto oculusPlatform = pluginManager->getOculusPlatformPlugin()) { | ||
| 777 | oculusPlatform->init(); | ||
| 778 | } | ||
| 779 | 767 | ||
| 780 | PROFILE_SET_THREAD_NAME("Main Thread"); | 768 | PROFILE_SET_THREAD_NAME("Main Thread"); |
| 781 | 769 | ||
| @@ -8763,6 +8751,21 @@ void Application::sendLambdaEvent(const std::function<void()>& f) { · 7981 unmodified lines | |||
| 8763 | } | 8751 | } |
| 8764 | 8752 | ||
| 8765 | void Application::initPlugins(const QCommandLineParser& parser) { | 8753 | void Application::initPlugins(const QCommandLineParser& parser) { |
| 8754 | // Tell the plugin manager about our statically linked plugins | ||
| 8755 | DependencyManager::set<ScriptInitializers>(); | ||
| 8756 | DependencyManager::set<PluginManager>(); | ||
| 8757 | auto pluginManager = PluginManager::getInstance(); | ||
| 8758 | pluginManager->setInputPluginProvider([] { return getInputPlugins(); }); | ||
| 8759 | pluginManager->setDisplayPluginProvider([] { return getDisplayPlugins(); }); | ||
| 8760 | pluginManager->setInputPluginSettingsPersister([](const InputPluginList& plugins) { saveInputPluginSettings(plugins); }); | ||
| 8761 | if (auto steamClient = pluginManager->getSteamClientPlugin()) { | ||
| 8762 | steamClient->init(); | ||
| 8763 | } | ||
| 8764 | if (auto oculusPlatform = pluginManager->getOculusPlatformPlugin()) { | ||
| 8765 | oculusPlatform->init(); | ||
| 8766 | } | ||
| 8767 | |||
| 8768 | |||
| 8766 | if (parser.isSet("display")) { | 8769 | if (parser.isSet("display")) { |
| 8767 | auto preferredDisplays = parser.value("display").split(',', Qt::SkipEmptyParts); | 8770 | auto preferredDisplays = parser.value("display").split(',', Qt::SkipEmptyParts); |
| 8768 | qInfo() << "Setting prefered display plugins:" << preferredDisplays; | 8771 | qInfo() << "Setting prefered display plugins:" << preferredDisplays; |