History

Merge branch 'loginInitiative2' of https://github.com/wayne-chen/hifi into loginInitiative2

Wayne Chen committed 7 years ago

Commit 28203282 parents 4f1361c 1419ec989 files · +898 −365Browse files

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

Unified · Split

interface/src/Application.cpp+56−19
@@ -371,6 +371,8 @@ static const QString INFO_HELP_PATH = "html/tabletHelp.html"; · 370 unmodified lines
371371
372372 static const unsigned int THROTTLED_SIM_FRAMERATE = 15;
373373 static const int THROTTLED_SIM_FRAME_PERIOD_MS = MSECS_PER_SECOND / THROTTLED_SIM_FRAMERATE;
374+static const int ENTITY_SERVER_ADDED_TIMEOUT = 5000;
375+static const int ENTITY_SERVER_CONNECTION_TIMEOUT = 5000;
374376
375377 static const uint32_t INVALID_FRAME = UINT32_MAX;
376378
@@ -1234,6 +1236,18 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo · 857 unmodified lines
12341236 getOverlays().deleteOverlay(getTabletScreenID());
12351237 getOverlays().deleteOverlay(getTabletHomeButtonID());
12361238 getOverlays().deleteOverlay(getTabletFrameID());
1239+ _failedToConnectToEntityServer = false;
1240+ });
1241+
1242+ _entityServerConnectionTimer.setSingleShot(true);
1243+ connect(&_entityServerConnectionTimer, &QTimer::timeout, this, &Application::setFailedToConnectToEntityServer);
1244+
1245+ connect(&domainHandler, &DomainHandler::connectedToDomain, this, [this]() {
1246+ if (!isServerlessMode()) {
1247+ _entityServerConnectionTimer.setInterval(ENTITY_SERVER_ADDED_TIMEOUT);
1248+ _entityServerConnectionTimer.start();
1249+ _failedToConnectToEntityServer = false;
1250+ }
12371251 });
12381252 connect(&domainHandler, &DomainHandler::domainConnectionRefused, this, &Application::domainConnectionRefused);
12391253
@@ -1315,7 +1329,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo · 75 unmodified lines
13151329 // Desktop mode.
13161330 getOverlays().deleteOverlay(_loginDialogOverlayID);
13171331 _loginDialogOverlayID = OverlayID();
1318− _loginPointerManager.tearDown();
1332+ _loginStateManager.tearDown();
13191333 dialogsManager->showLoginDialog();
13201334 }
13211335 }
@@ -3394,26 +3408,37 @@ void Application::showHelp() { · 2072 unmodified lines
33943408 static const QString HAND_CONTROLLER_NAME_OCULUS_TOUCH = "oculus";
33953409 static const QString HAND_CONTROLLER_NAME_WINDOWS_MR = "windowsMR";
33963410
3411+ static const QString VIVE_PLUGIN_NAME = "HTC Vive";
3412+ static const QString OCULUS_RIFT_PLUGIN_NAME = "Oculus Rift";
3413+ static const QString WINDOWS_MR_PLUGIN_NAME = "WindowsMR";
3414+
33973415 static const QString TAB_KEYBOARD_MOUSE = "kbm";
33983416 static const QString TAB_GAMEPAD = "gamepad";
33993417 static const QString TAB_HAND_CONTROLLERS = "handControllers";
34003418
3401− QString handControllerName = HAND_CONTROLLER_NAME_VIVE;
3419+ QString handControllerName;
34023420 QString defaultTab = TAB_KEYBOARD_MOUSE;
34033421
3404− if (PluginUtils::isViveControllerAvailable()) {
3405− defaultTab = TAB_HAND_CONTROLLERS;
3406− handControllerName = HAND_CONTROLLER_NAME_VIVE;
3407− } else if (PluginUtils::isOculusTouchControllerAvailable()) {
3408− defaultTab = TAB_HAND_CONTROLLERS;
3409− handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH;
3410− } else if (qApp->getActiveDisplayPlugin()->getName() == "WindowMS") {
3422+ if (PluginUtils::isHMDAvailable(WINDOWS_MR_PLUGIN_NAME)) {
34113423 defaultTab = TAB_HAND_CONTROLLERS;
34123424 handControllerName = HAND_CONTROLLER_NAME_WINDOWS_MR;
3425+ } else if (PluginUtils::isHMDAvailable(VIVE_PLUGIN_NAME)) {
3426+ defaultTab = TAB_HAND_CONTROLLERS;
3427+ handControllerName = HAND_CONTROLLER_NAME_VIVE;
3428+ } else if (PluginUtils::isHMDAvailable(OCULUS_RIFT_PLUGIN_NAME)) {
3429+ if (PluginUtils::isOculusTouchControllerAvailable()) {
3430+ defaultTab = TAB_HAND_CONTROLLERS;
3431+ handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH;
3432+ } else if (PluginUtils::isXboxControllerAvailable()) {
3433+ defaultTab = TAB_GAMEPAD;
3434+ } else {
3435+ defaultTab = TAB_KEYBOARD_MOUSE;
3436+ }
34133437 } else if (PluginUtils::isXboxControllerAvailable()) {
34143438 defaultTab = TAB_GAMEPAD;
3439+ } else {
3440+ defaultTab = TAB_KEYBOARD_MOUSE;
34153441 }
3416− // TODO need some way to detect windowsMR to load controls reference default tab in Help > Controls Reference menu.
34173442
34183443 QUrlQuery queryString;
34193444 queryString.addQueryItem("handControllerName", handControllerName);
@@ -5844,6 +5869,7 @@ void Application::update(float deltaTime) { · 2424 unmodified lines
58445869 quint64 now = usecTimestampNow();
58455870 if (isServerlessMode() || _octreeProcessor.isLoadSequenceComplete()) {
58465871 bool enableInterstitial = DependencyManager::get<NodeList>()->getDomainHandler().getInterstitialModeEnabled();
5872+
58475873 if (gpuTextureMemSizeStable() || !enableInterstitial) {
58485874 // we've received a new full-scene octree stats packet, or it's been long enough to try again anyway
58495875 _lastPhysicsCheckTime = now;
@@ -6225,7 +6251,7 @@ void Application::update(float deltaTime) { · 375 unmodified lines
62256251 _overlays.update(deltaTime);
62266252 }
62276253 if (!_loginDialogOverlayID.isNull()) {
6228− _loginPointerManager.update();
6254+ _loginStateManager.update();
62296255 }
62306256
62316257 if (!_loginDialogOverlayID.isNull()) {
@@ -6242,8 +6268,8 @@ void Application::update(float deltaTime) { · 10 unmodified lines
62426268 //auto lookAtQuat = glm::inverse(glm::quat_cast(glm::lookAt(positionVec, avatarHeadPosition, avatarHeadOrientation * Vectors::UNIT_Y)));
62436269 auto pointAngle = (glm::acos(glm::dot(glm::normalize(overlayToHeadVec), glm::normalize(headLookVec))) * 180.0f / PI);
62446270 auto upVec = myAvatar->getWorldOrientation() * Vectors::UNIT_Y;
6245− auto offset = headLookVec * 1.0f;
6246− auto newOverlayPositionVec = (cameraPositionVec + offset);
6271+ auto offset = headLookVec * 0.7f;
6272+ auto newOverlayPositionVec = (cameraPositionVec + offset) + (upVec * -0.1f);
62476273 auto newOverlayOrientation = glm::inverse(glm::quat_cast(glm::lookAt(newOverlayPositionVec, cameraPositionVec, upVec))) * Quaternions::Y_180;
62486274
62496275 if (pointAngle > 30.0f) {
@@ -6702,7 +6728,8 @@ void Application::keyboardRaisedChanged(bool raised) { · 452 unmodified lines
67026728 if (raised && !_loginDialogOverlayID.isNull()) {
67036729 QVariantMap properties {
67046730 { "parentID", _loginDialogOverlayID },
6705− { "localPosition", vec3toVariant(glm::vec3(-0.3f, -0.3f, 0.2f)) }
6731+ { "localPosition", vec3toVariant(glm::vec3(-0.3f, -0.3f, 0.2f)) },
6732+ { "localOrientation", quatToVariant(glm::quat(0.0f, 0.0, 1.00f, 0.0f)) }
67066733 };
67076734 getOverlays().editOverlay(keyboard->getAnchorID(), properties);
67086735 }
@@ -6815,7 +6842,13 @@ void Application::resettingDomain() { · 106 unmodified lines
68156842 }
68166843
68176844 void Application::nodeAdded(SharedNodePointer node) const {
6818− // nothing to do here
6845+ if (node->getType() == NodeType::EntityServer) {
6846+ if (!_failedToConnectToEntityServer) {
6847+ _entityServerConnectionTimer.stop();
6848+ _entityServerConnectionTimer.setInterval(ENTITY_SERVER_CONNECTION_TIMEOUT);
6849+ _entityServerConnectionTimer.start();
6850+ }
6851+ }
68196852 }
68206853
68216854 void Application::nodeActivated(SharedNodePointer node) {
@@ -6843,6 +6876,10 @@ void Application::nodeActivated(SharedNodePointer node) { · 21 unmodified lines
68436876 if (node->getType() == NodeType::EntityServer) {
68446877 _queryExpiry = SteadyClock::now();
68456878 _octreeQuery.incrementConnectionID();
6879+
6880+ if (!_failedToConnectToEntityServer) {
6881+ _entityServerConnectionTimer.stop();
6882+ }
68466883 }
68476884
68486885 if (node->getType() == NodeType::AudioMixer && !isInterstitialMode()) {
@@ -8614,7 +8651,7 @@ void Application::createLoginDialogOverlay() { · 1765 unmodified lines
86148651 auto headLookVec = (cameraOrientation * Vectors::FRONT);
86158652 // DEFAULT_DPI / tablet scale percentage
86168653 float overlayDpi = 31.0f / (75.0f / 100.0f);
8617− auto offset = headLookVec * 1.0f;
8654+ auto offset = headLookVec * 0.7f;
86188655 auto overlayPosition = (cameraPosition + offset) + (upVec * -0.1f);
86198656
86208657 const glm::vec2 LOGIN_OVERLAY_DIMENSIONS{ 0.5f, 0.5f };
@@ -8633,8 +8670,8 @@ void Application::createLoginDialogOverlay() { · 12 unmodified lines
86338670 };
86348671
86358672 _loginDialogOverlayID = getOverlays().addOverlay("web3d", overlayProperties);
8636− if (!_loginPointerManager.isSetUp()) {
8637− _loginPointerManager.setUp();
8673+ if (!_loginStateManager.isSetUp()) {
8674+ _loginStateManager.setUp();
86388675 }
86398676 }
86408677
@@ -8651,7 +8688,7 @@ void Application::onDismissedLoginDialog() { · 10 unmodified lines
86518688 qDebug() << "Deleting overlay";
86528689 getOverlays().deleteOverlay(_loginDialogOverlayID);
86538690 _loginDialogOverlayID = OverlayID();
8654− _loginPointerManager.tearDown();
8691+ _loginStateManager.tearDown();
86558692 }
86568693 resumeAfterLoginDialogActionTaken();
86578694 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t