Working on plugin active concept

This commit is contained in:
Brad Davis 2015-10-13 10:01:01 -07:00
parent 8a0540234c
commit 7f8f5f66c7
9 changed files with 22 additions and 15 deletions

View file

@ -27,7 +27,4 @@ void NullDisplayPlugin::preRender() {}
void NullDisplayPlugin::preDisplay() {} void NullDisplayPlugin::preDisplay() {}
void NullDisplayPlugin::display(GLuint sceneTexture, const glm::uvec2& sceneSize) {} void NullDisplayPlugin::display(GLuint sceneTexture, const glm::uvec2& sceneSize) {}
void NullDisplayPlugin::finishFrame() {} void NullDisplayPlugin::finishFrame() {}
void NullDisplayPlugin::activate() {}
void NullDisplayPlugin::deactivate() {}
void NullDisplayPlugin::stop() {} void NullDisplayPlugin::stop() {}

View file

@ -15,8 +15,6 @@ public:
virtual ~NullDisplayPlugin() final {} virtual ~NullDisplayPlugin() final {}
virtual const QString & getName() const override; virtual const QString & getName() const override;
void activate() override;
void deactivate() override;
void stop() override; void stop() override;
virtual glm::uvec2 getRecommendedRenderSize() const override; virtual glm::uvec2 getRecommendedRenderSize() const override;

View file

@ -57,12 +57,12 @@ void OpenGLDisplayPlugin::customizeContext() {
} }
void OpenGLDisplayPlugin::activate() { void OpenGLDisplayPlugin::activate() {
_active = true; DisplayPlugin::activate();
_timer.start(1); _timer.start(1);
} }
void OpenGLDisplayPlugin::stop() { void OpenGLDisplayPlugin::stop() {
_active = false; DisplayPlugin::activate();
_timer.stop(); _timer.stop();
} }

View file

@ -44,7 +44,6 @@ protected:
mutable QTimer _timer; mutable QTimer _timer;
ProgramPtr _program; ProgramPtr _program;
ShapeWrapperPtr _plane; ShapeWrapperPtr _plane;
bool _active{ false };
bool _vsyncSupported{ false }; bool _vsyncSupported{ false };
}; };

View file

@ -13,6 +13,9 @@
#define hifi_KeyboardMouseDevice_h #define hifi_KeyboardMouseDevice_h
#include <chrono> #include <chrono>
#include <QtCore/QPoint>
#include "InputDevice.h" #include "InputDevice.h"
#include "InputPlugin.h" #include "InputPlugin.h"
@ -65,9 +68,6 @@ public:
virtual bool isJointController() const override { return false; } virtual bool isJointController() const override { return false; }
const QString& getName() const override { return NAME; } const QString& getName() const override { return NAME; }
virtual void activate() override {};
virtual void deactivate() override {};
virtual void pluginFocusOutEvent() override { focusOutEvent(); } virtual void pluginFocusOutEvent() override { focusOutEvent(); }
virtual void pluginUpdate(float deltaTime, bool jointsCaptured) override { update(deltaTime, jointsCaptured); } virtual void pluginUpdate(float deltaTime, bool jointsCaptured) override { update(deltaTime, jointsCaptured); }

View file

@ -34,8 +34,6 @@ public:
virtual void init() override; virtual void init() override;
virtual void deinit() override; virtual void deinit() override;
virtual void activate() override {};
virtual void deactivate() override {};
virtual void pluginFocusOutEvent() override; virtual void pluginFocusOutEvent() override;
virtual void pluginUpdate(float deltaTime, bool jointsCaptured) override; virtual void pluginUpdate(float deltaTime, bool jointsCaptured) override;

View file

@ -85,6 +85,7 @@ bool SixenseManager::isSupported() const {
} }
void SixenseManager::activate() { void SixenseManager::activate() {
InputPlugin::activate();
#ifdef HAVE_SIXENSE #ifdef HAVE_SIXENSE
_calibrationState = CALIBRATION_STATE_IDLE; _calibrationState = CALIBRATION_STATE_IDLE;
_avatarPosition = DEFAULT_AVATAR_POSITION; _avatarPosition = DEFAULT_AVATAR_POSITION;
@ -125,6 +126,7 @@ void SixenseManager::activate() {
} }
void SixenseManager::deactivate() { void SixenseManager::deactivate() {
InputPlugin::deactivate();
#ifdef HAVE_SIXENSE #ifdef HAVE_SIXENSE
CONTAINER->removeMenuItem(MENU_NAME, TOGGLE_SMOOTH); CONTAINER->removeMenuItem(MENU_NAME, TOGGLE_SMOOTH);
CONTAINER->removeMenu(MENU_PATH); CONTAINER->removeMenu(MENU_PATH);

View file

@ -79,6 +79,7 @@ bool ViveControllerManager::isSupported() const {
} }
void ViveControllerManager::activate() { void ViveControllerManager::activate() {
InputPlugin::activate();
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
CONTAINER->addMenu(MENU_PATH); CONTAINER->addMenu(MENU_PATH);
CONTAINER->addMenuItem(MENU_PATH, RENDER_CONTROLLERS, CONTAINER->addMenuItem(MENU_PATH, RENDER_CONTROLLERS,
@ -143,6 +144,8 @@ void ViveControllerManager::activate() {
} }
void ViveControllerManager::deactivate() { void ViveControllerManager::deactivate() {
InputPlugin::deactivate();
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
CONTAINER->removeMenuItem(MENU_NAME, RENDER_CONTROLLERS); CONTAINER->removeMenuItem(MENU_NAME, RENDER_CONTROLLERS);
CONTAINER->removeMenu(MENU_PATH); CONTAINER->removeMenu(MENU_PATH);

View file

@ -33,9 +33,18 @@ public:
virtual void deinit(); virtual void deinit();
/// Called when a plugin is being activated for use. May be called multiple times. /// Called when a plugin is being activated for use. May be called multiple times.
virtual void activate() = 0; virtual void activate() {
_active = true;
}
/// Called when a plugin is no longer being used. May be called multiple times. /// Called when a plugin is no longer being used. May be called multiple times.
virtual void deactivate() = 0; virtual void deactivate() {
_active = false;
}
virtual bool isActive() {
return _active;
}
/** /**
* Called by the application during it's idle phase. If the plugin needs to do * Called by the application during it's idle phase. If the plugin needs to do
@ -48,6 +57,7 @@ public:
virtual void loadSettings() {} virtual void loadSettings() {}
protected: protected:
bool _active{ false };
static PluginContainer* CONTAINER; static PluginContainer* CONTAINER;
static QString UNKNOWN_PLUGIN_ID; static QString UNKNOWN_PLUGIN_ID;