History

Merge branch 'master' of https://github.com/worklist/hifi into 20724

Thijs Wenker committed 11 years ago

Commit a58bd4f2 parents de98a17 4cb5e71140 files · +4893 −1152Browse files

Showing the changes to interface/src/Application.cpp (1 of 140 files). Show all

Unified · Split

interface/src/Application.cpp+31−24
@@ -100,7 +100,7 @@ · 99 unmodified lines
100100 #include "audio/AudioScope.h"
101101 #include "avatar/AvatarManager.h"
102102 #include "CrashHandler.h"
103−#include "devices/3DConnexionClient.h"
103+#include "input-plugins/SpacemouseManager.h"
104104 #include "devices/DdeFaceTracker.h"
105105 #include "devices/EyeTracker.h"
106106 #include "devices/Faceshift.h"
@@ -646,11 +646,14 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 539 unmodified lines
646646 _applicationStateDevice->addInputVariant(QString("ComfortMode"), controller::StateController::ReadLambda([]() -> float {
647647 return (float)Menu::getInstance()->isOptionChecked(MenuOption::ComfortMode);
648648 }));
649+ _applicationStateDevice->addInputVariant(QString("Grounded"), controller::StateController::ReadLambda([]() -> float {
650+ return (float)qApp->getMyAvatar()->getCharacterController()->onGround();
651+ }));
649652
650653 userInputMapper->registerDevice(_applicationStateDevice);
651654
652655 // Setup the keyboardMouseDevice and the user input mapper with the default bindings
653− userInputMapper->registerDevice(_keyboardMouseDevice);
656+ userInputMapper->registerDevice(_keyboardMouseDevice->getInputDevice());
654657
655658
656659 userInputMapper->loadDefaultMapping(userInputMapper->getStandardDeviceID());
@@ -726,9 +729,10 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 69 unmodified lines
726729 // Now that menu is initalized we can sync myAvatar with it's state.
727730 getMyAvatar()->updateMotionBehaviorFromMenu();
728731
732+// FIXME spacemouse code still needs cleanup
729733 #if 0
730734 // the 3Dconnexion device wants to be initiliazed after a window is displayed.
731− ConnexionClient::getInstance().init();
735+ SpacemouseManager::getInstance().init();
732736 #endif
733737
734738 auto& packetReceiver = nodeList->getPacketReceiver();
@@ -940,14 +944,12 @@ void Application::initializeGL() { · 205 unmodified lines
940944 qCDebug(interfaceapp) << "Created Display Window.";
941945
942946 // initialize glut for shape drawing; Qt apparently initializes it on OS X
943− #ifndef __APPLE__
944− static bool isInitialized = false;
945− if (isInitialized) {
947+ if (_isGLInitialized) {
946948 return;
947949 } else {
948− isInitialized = true;
950+ _isGLInitialized = true;
949951 }
950− #endif
952+
951953 // Where the gpuContext is initialized and where the TRUE Backend is created and assigned
952954 gpu::Context::init<gpu::GLBackend>();
953955 _gpuContext = std::make_shared<gpu::Context>();
@@ -1031,10 +1033,7 @@ void Application::initializeUi() { · 77 unmodified lines
10311033 foreach(auto inputPlugin, PluginManager::getInstance()->getInputPlugins()) {
10321034 QString name = inputPlugin->getName();
10331035 if (name == KeyboardMouseDevice::NAME) {
1034− auto kbm = static_cast<KeyboardMouseDevice*>(inputPlugin.data());
1035− // FIXME incredibly evil.... _keyboardMouseDevice is now owned by
1036− // both a QSharedPointer and a std::shared_ptr
1037− _keyboardMouseDevice = std::shared_ptr<KeyboardMouseDevice>(kbm);
1036+ _keyboardMouseDevice = std::dynamic_pointer_cast<KeyboardMouseDevice>(inputPlugin);
10381037 }
10391038 }
10401039 updateInputModes();
@@ -1059,7 +1058,9 @@ void Application::paintGL() { · 18 unmodified lines
10591058 _lastFramesPerSecondUpdate = now;
10601059 }
10611060
1062− idle(now);
1061+ if (_isGLInitialized) {
1062+ idle(now);
1063+ }
10631064
10641065 PROFILE_RANGE(__FUNCTION__);
10651066 PerformanceTimer perfTimer("paintGL");
@@ -1864,8 +1865,12 @@ void Application::focusOutEvent(QFocusEvent* event) { · 798 unmodified lines
18641865 inputPlugin->pluginFocusOutEvent();
18651866 }
18661867 }
1868+
1869+// FIXME spacemouse code still needs cleanup
18671870 #if 0
1868− ConnexionData::getInstance().focusOutEvent();
1871+ //SpacemouseDevice::getInstance().focusOutEvent();
1872+ //SpacemouseManager::getInstance().getDevice()->focusOutEvent();
1873+ SpacemouseManager::getInstance().ManagerFocusOutEvent();
18691874 #endif
18701875
18711876 // synthesize events for keys currently pressed, since we may not get their release events
@@ -2812,7 +2817,7 @@ void Application::update(float deltaTime) { · 940 unmodified lines
28122817 float timeFactor = EXPECTED_FRAME_RATE * deltaTime;
28132818 myAvatar->setDriveKeys(PITCH, -1.0f * userInputMapper->getActionState(controller::Action::PITCH) / timeFactor);
28142819 myAvatar->setDriveKeys(YAW, -1.0f * userInputMapper->getActionState(controller::Action::YAW) / timeFactor);
2815− myAvatar->setDriveKeys(STEP_YAW, -1.0f * userInputMapper->getActionState(controller::Action::STEP_YAW) / timeFactor);
2820+ myAvatar->setDriveKeys(STEP_YAW, -1.0f * userInputMapper->getActionState(controller::Action::STEP_YAW));
28162821 }
28172822 }
28182823 myAvatar->setDriveKeys(ZOOM, userInputMapper->getActionState(controller::Action::TRANSLATE_CAMERA_Z));
@@ -4663,7 +4668,7 @@ DisplayPlugin* Application::getActiveDisplayPlugin() { · 1844 unmodified lines
46634668 updateDisplayMode();
46644669 Q_ASSERT(_displayPlugin);
46654670 }
4666− return _displayPlugin.data();
4671+ return _displayPlugin.get();
46674672 }
46684673
46694674 const DisplayPlugin* Application::getActiveDisplayPlugin() const {
@@ -4703,10 +4708,10 @@ void Application::updateDisplayMode() { · 33 unmodified lines
47034708 bool first = true;
47044709 foreach(auto displayPlugin, displayPlugins) {
47054710 addDisplayPluginToMenu(displayPlugin, first);
4706− QObject::connect(displayPlugin.data(), &DisplayPlugin::requestRender, [this] {
4711+ QObject::connect(displayPlugin.get(), &DisplayPlugin::requestRender, [this] {
47074712 paintGL();
47084713 });
4709− QObject::connect(displayPlugin.data(), &DisplayPlugin::recommendedFramebufferSizeChanged, [this](const QSize & size) {
4714+ QObject::connect(displayPlugin.get(), &DisplayPlugin::recommendedFramebufferSizeChanged, [this](const QSize & size) {
47104715 resizeGL();
47114716 });
47124717
@@ -4832,12 +4837,14 @@ void Application::updateInputModes() { · 119 unmodified lines
48324837 foreach(auto inputPlugin, inputPlugins) {
48334838 QString name = inputPlugin->getName();
48344839 QAction* action = menu->getActionForOption(name);
4835− if (action->isChecked() && !_activeInputPlugins.contains(inputPlugin)) {
4836− _activeInputPlugins.append(inputPlugin);
4837− newInputPlugins.append(inputPlugin);
4838− } else if (!action->isChecked() && _activeInputPlugins.contains(inputPlugin)) {
4839− _activeInputPlugins.removeOne(inputPlugin);
4840− removedInputPlugins.append(inputPlugin);
4840+
4841+ auto it = std::find(std::begin(_activeInputPlugins), std::end(_activeInputPlugins), inputPlugin);
4842+ if (action->isChecked() && it == std::end(_activeInputPlugins)) {
4843+ _activeInputPlugins.push_back(inputPlugin);
4844+ newInputPlugins.push_back(inputPlugin);
4845+ } else if (!action->isChecked() && it != std::end(_activeInputPlugins)) {
4846+ _activeInputPlugins.erase(it);
4847+ removedInputPlugins.push_back(inputPlugin);
48414848 }
48424849 }
48434850