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 | |
| 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 | − } | |
| 766 | + | |
| 779 | 767 | |
| 780 | 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 | 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 | 8769 | if (parser.isSet("display")) { |
| 8767 | 8770 | auto preferredDisplays = parser.value("display").split(',', Qt::SkipEmptyParts); |
| 8768 | 8771 | qInfo() << "Setting prefered display plugins:" << preferredDisplays; |