diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index babcd877c4..f553b4bbdf 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2954,8 +2954,6 @@ void Application::loadSettings() { Menu::getInstance()->loadSettings(); // If there is a preferred plugin, we probably messed it up with the menu settings, so fix it. auto pluginManager = PluginManager::getInstance(); - - auto plugins = pluginManager->getPreferredDisplayPlugins(); for (auto plugin : plugins) { auto menu = Menu::getInstance(); @@ -5192,7 +5190,6 @@ void Application::updateDisplayMode() { // FIXME probably excessive and useless context switching _offscreenContext->makeCurrent(); - qDebug() << "Application::updateDisplayMode()... line:" << __LINE__ << "about to call newDisplayPlugin->activate()"; bool active = newDisplayPlugin->activate(); if (!active) { diff --git a/libraries/display-plugins/src/display-plugins/Basic2DWindowOpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/Basic2DWindowOpenGLDisplayPlugin.cpp index 3bdb96bde3..f488a805c6 100644 --- a/libraries/display-plugins/src/display-plugins/Basic2DWindowOpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/Basic2DWindowOpenGLDisplayPlugin.cpp @@ -13,6 +13,8 @@ #include #include +#include + const QString Basic2DWindowOpenGLDisplayPlugin::NAME("Desktop"); static const QString FULLSCREEN = "Fullscreen"; diff --git a/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.cpp index 8ebbf4d74b..4fadbdb94b 100644 --- a/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.cpp @@ -10,6 +10,7 @@ #include "NullDisplayPlugin.h" #include +#include const QString NullDisplayPlugin::NAME("NullDisplayPlugin"); diff --git a/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.h index c8770393c0..dfa4232a86 100644 --- a/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/NullDisplayPlugin.h @@ -7,11 +7,9 @@ // #pragma once -#include #include "DisplayPlugin.h" class NullDisplayPlugin : public DisplayPlugin { - ACCESS_PLUGIN_CONTAINER_MIXIN public: virtual ~NullDisplayPlugin() final {} diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index 2128488718..4bca48aeb0 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h index 10362b8181..aa3699584a 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h @@ -21,14 +21,10 @@ #include #include -#include - #define THREADED_PRESENT 1 class OpenGLDisplayPlugin : public DisplayPlugin { - ACCESS_PLUGIN_CONTAINER_MIXIN - protected: using Mutex = std::mutex; using Lock = std::unique_lock; diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp index b7739a7fb6..b29348f646 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h index b87f68231c..e6ceb7e376 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.h @@ -13,8 +13,6 @@ #include "../OpenGLDisplayPlugin.h" -#include - class HmdDisplayPlugin : public OpenGLDisplayPlugin { using Parent = OpenGLDisplayPlugin; public: diff --git a/libraries/display-plugins/src/display-plugins/stereo/SideBySideStereoDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/stereo/SideBySideStereoDisplayPlugin.cpp index be095ecd39..5d9f812edf 100644 --- a/libraries/display-plugins/src/display-plugins/stereo/SideBySideStereoDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/stereo/SideBySideStereoDisplayPlugin.cpp @@ -9,6 +9,7 @@ #include "SideBySideStereoDisplayPlugin.h" #include #include +#include #include #include "../CompositorHelper.h" diff --git a/libraries/display-plugins/src/display-plugins/stereo/StereoDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/stereo/StereoDisplayPlugin.cpp index afb99e3174..cfdfb1fc21 100644 --- a/libraries/display-plugins/src/display-plugins/stereo/StereoDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/stereo/StereoDisplayPlugin.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include #include "../CompositorHelper.h" diff --git a/libraries/plugins/src/plugins/Plugin.cpp b/libraries/plugins/src/plugins/Plugin.cpp index 54f76b3482..7c30f252c9 100644 --- a/libraries/plugins/src/plugins/Plugin.cpp +++ b/libraries/plugins/src/plugins/Plugin.cpp @@ -9,6 +9,10 @@ QString Plugin::UNKNOWN_PLUGIN_ID("unknown"); +void Plugin::setContainer(PluginContainer* container) { + _container = container; +} + bool Plugin::isSupported() const { return true; } void Plugin::init() {} diff --git a/libraries/plugins/src/plugins/Plugin.h b/libraries/plugins/src/plugins/Plugin.h index cb03f67bd6..fb5bf0ba55 100644 --- a/libraries/plugins/src/plugins/Plugin.h +++ b/libraries/plugins/src/plugins/Plugin.h @@ -14,8 +14,6 @@ #include "Forward.h" -#include - class Plugin : public QObject { public: /// \return human-readable name @@ -30,11 +28,8 @@ public: virtual const QString& getID() const { assert(false); return UNKNOWN_PLUGIN_ID; } virtual bool isSupported() const; - - /// Some plugins may need access to the PluginContainer, if the individual plugin - /// needs access to this, they should override these methods and store their own - /// type safe version of the pointer to the container. - virtual void setContainer(void* container) { } + + void setContainer(PluginContainer* container); /// Called when plugin is initially loaded, typically at application start virtual void init(); @@ -70,5 +65,7 @@ public: protected: bool _active { false }; + PluginContainer* _container { nullptr }; static QString UNKNOWN_PLUGIN_ID; + }; diff --git a/libraries/plugins/src/plugins/PluginManager.cpp b/libraries/plugins/src/plugins/PluginManager.cpp index 2692de931f..d5c860200a 100644 --- a/libraries/plugins/src/plugins/PluginManager.cpp +++ b/libraries/plugins/src/plugins/PluginManager.cpp @@ -133,10 +133,8 @@ const DisplayPluginList& PluginManager::getDisplayPlugins() { } } for (auto plugin : displayPlugins) { + plugin->setContainer(_container); plugin->init(); - if (_container) { - plugin->setContainer(_container); - } } }); @@ -172,10 +170,8 @@ const InputPluginList& PluginManager::getInputPlugins() { } for (auto plugin : inputPlugins) { + plugin->setContainer(_container); plugin->init(); - if (_container) { - plugin->setContainer(_container); - } } }); return inputPlugins; diff --git a/libraries/plugins/src/plugins/PluginManager.h b/libraries/plugins/src/plugins/PluginManager.h index b0aa13d2d0..7903bdd724 100644 --- a/libraries/plugins/src/plugins/PluginManager.h +++ b/libraries/plugins/src/plugins/PluginManager.h @@ -26,7 +26,7 @@ public: void disableDisplays(const QStringList& displays); void disableInputs(const QStringList& inputs); void saveSettings(); - void setContainer(void* container) { _container = container; } + void setContainer(PluginContainer* container) { _container = container; } private: - void* _container { nullptr }; + PluginContainer* _container { nullptr }; }; diff --git a/libraries/ui-plugins/src/ui-plugins/PluginContainer.h b/libraries/ui-plugins/src/ui-plugins/PluginContainer.h index 57c3c62704..74ac834057 100644 --- a/libraries/ui-plugins/src/ui-plugins/PluginContainer.h +++ b/libraries/ui-plugins/src/ui-plugins/PluginContainer.h @@ -7,12 +7,10 @@ // #pragma once -#include #include #include #include -#include #include #include #include @@ -87,11 +85,3 @@ protected: QRect _savedGeometry { 10, 120, 800, 600 }; }; -/// Mixin this class to your class to get easy access to the PluginContainer -#define ACCESS_PLUGIN_CONTAINER_MIXIN \ -public: \ - virtual void setContainer(void* container) override { \ - _container = static_cast(container); \ - } \ -protected: \ - PluginContainer* _container { nullptr }; diff --git a/plugins/hifiSixense/src/SixenseManager.cpp b/plugins/hifiSixense/src/SixenseManager.cpp index 4faec959ea..566f879f69 100644 --- a/plugins/hifiSixense/src/SixenseManager.cpp +++ b/plugins/hifiSixense/src/SixenseManager.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include diff --git a/plugins/hifiSixense/src/SixenseManager.h b/plugins/hifiSixense/src/SixenseManager.h index c9e8f5d4ad..6aec9fd4ad 100644 --- a/plugins/hifiSixense/src/SixenseManager.h +++ b/plugins/hifiSixense/src/SixenseManager.h @@ -17,7 +17,6 @@ #include #include -#include #include struct _sixenseControllerData; @@ -25,7 +24,6 @@ using SixenseControllerData = _sixenseControllerData; // Handles interaction with the Sixense SDK (e.g., Razer Hydra). class SixenseManager : public InputPlugin { - ACCESS_PLUGIN_CONTAINER_MIXIN Q_OBJECT public: // Plugin functions diff --git a/plugins/oculusLegacy/src/OculusLegacyDisplayPlugin.cpp b/plugins/oculusLegacy/src/OculusLegacyDisplayPlugin.cpp index 3b2c9808ab..4aadb890d5 100644 --- a/plugins/oculusLegacy/src/OculusLegacyDisplayPlugin.cpp +++ b/plugins/oculusLegacy/src/OculusLegacyDisplayPlugin.cpp @@ -26,6 +26,7 @@ #include #include +#include #include "OculusHelpers.h" using namespace oglplus; diff --git a/plugins/openvr/src/OpenVrDisplayPlugin.cpp b/plugins/openvr/src/OpenVrDisplayPlugin.cpp index 552a62514d..c5d3be25b2 100644 --- a/plugins/openvr/src/OpenVrDisplayPlugin.cpp +++ b/plugins/openvr/src/OpenVrDisplayPlugin.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include "OpenVrHelpers.h" diff --git a/plugins/openvr/src/ViveControllerManager.cpp b/plugins/openvr/src/ViveControllerManager.cpp index 88c76a97b8..12813dae93 100644 --- a/plugins/openvr/src/ViveControllerManager.cpp +++ b/plugins/openvr/src/ViveControllerManager.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include diff --git a/plugins/openvr/src/ViveControllerManager.h b/plugins/openvr/src/ViveControllerManager.h index f3cd2b4a93..3a2ef1573f 100644 --- a/plugins/openvr/src/ViveControllerManager.h +++ b/plugins/openvr/src/ViveControllerManager.h @@ -23,14 +23,12 @@ #include #include #include -#include namespace vr { class IVRSystem; } -class ViveControllerManager : public InputPlugin { - ACCESS_PLUGIN_CONTAINER_MIXIN +class ViveControllerManager : public InputPlugin { Q_OBJECT public: // Plugin functions