From d1318ae99eb48247deea1878e144bf1474c3fcc9 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Fri, 3 Nov 2017 11:51:03 -0700 Subject: [PATCH 1/4] 8495 No mirror camera in HMD mode --- interface/src/Application.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b21588958e..bd31fc398e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4441,7 +4441,7 @@ void Application::cameraModeChanged() { void Application::cameraMenuChanged() { auto menu = Menu::getInstance(); if (menu->isOptionChecked(MenuOption::FullscreenMirror)) { - if (_myCamera.getMode() != CAMERA_MODE_MIRROR) { + if (!isHMDMode() && _myCamera.getMode() != CAMERA_MODE_MIRROR) { _myCamera.setMode(CAMERA_MODE_MIRROR); getMyAvatar()->reset(false, false, false); // to reset any active MyAvatar::FollowHelpers } @@ -7271,6 +7271,10 @@ void Application::updateDisplayMode() { menu->setIsOptionChecked(MenuOption::FirstPerson, true); cameraMenuChanged(); } + + // Remove the mirror camera option from menu if in HMD mode + auto mirrorAction = menu->getActionForOption(MenuOption::FullscreenMirror); + mirrorAction->setVisible(!isHmd); Q_ASSERT_X(_displayPlugin, "Application::updateDisplayMode", "could not find an activated display plugin"); } From 8596d78aa63432e069dac144ee9ceb66f8705b52 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Mon, 6 Nov 2017 08:03:07 -0700 Subject: [PATCH 2/4] Not posible to change to mirror mode using js --- interface/src/Application.cpp | 7 ++++++- libraries/shared/src/shared/Camera.cpp | 1 + libraries/shared/src/shared/Camera.h | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index bd31fc398e..7172a3eab7 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4423,7 +4423,12 @@ void Application::cameraModeChanged() { Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, true); break; case CAMERA_MODE_MIRROR: - Menu::getInstance()->setIsOptionChecked(MenuOption::FullscreenMirror, true); + if (isHMDMode()) { + _myCamera.setMode(_myCamera.getLastMode()); + qDebug() << "Mirror mode is not available"; + } else { + Menu::getInstance()->setIsOptionChecked(MenuOption::FullscreenMirror, true); + } break; case CAMERA_MODE_INDEPENDENT: Menu::getInstance()->setIsOptionChecked(MenuOption::IndependentMode, true); diff --git a/libraries/shared/src/shared/Camera.cpp b/libraries/shared/src/shared/Camera.cpp index ab841c4717..100124a416 100644 --- a/libraries/shared/src/shared/Camera.cpp +++ b/libraries/shared/src/shared/Camera.cpp @@ -85,6 +85,7 @@ void Camera::setOrientation(const glm::quat& orientation) { } void Camera::setMode(CameraMode mode) { + _lastMode = _mode; _mode = mode; emit modeUpdated(modeToString(mode)); } diff --git a/libraries/shared/src/shared/Camera.h b/libraries/shared/src/shared/Camera.h index 3ad08bd719..11d4cf4254 100644 --- a/libraries/shared/src/shared/Camera.h +++ b/libraries/shared/src/shared/Camera.h @@ -56,6 +56,7 @@ public: void update(); CameraMode getMode() const { return _mode; } + CameraMode getLastMode() const { return _lastMode; } void setMode(CameraMode m); void loadViewFrustum(ViewFrustum& frustum) const; @@ -123,6 +124,7 @@ private: void decompose(); CameraMode _mode{ CAMERA_MODE_THIRD_PERSON }; + CameraMode _lastMode{ _mode }; glm::mat4 _transform; glm::mat4 _projection; From 5d4a3b65e473a0ead7b06c1f48017a573b3eb794 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Thu, 9 Nov 2017 18:27:16 -0700 Subject: [PATCH 3/4] Allow script to change to mirror camera in HMD --- interface/src/Application.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7172a3eab7..bd31fc398e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4423,12 +4423,7 @@ void Application::cameraModeChanged() { Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, true); break; case CAMERA_MODE_MIRROR: - if (isHMDMode()) { - _myCamera.setMode(_myCamera.getLastMode()); - qDebug() << "Mirror mode is not available"; - } else { - Menu::getInstance()->setIsOptionChecked(MenuOption::FullscreenMirror, true); - } + Menu::getInstance()->setIsOptionChecked(MenuOption::FullscreenMirror, true); break; case CAMERA_MODE_INDEPENDENT: Menu::getInstance()->setIsOptionChecked(MenuOption::IndependentMode, true); From 7af1a5ca6999f74283f22f4700ddf5cd17ca7512 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Mon, 13 Nov 2017 06:10:17 -0700 Subject: [PATCH 4/4] clean up unused lastmode --- libraries/shared/src/shared/Camera.cpp | 1 - libraries/shared/src/shared/Camera.h | 2 -- 2 files changed, 3 deletions(-) diff --git a/libraries/shared/src/shared/Camera.cpp b/libraries/shared/src/shared/Camera.cpp index 100124a416..ab841c4717 100644 --- a/libraries/shared/src/shared/Camera.cpp +++ b/libraries/shared/src/shared/Camera.cpp @@ -85,7 +85,6 @@ void Camera::setOrientation(const glm::quat& orientation) { } void Camera::setMode(CameraMode mode) { - _lastMode = _mode; _mode = mode; emit modeUpdated(modeToString(mode)); } diff --git a/libraries/shared/src/shared/Camera.h b/libraries/shared/src/shared/Camera.h index 11d4cf4254..3ad08bd719 100644 --- a/libraries/shared/src/shared/Camera.h +++ b/libraries/shared/src/shared/Camera.h @@ -56,7 +56,6 @@ public: void update(); CameraMode getMode() const { return _mode; } - CameraMode getLastMode() const { return _lastMode; } void setMode(CameraMode m); void loadViewFrustum(ViewFrustum& frustum) const; @@ -124,7 +123,6 @@ private: void decompose(); CameraMode _mode{ CAMERA_MODE_THIRD_PERSON }; - CameraMode _lastMode{ _mode }; glm::mat4 _transform; glm::mat4 _projection;