From 387f0a3f10e462f87009fa4d81ceec4e6bd5290a Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Fri, 4 Oct 2019 15:28:35 -0700 Subject: [PATCH 01/13] add isInput* and isNotInput vars for use in json, and edit json to use them --- .../resources/avatar/avatar-animation.json | 110 +++++++++--------- interface/src/avatar/MySkeletonModel.cpp | 4 + libraries/animation/src/Rig.cpp | 42 +++++++ libraries/animation/src/Rig.h | 2 + 4 files changed, 103 insertions(+), 55 deletions(-) diff --git a/interface/resources/avatar/avatar-animation.json b/interface/resources/avatar/avatar-animation.json index 2b8b3eb9b3..1c3a603eb5 100644 --- a/interface/resources/avatar/avatar-animation.json +++ b/interface/resources/avatar/avatar-animation.json @@ -5244,23 +5244,23 @@ "transitions": [ { "state": "idle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5313,19 +5313,19 @@ "transitions": [ { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5380,19 +5380,19 @@ }, { "state": "idle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5469,19 +5469,19 @@ }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "strafeRightHmd", @@ -5533,19 +5533,19 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5597,19 +5597,19 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5661,19 +5661,19 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5725,19 +5725,19 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "turnRight", @@ -5794,19 +5794,19 @@ }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnLeft", @@ -5859,19 +5859,19 @@ }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5919,15 +5919,15 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "strafeLeftHmd", @@ -5935,11 +5935,11 @@ }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -5983,15 +5983,15 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotMoving" + "var": "isNotInput" }, { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "strafeRightHmd", @@ -5999,11 +5999,11 @@ }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", @@ -6128,19 +6128,19 @@ "transitions": [ { "state": "WALKFWD", - "var": "isMovingForward" + "var": "isInputForward" }, { "state": "WALKBWD", - "var": "isMovingBackward" + "var": "isInputBackward" }, { "state": "STRAFERIGHT", - "var": "isMovingRight" + "var": "isInputRight" }, { "state": "STRAFELEFT", - "var": "isMovingLeft" + "var": "isInputLeft" }, { "state": "turnRight", diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index 38065c8095..8d92767321 100755 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -315,6 +315,10 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { const float TALKING_TIME_THRESHOLD = 0.75f; params.isTalking = head->getTimeWithoutTalking() <= TALKING_TIME_THRESHOLD; + //pass X and Z input key floats (-1 to 1) to rig + params.inputX = myAvatar->getDriveKey(MyAvatar::TRANSLATE_X); + params.inputZ = myAvatar->getDriveKey(MyAvatar::TRANSLATE_Z); + myAvatar->updateRigControllerParameters(params); _rig.updateFromControllerParameters(params, deltaTime); diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index d63c2d6a9b..88b42285cd 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2160,6 +2160,48 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo } } + //TODO: how to handle multiple inputs? Is there a trick to prioritize fwd/bwd with order of operations? + if (params.inputX) { + if (params.inputX > 0.0f) { + // left + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", true); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } else { + // right + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", true); + _animVars.set("isNotInput", false); + } + } else if (params.inputZ) { + if (params.inputZ > 0.0f) { + // forward + _animVars.set("isInputForward", true); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } else { + // backward + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", true); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } + } else if (params.inputX == 0.0f && params.inputZ == 0.0f) { + // no WASD input + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", true); + } + _headEnabled = params.primaryControllerFlags[PrimaryControllerType_Head] & (uint8_t)ControllerFlags::Enabled; bool leftHandEnabled = params.primaryControllerFlags[PrimaryControllerType_LeftHand] & (uint8_t)ControllerFlags::Enabled; bool rightHandEnabled = params.primaryControllerFlags[PrimaryControllerType_RightHand] & (uint8_t)ControllerFlags::Enabled; diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index 98431e1dca..8f5eddac00 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -88,6 +88,8 @@ public: AnimPose secondaryControllerPoses[NumSecondaryControllerTypes]; // rig space uint8_t secondaryControllerFlags[NumSecondaryControllerTypes]; bool isTalking; + float inputX; + float inputZ; bool reactionEnabledFlags[NUM_AVATAR_BEGIN_END_REACTIONS]; bool reactionTriggers[NUM_AVATAR_TRIGGER_REACTIONS]; HFMJointShapeInfo hipsShapeInfo; From bab1a902a56522cb5edbb7a4f199fbe411f664d2 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 7 Oct 2019 15:44:57 -0700 Subject: [PATCH 02/13] Add serverless content back to launcher builds --- tools/ci-scripts/postbuild.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tools/ci-scripts/postbuild.py b/tools/ci-scripts/postbuild.py index b93ed5a664..9cab709c54 100644 --- a/tools/ci-scripts/postbuild.py +++ b/tools/ci-scripts/postbuild.py @@ -17,14 +17,12 @@ WIPE_PATHS = [] if sys.platform == "win32": WIPE_PATHS = [ - 'jsdoc', - 'resources/serverless' + 'jsdoc' ] elif sys.platform == "darwin": INTERFACE_BUILD_PATH = os.path.join(INTERFACE_BUILD_PATH, "Interface.app", "Contents", "Resources") WIPE_PATHS = [ - 'jsdoc', - 'serverless' + 'jsdoc' ] @@ -81,9 +79,6 @@ def fixupMacZip(filename): # ignore the nitpick app if newFilename.startswith('nitpick.app'): continue - # ignore the serverless content - if newFilename.startswith('interface.app/Contents/Resources/serverless'): - continue # if we made it here, include the file in the output buffer = inzip.read(entry.filename) entry.filename = newFilename From 37aee77c323a0013cf28fbb8126725b5ea558fe5 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 8 Oct 2019 12:26:29 -0700 Subject: [PATCH 03/13] Fix oculus calibration screen crash if touch not on --- plugins/oculus/src/OculusControllerManager.cpp | 6 +++--- plugins/oculus/src/OculusControllerManager.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/oculus/src/OculusControllerManager.cpp b/plugins/oculus/src/OculusControllerManager.cpp index 14830f3f04..c1431fa4b2 100644 --- a/plugins/oculus/src/OculusControllerManager.cpp +++ b/plugins/oculus/src/OculusControllerManager.cpp @@ -50,13 +50,13 @@ QString OculusControllerManager::configurationLayout() { void OculusControllerManager::setConfigurationSettings(const QJsonObject configurationSettings) { if (configurationSettings.contains("trackControllersInOculusHome")) { - _touch->_trackControllersInOculusHome.set(configurationSettings["trackControllersInOculusHome"].toBool()); + _trackControllersInOculusHome.set(configurationSettings["trackControllersInOculusHome"].toBool()); } } QJsonObject OculusControllerManager::configurationSettings() { QJsonObject configurationSettings; - configurationSettings["trackControllersInOculusHome"] = _touch->_trackControllersInOculusHome.get(); + configurationSettings["trackControllersInOculusHome"] = _trackControllersInOculusHome.get(); return configurationSettings; } @@ -232,7 +232,7 @@ void OculusControllerManager::TouchDevice::update(float deltaTime, quint64 currentTime = usecTimestampNow(); static const auto REQUIRED_HAND_STATUS = ovrStatus_OrientationTracked | ovrStatus_PositionTracked; bool hasInputFocus = ovr::hasInputFocus(); - bool trackControllersInOculusHome = _trackControllersInOculusHome.get(); + bool trackControllersInOculusHome = _parent._trackControllersInOculusHome.get(); auto tracking = ovr::getTrackingState(); // ovr_GetTrackingState(_parent._session, 0, false); ovr::for_each_hand([&](ovrHandType hand) { ++numTrackedControllers; diff --git a/plugins/oculus/src/OculusControllerManager.h b/plugins/oculus/src/OculusControllerManager.h index ea32eace61..7d1d176a56 100644 --- a/plugins/oculus/src/OculusControllerManager.h +++ b/plugins/oculus/src/OculusControllerManager.h @@ -98,7 +98,6 @@ private: float _leftHapticStrength { 0.0f }; float _rightHapticDuration { 0.0f }; float _rightHapticStrength { 0.0f }; - Setting::Handle _trackControllersInOculusHome { "trackControllersInOculusHome", false }; mutable std::recursive_mutex _lock; std::map _lostTracking; std::map _regainTrackingDeadline; @@ -109,6 +108,7 @@ private: void checkForConnectedDevices(); + Setting::Handle _trackControllersInOculusHome { "trackControllersInOculusHome", false }; ovrInputState _remoteInputState {}; ovrInputState _touchInputState {}; RemoteDevice::Pointer _remote; From 960cab9994e58599f0ca81232f8e9d8ca2370f7c Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 8 Oct 2019 15:39:32 -0700 Subject: [PATCH 04/13] Qt 5.13 warnings & fixes --- .../src/AssignmentClientMonitor.cpp | 2 +- interface/src/Application.cpp | 12 +++-- interface/src/Application.h | 6 --- interface/src/main.cpp | 1 + .../src/display-plugins/CompositorHelper.cpp | 46 +++++++++++++++---- .../display-plugins/OpenGLDisplayPlugin.cpp | 2 +- .../display-plugins/hmd/HmdDisplayPlugin.cpp | 2 +- .../entities/src/EntityScriptingInterface.cpp | 4 +- libraries/fbx/src/GLTFSerializer.cpp | 6 +-- libraries/image/src/image/Image.cpp | 2 +- libraries/networking/src/HifiSockAddr.cpp | 7 +++ libraries/networking/src/HifiSockAddr.h | 7 +-- libraries/networking/src/LimitedNodeList.cpp | 4 ++ libraries/networking/src/udt/Socket.cpp | 8 ++++ libraries/render-utils/src/text/Font.cpp | 2 +- libraries/shared/src/MovingPercentile.cpp | 8 ++-- libraries/shared/src/SharedUtil.cpp | 11 +---- libraries/task/src/task/Config.h | 3 +- libraries/ui/src/InfoView.cpp | 4 +- libraries/ui/src/MainWindow.cpp | 10 ++-- 20 files changed, 91 insertions(+), 56 deletions(-) diff --git a/assignment-client/src/AssignmentClientMonitor.cpp b/assignment-client/src/AssignmentClientMonitor.cpp index 6601be849f..4c7f71a7aa 100644 --- a/assignment-client/src/AssignmentClientMonitor.cpp +++ b/assignment-client/src/AssignmentClientMonitor.cpp @@ -33,7 +33,7 @@ const QString ASSIGNMENT_CLIENT_MONITOR_TARGET_NAME = "assignment-client-monitor const int WAIT_FOR_CHILD_MSECS = 1000; #ifdef Q_OS_WIN -HANDLE PROCESS_GROUP = createProcessGroup(); +void* PROCESS_GROUP = createProcessGroup(); #endif AssignmentClientMonitor::AssignmentClientMonitor(const unsigned int numAssignmentClientForks, diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4766353eba..421741b0a2 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -252,6 +252,7 @@ #if defined(Q_OS_WIN) #include +#include // On Windows PC, NVidia Optimus laptop, we want to enable NVIDIA GPU // FIXME seems to be broken. @@ -532,6 +533,11 @@ bool isDomainURL(QUrl url) { } #ifdef Q_OS_WIN +static const UINT UWM_IDENTIFY_INSTANCES = + RegisterWindowMessage("UWM_IDENTIFY_INSTANCES_{8AB82783-B74A-4258-955B-8188C22AA0D6}_" + qgetenv("USERNAME")); +static const UINT UWM_SHOW_APPLICATION = + RegisterWindowMessage("UWM_SHOW_APPLICATION_{71123FD6-3DA8-4DC1-9C27-8A12A6250CBA}_" + qgetenv("USERNAME")); + class MyNativeEventFilter : public QAbstractNativeEventFilter { public: static MyNativeEventFilter& getInstance() { @@ -4957,7 +4963,7 @@ extern "C" { CCHAR NumberOfProcessors; }; - NTSYSCALLAPI NTSTATUS NTAPI NtQuerySystemInformation( + NTSYSCALLAPI LONG NTAPI NtQuerySystemInformation( _In_ SYSTEM_INFORMATION_CLASS SystemInformationClass, _Out_writes_bytes_opt_(SystemInformationLength) PVOID SystemInformation, _In_ ULONG SystemInformationLength, @@ -4966,12 +4972,12 @@ extern "C" { } template -NTSTATUS NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, T& t) { +LONG NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, T& t) { return NtQuerySystemInformation(SystemInformationClass, &t, (ULONG)sizeof(T), nullptr); } template -NTSTATUS NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, std::vector& t) { +LONG NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, std::vector& t) { return NtQuerySystemInformation(SystemInformationClass, t.data(), (ULONG)(sizeof(T) * t.size()), nullptr); } diff --git a/interface/src/Application.h b/interface/src/Application.h index af2348d1e9..e3334d12d6 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -91,12 +91,6 @@ namespace controller { class StateController; } -#ifdef Q_OS_WIN -static const UINT UWM_IDENTIFY_INSTANCES = - RegisterWindowMessage("UWM_IDENTIFY_INSTANCES_{8AB82783-B74A-4258-955B-8188C22AA0D6}_" + qgetenv("USERNAME")); -static const UINT UWM_SHOW_APPLICATION = - RegisterWindowMessage("UWM_SHOW_APPLICATION_{71123FD6-3DA8-4DC1-9C27-8A12A6250CBA}_" + qgetenv("USERNAME")); -#endif static const QString RUNNING_MARKER_FILENAME = "Interface.running"; static const QString SCRIPTS_SWITCH = "scripts"; diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 9af1d07309..5ca4d18a45 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -36,6 +36,7 @@ #include "Profile.h" #ifdef Q_OS_WIN +#include extern "C" { typedef int(__stdcall * CHECKMINSPECPROC) (); } diff --git a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp index d3cb602e5b..a1138b3018 100644 --- a/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp +++ b/libraries/display-plugins/src/display-plugins/CompositorHelper.cpp @@ -15,10 +15,10 @@ #include #include -#include -#include +#include +#include #include -#include +#include #include #include @@ -177,9 +177,35 @@ QPointF CompositorHelper::getMouseEventPosition(QMouseEvent* event) { return event->localPos(); } +static bool isWindowActive() { + for (const auto& window : QGuiApplication::topLevelWindows()) { + if (window->isActive()) { + return true; + } + } + return false; +} + bool CompositorHelper::shouldCaptureMouse() const { + if (!_allowMouseCapture) { + return false; + } + + if (!isHMD()) { + return false; + } + + + if (!isWindowActive()) { + return false; + } + + if (ui::Menu::isSomeSubmenuShown()) { + return false; + } + // if we're in HMD mode, and some window of ours is active, but we're not currently showing a popup menu - return _allowMouseCapture && isHMD() && QApplication::activeWindow() && !ui::Menu::isSomeSubmenuShown(); + return true; } void CompositorHelper::setAllowMouseCapture(bool capture) { @@ -206,9 +232,9 @@ void CompositorHelper::handleLeaveEvent() { mainWidgetFrame.moveTopLeft(topLeftScreen); } QRect uncoveredRect = mainWidgetFrame; - foreach(QWidget* widget, QApplication::topLevelWidgets()) { - if (widget->isWindow() && widget->isVisible() && widget != mainWidget) { - QRect widgetFrame = widget->frameGeometry(); + for(QWindow* window : QGuiApplication::topLevelWindows()) { + if (window->isVisible() && window != mainWidget->windowHandle()) { + QRect widgetFrame = window->frameGeometry(); if (widgetFrame.intersects(uncoveredRect)) { QRect intersection = uncoveredRect & widgetFrame; if (intersection.top() > uncoveredRect.top()) { @@ -292,7 +318,7 @@ glm::vec2 CompositorHelper::getReticleMaximumPosition() const { if (isHMD()) { result = VIRTUAL_SCREEN_SIZE; } else { - QRect rec = QApplication::desktop()->screenGeometry(); + QRect rec = QGuiApplication::primaryScreen()->geometry(); result = glm::vec2(rec.right(), rec.bottom()); } return result; @@ -308,8 +334,8 @@ void CompositorHelper::sendFakeMouseEvent() { // in HMD mode we need to fake our mouse moves... QPoint globalPos(_reticlePositionInHMD.x, _reticlePositionInHMD.y); auto button = Qt::NoButton; - auto buttons = QApplication::mouseButtons(); - auto modifiers = QApplication::keyboardModifiers(); + auto buttons = QGuiApplication::mouseButtons(); + auto modifiers = QGuiApplication::keyboardModifiers(); QMouseEvent event(QEvent::MouseMove, globalPos, button, buttons, modifiers); _fakeMouseEvent = true; qApp->sendEvent(_renderingWidget, &event); diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index 55a15dadf0..f601b99779 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -373,7 +373,7 @@ void OpenGLDisplayPlugin::customizeContext() { auto usage = gpu::Texture::Usage::Builder().withColor().withAlpha(); cursorData.texture->setUsage(usage.build()); cursorData.texture->setStoredMipFormat(gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA)); - cursorData.texture->assignStoredMip(0, image.byteCount(), image.constBits()); + cursorData.texture->assignStoredMip(0, image.sizeInBytes(), image.constBits()); cursorData.texture->setAutoGenerateMips(true); } } diff --git a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp index 722ab341f7..0c8b661980 100644 --- a/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/hmd/HmdDisplayPlugin.cpp @@ -290,7 +290,7 @@ void HmdDisplayPlugin::internalPresent() { _previewTexture->setSource("HMD Preview Texture"); _previewTexture->setUsage(gpu::Texture::Usage::Builder().withColor().build()); _previewTexture->setStoredMipFormat(gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA)); - _previewTexture->assignStoredMip(0, image.byteCount(), image.constBits()); + _previewTexture->assignStoredMip(0, image.sizeInBytes(), image.constBits()); _previewTexture->setAutoGenerateMips(true); auto viewport = getViewportForSourceSize(uvec2(_previewTexture->getDimensions())); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 7cfdc8a68d..3305d9ba00 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -666,7 +666,7 @@ QScriptValue EntityScriptingInterface::getMultipleEntityProperties(QScriptContex const int ARGUMENT_EXTENDED_DESIRED_PROPERTIES = 1; auto entityScriptingInterface = DependencyManager::get(); - const auto entityIDs = qScriptValueToValue>(context->argument(ARGUMENT_ENTITY_IDS)); + const auto entityIDs = qscriptvalue_cast>(context->argument(ARGUMENT_ENTITY_IDS)); return entityScriptingInterface->getMultipleEntityPropertiesInternal(engine, entityIDs, context->argument(ARGUMENT_EXTENDED_DESIRED_PROPERTIES)); } @@ -716,7 +716,7 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::FlagsActive); } - EntityPropertyFlags desiredProperties = qScriptValueToValue(extendedDesiredProperties); + EntityPropertyFlags desiredProperties = qscriptvalue_cast(extendedDesiredProperties); bool needsScriptSemantics = desiredProperties.getHasProperty(PROP_POSITION) || desiredProperties.getHasProperty(PROP_ROTATION) || desiredProperties.getHasProperty(PROP_LOCAL_POSITION) || diff --git a/libraries/fbx/src/GLTFSerializer.cpp b/libraries/fbx/src/GLTFSerializer.cpp index dca9e9fefa..da21c7995e 100755 --- a/libraries/fbx/src/GLTFSerializer.cpp +++ b/libraries/fbx/src/GLTFSerializer.cpp @@ -1859,7 +1859,7 @@ bool GLTFSerializer::readArray(const hifi::ByteArray& bin, int byteOffset, int c break; default: qWarning(modelformat) << "Unknown accessorType: " << accessorType; - blobstream.unsetDevice(); + blobstream.setDevice(nullptr); return false; } for (int i = 0; i < count; ++i) { @@ -1869,13 +1869,13 @@ bool GLTFSerializer::readArray(const hifi::ByteArray& bin, int byteOffset, int c blobstream >> value; outarray.push_back(value); } else { - blobstream.unsetDevice(); + blobstream.setDevice(nullptr); return false; } } } - blobstream.unsetDevice(); + blobstream.setDevice(nullptr); return true; } template diff --git a/libraries/image/src/image/Image.cpp b/libraries/image/src/image/Image.cpp index 2ef83e42d8..eb84521f5c 100644 --- a/libraries/image/src/image/Image.cpp +++ b/libraries/image/src/image/Image.cpp @@ -20,7 +20,7 @@ size_t Image::getByteCount() const { if (_format == Format_RGBAF) { return sizeof(FloatPixels::value_type) * _floatData.size(); } else { - return _packedData.byteCount(); + return _packedData.sizeInBytes(); } } diff --git a/libraries/networking/src/HifiSockAddr.cpp b/libraries/networking/src/HifiSockAddr.cpp index a1bfcdd275..086dd08489 100644 --- a/libraries/networking/src/HifiSockAddr.cpp +++ b/libraries/networking/src/HifiSockAddr.cpp @@ -17,6 +17,13 @@ #include "NetworkLogging.h" +#ifdef WIN32 +#include +#include +#else +#include +#endif + int hifiSockAddrMetaTypeId = qRegisterMetaType(); HifiSockAddr::HifiSockAddr() : diff --git a/libraries/networking/src/HifiSockAddr.h b/libraries/networking/src/HifiSockAddr.h index 3c753f0434..dcf7f9a6a9 100644 --- a/libraries/networking/src/HifiSockAddr.h +++ b/libraries/networking/src/HifiSockAddr.h @@ -15,12 +15,7 @@ #include #include -#ifdef WIN32 -#include -#include -#else -#include -#endif +struct sockaddr; #include diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index ecf2218e2f..c6b8bfb90b 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -38,6 +38,10 @@ #include "udt/Packet.h" #include "HMACAuth.h" +#if defined(Q_OS_WIN) +#include +#endif + static Setting::Handle LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.LocalPort", 0); using namespace std::chrono_literals; diff --git a/libraries/networking/src/udt/Socket.cpp b/libraries/networking/src/udt/Socket.cpp index 2d99f3649b..017855d628 100644 --- a/libraries/networking/src/udt/Socket.cpp +++ b/libraries/networking/src/udt/Socket.cpp @@ -31,6 +31,14 @@ using namespace udt; +#ifdef WIN32 +#include +#include +#else +#include +#endif + + Socket::Socket(QObject* parent, bool shouldChangeSocketOptions) : QObject(parent), _udpSocket(parent), diff --git a/libraries/render-utils/src/text/Font.cpp b/libraries/render-utils/src/text/Font.cpp index f9ca9d4cae..5cb5709252 100644 --- a/libraries/render-utils/src/text/Font.cpp +++ b/libraries/render-utils/src/text/Font.cpp @@ -258,7 +258,7 @@ void Font::read(QIODevice& in) { _texture = gpu::Texture::create2D(formatGPU, image.width(), image.height(), gpu::Texture::SINGLE_MIP, gpu::Sampler(gpu::Sampler::FILTER_MIN_POINT_MAG_LINEAR)); _texture->setStoredMipFormat(formatMip); - _texture->assignStoredMip(0, image.byteCount(), image.constBits()); + _texture->assignStoredMip(0, image.sizeInBytes(), image.constBits()); } void Font::setupGPU() { diff --git a/libraries/shared/src/MovingPercentile.cpp b/libraries/shared/src/MovingPercentile.cpp index 5bcdbb5e80..427f7f2078 100644 --- a/libraries/shared/src/MovingPercentile.cpp +++ b/libraries/shared/src/MovingPercentile.cpp @@ -46,13 +46,13 @@ void MovingPercentile::updatePercentile(qint64 sample) { // swap new sample with neighbors in _samplesSorted until it's in sorted order // try swapping up first, then down. element will only be swapped one direction. while (newSampleIndex < _samplesSorted.size() - 1 && sample > _samplesSorted[newSampleIndex + 1]) { - _samplesSorted.swap(newSampleIndex, newSampleIndex + 1); - _sampleIds.swap(newSampleIndex, newSampleIndex + 1); + std::swap(_samplesSorted[newSampleIndex], _samplesSorted[newSampleIndex + 1]); + std::swap(_sampleIds[newSampleIndex], _sampleIds[newSampleIndex + 1]); newSampleIndex++; } while (newSampleIndex > 0 && sample < _samplesSorted[newSampleIndex - 1]) { - _samplesSorted.swap(newSampleIndex, newSampleIndex - 1); - _sampleIds.swap(newSampleIndex, newSampleIndex - 1); + std::swap(_samplesSorted[newSampleIndex], _samplesSorted[newSampleIndex - 1]); + std::swap(_sampleIds[newSampleIndex], _sampleIds[newSampleIndex - 1]); newSampleIndex--; } diff --git a/libraries/shared/src/SharedUtil.cpp b/libraries/shared/src/SharedUtil.cpp index 39def1cab9..f14be72a71 100644 --- a/libraries/shared/src/SharedUtil.cpp +++ b/libraries/shared/src/SharedUtil.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #ifdef Q_OS_WIN @@ -793,15 +794,7 @@ void printSystemInformation() { qCDebug(shared).noquote() << "\tKernel Type: " << QSysInfo::kernelType(); qCDebug(shared).noquote() << "\tKernel Version: " << QSysInfo::kernelVersion(); - auto macVersion = QSysInfo::macVersion(); - if (macVersion != QSysInfo::MV_None) { - qCDebug(shared) << "\tMac Version: " << macVersion; - } - - auto windowsVersion = QSysInfo::windowsVersion(); - if (windowsVersion != QSysInfo::WV_None) { - qCDebug(shared) << "\tWindows Version: " << windowsVersion; - } + qCDebug(shared) << "\tOS Version: " << QOperatingSystemVersion::current(); #ifdef Q_OS_WIN SYSTEM_INFO si; diff --git a/libraries/task/src/task/Config.h b/libraries/task/src/task/Config.h index 71d48c9a18..7e6be9b53e 100644 --- a/libraries/task/src/task/Config.h +++ b/libraries/task/src/task/Config.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include "SettingHandle.h" @@ -189,7 +190,7 @@ public: * @returns {object[]} */ Q_INVOKABLE QObjectList getSubConfigs() const { - auto list = findChildren(QRegExp(".*"), Qt::FindDirectChildrenOnly); + auto list = findChildren(QRegularExpression(".*"), Qt::FindDirectChildrenOnly); QObjectList returned; for (int i = 0; i < list.size(); i++) { returned.push_back(list[i]); diff --git a/libraries/ui/src/InfoView.cpp b/libraries/ui/src/InfoView.cpp index 650d43831c..478401c6f8 100644 --- a/libraries/ui/src/InfoView.cpp +++ b/libraries/ui/src/InfoView.cpp @@ -56,10 +56,10 @@ void InfoView::show(const QString& path, bool firstOrChangedOnly, QString urlQue const QString lastVersion = infoVersion.get(); const QString version = fetchVersion(url); // If we have version information stored - if (lastVersion != QString::null) { + if (!lastVersion.isNull()) { // Check to see the document version. If it's valid and matches // the stored version, we're done, so exit - if (version == QString::null || version == lastVersion) { + if (version.isNull() || version == lastVersion) { return; } } diff --git a/libraries/ui/src/MainWindow.cpp b/libraries/ui/src/MainWindow.cpp index 124e25675a..ffa9bacbaa 100644 --- a/libraries/ui/src/MainWindow.cpp +++ b/libraries/ui/src/MainWindow.cpp @@ -11,8 +11,8 @@ #include "MainWindow.h" -#include -#include +#include +#include #include #include #include @@ -22,8 +22,8 @@ #include #include #include -#include -#include +#include +#include #include "ui/Logging.h" #include "DockWidget.h" @@ -60,7 +60,7 @@ QWindow* MainWindow::findMainWindow() { void MainWindow::restoreGeometry() { // Did not use setGeometry() on purpose, // see http://doc.qt.io/qt-5/qsettings.html#restoring-the-state-of-a-gui-application - QRect windowGeometry = qApp->desktop()->availableGeometry(); + QRect windowGeometry = QGuiApplication::primaryScreen()->availableGeometry(); #if defined(Q_OS_MAC) windowGeometry.setSize((windowGeometry.size() * 0.5f)); #endif From 2626f85f49d1ab7d598857077f7533d5c8f7396e Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Tue, 8 Oct 2019 15:44:06 -0700 Subject: [PATCH 05/13] Handle multiple inputs, bias towards inputZ instead of inputX, and add a deadzone that matches xbox controller analog deadzone --- libraries/animation/src/Rig.cpp | 47 ++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 88b42285cd..7f83fb5218 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2160,40 +2160,43 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo } } - //TODO: how to handle multiple inputs? Is there a trick to prioritize fwd/bwd with order of operations? - if (params.inputX) { - if (params.inputX > 0.0f) { - // left + //deadzone constant + #define INPUT_DEADZONE_THRESHOLD 0.05f + + if (abs(params.inputZ) > INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) >= abs(params.inputX)) { + if (params.inputZ > INPUT_DEADZONE_THRESHOLD) { + // forward + _animVars.set("isInputForward", true); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } + else { + // backward + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", true); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } + } else if (abs(params.inputX) > INPUT_DEADZONE_THRESHOLD && abs(params.inputX) > abs(params.inputZ)) { + if (params.inputX > INPUT_DEADZONE_THRESHOLD) { + // right _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); _animVars.set("isInputRight", true); _animVars.set("isInputLeft", false); _animVars.set("isNotInput", false); } else { - // right + // left _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); _animVars.set("isInputRight", false); _animVars.set("isInputLeft", true); _animVars.set("isNotInput", false); } - } else if (params.inputZ) { - if (params.inputZ > 0.0f) { - // forward - _animVars.set("isInputForward", true); - _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } else { - // backward - _animVars.set("isInputForward", false); - _animVars.set("isInputBackward", true); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } - } else if (params.inputX == 0.0f && params.inputZ == 0.0f) { + } else if (params.inputX <= INPUT_DEADZONE_THRESHOLD && params.inputZ <= INPUT_DEADZONE_THRESHOLD) { // no WASD input _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); From 06871a707e776596d4471e1aede3cf8cf49624a7 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 8 Oct 2019 16:11:00 -0700 Subject: [PATCH 06/13] Fix byteswap --- libraries/networking/src/LimitedNodeList.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index c6b8bfb90b..4b6adc8b01 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -40,6 +40,8 @@ #if defined(Q_OS_WIN) #include +#else +#include #endif static Setting::Handle LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.LocalPort", 0); From cfa7df7d1a27275d47b50424692d87ae5acbe972 Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Tue, 8 Oct 2019 16:14:21 -0700 Subject: [PATCH 07/13] Refactor the if-logic to remove complexity --- libraries/animation/src/Rig.cpp | 52 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 7f83fb5218..8d78ff1418 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2163,25 +2163,31 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo //deadzone constant #define INPUT_DEADZONE_THRESHOLD 0.05f - if (abs(params.inputZ) > INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) >= abs(params.inputX)) { - if (params.inputZ > INPUT_DEADZONE_THRESHOLD) { - // forward - _animVars.set("isInputForward", true); - _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } - else { - // backward - _animVars.set("isInputForward", false); - _animVars.set("isInputBackward", true); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", false); - } - } else if (abs(params.inputX) > INPUT_DEADZONE_THRESHOLD && abs(params.inputX) > abs(params.inputZ)) { - if (params.inputX > INPUT_DEADZONE_THRESHOLD) { + if (abs(params.inputX) <= INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) { + // no WASD input + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", true); + } else if ( abs(params.inputZ) >= abs(params.inputX) ) { + if (params.inputZ > 0) { + // forward + _animVars.set("isInputForward", true); + _animVars.set("isInputBackward", false); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } else { + // backward + _animVars.set("isInputForward", false); + _animVars.set("isInputBackward", true); + _animVars.set("isInputRight", false); + _animVars.set("isInputLeft", false); + _animVars.set("isNotInput", false); + } + } else { + if (params.inputX > 0) { // right _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); @@ -2196,15 +2202,9 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo _animVars.set("isInputLeft", true); _animVars.set("isNotInput", false); } - } else if (params.inputX <= INPUT_DEADZONE_THRESHOLD && params.inputZ <= INPUT_DEADZONE_THRESHOLD) { - // no WASD input - _animVars.set("isInputForward", false); - _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", false); - _animVars.set("isNotInput", true); } + _headEnabled = params.primaryControllerFlags[PrimaryControllerType_Head] & (uint8_t)ControllerFlags::Enabled; bool leftHandEnabled = params.primaryControllerFlags[PrimaryControllerType_LeftHand] & (uint8_t)ControllerFlags::Enabled; bool rightHandEnabled = params.primaryControllerFlags[PrimaryControllerType_RightHand] & (uint8_t)ControllerFlags::Enabled; From 2a1258968aa3113206a3a27be7584bddcdf24453 Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Wed, 9 Oct 2019 10:10:45 -0700 Subject: [PATCH 08/13] Change macro to const float, use floats in control flow. --- libraries/animation/src/Rig.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index d84b04c800..432f9387fa 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2161,7 +2161,7 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo } //deadzone constant - #define INPUT_DEADZONE_THRESHOLD 0.05f + const float INPUT_DEADZONE_THRESHOLD = 0.05f; if (abs(params.inputX) <= INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) { // no WASD input @@ -2171,7 +2171,7 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo _animVars.set("isInputLeft", false); _animVars.set("isNotInput", true); } else if ( abs(params.inputZ) >= abs(params.inputX) ) { - if (params.inputZ > 0) { + if (params.inputZ > 0.0f) { // forward _animVars.set("isInputForward", true); _animVars.set("isInputBackward", false); @@ -2187,7 +2187,7 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo _animVars.set("isNotInput", false); } } else { - if (params.inputX > 0) { + if (params.inputX > 0.0f) { // right _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); From 85b681e70e82a1b28986166f735d6c5238b58590 Mon Sep 17 00:00:00 2001 From: dooglifeSF <41022919+dooglifeSF@users.noreply.github.com> Date: Wed, 9 Oct 2019 11:07:14 -0700 Subject: [PATCH 09/13] switch abs() to fabsf() --- libraries/animation/src/Rig.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 432f9387fa..0be05f843e 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -2163,14 +2163,14 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo //deadzone constant const float INPUT_DEADZONE_THRESHOLD = 0.05f; - if (abs(params.inputX) <= INPUT_DEADZONE_THRESHOLD && abs(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) { + if (fabsf(params.inputX) <= INPUT_DEADZONE_THRESHOLD && fabsf(params.inputZ) <= INPUT_DEADZONE_THRESHOLD) { // no WASD input _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); _animVars.set("isInputRight", false); _animVars.set("isInputLeft", false); _animVars.set("isNotInput", true); - } else if ( abs(params.inputZ) >= abs(params.inputX) ) { + } else if (fabsf(params.inputZ) >= fabsf(params.inputX)) { if (params.inputZ > 0.0f) { // forward _animVars.set("isInputForward", true); From 06244338d6e84fbc9ee93acc7a6c275741440454 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 12:36:44 -0700 Subject: [PATCH 10/13] updated nametags to work in selfie mode --- .../resources/modules/nameTagListManager.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index a38ba129db..4700d7528c 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -197,6 +197,27 @@ function toggleInterval() { } +// Disconnect the camera mode updated signal if we have one connected for the selfie mode +var cameraModeUpdatedSignalConnected = false; +function maybeDisconnectCameraModeUpdatedSignal(){ + if (cameraModeUpdatedSignalConnected) { + Camera.modeUpdated.disconnect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = false; + } +} + + +// Turn on the nametag for yourself if you are in selfie mode, other wise delete it +function handleCameraModeChanged(mode) { + if (mode === "selfie") { + if (avatarNametagMode === "alwaysOn") { + add(MyAvatar.sessionUUID); + } + } else { + maybeRemove(MyAvatar.sessionUUID); + } +} + // Handle checking to see if we should add or delete nametags in persistent mode var alwaysOnAvatarDistanceCheck = false; var DISTANCE_CHECK_INTERVAL_MS = 1000; @@ -215,6 +236,10 @@ function handleAlwaysOnMode(shouldTurnOnAlwaysOnMode) { }); maybeClearAlwaysOnAvatarDistanceCheck(); alwaysOnAvatarDistanceCheck = Script.setInterval(maybeAddOrRemoveIntervalCheck, DISTANCE_CHECK_INTERVAL_MS); + + if (Camera.mode === "selfie") { + add(MyAvatar.sessionUUID); + } } } @@ -652,6 +677,7 @@ function reset() { _this.avatars = {}; shouldToggleInterval(); maybeClearAlwaysOnAvatarDistanceCheck(); + maybeDisconnectCameraModeUpdatedSignal(); return _this; } @@ -662,11 +688,14 @@ var avatarNametagMode = "on"; function handleAvatarNametagMode(newAvatarNametagMode) { if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(false); + maybeDisconnectCameraModeUpdatedSignal(); } avatarNametagMode = newAvatarNametagMode; if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(true); + Camera.modeUpdated.connect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = true; } if (avatarNametagMode === "off" || avatarNametagMode === "on") { From e2fee5361d8b82b25ab2088fee75b7f4efbd5102 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 13:09:38 -0700 Subject: [PATCH 11/13] updated startup/shutdown --- .../resources/modules/nameTagListManager.js | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index 4700d7528c..f9bb5de9b0 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -22,6 +22,31 @@ var SECONDS_IN_MINUTE = 60; // Delete after 5 minutes in case a nametag is hanging around in on mode var ALWAYS_ON_MAX_LIFETIME_IN_SECONDS = 5 * SECONDS_IN_MINUTE; +// ************************************* +// START STARTUP/SHUTDOWN +// ************************************* +// #region STARTUP/SHUTDOWN + + +// Connect the camera mode updated signal on startup +function startup() { + Camera.modeUpdated.connect(handleCameraModeChanged); + cameraModeUpdatedSignalConnected = true; + + Script.scriptEnding.connect(shutdown); +} + +startup(); + +function shutdown() { + maybeDisconnectCameraModeUpdatedSignal(); +} + + +// ************************************* +// END STARTUP/SHUTDOWN +// ************************************* + // ************************************* // START UTILTY // ************************************* @@ -688,14 +713,11 @@ var avatarNametagMode = "on"; function handleAvatarNametagMode(newAvatarNametagMode) { if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(false); - maybeDisconnectCameraModeUpdatedSignal(); } avatarNametagMode = newAvatarNametagMode; if (avatarNametagMode === "alwaysOn") { handleAlwaysOnMode(true); - Camera.modeUpdated.connect(handleCameraModeChanged); - cameraModeUpdatedSignalConnected = true; } if (avatarNametagMode === "off" || avatarNametagMode === "on") { From 77d17e0ff78556c0ed4d6330bb31ae29710fead9 Mon Sep 17 00:00:00 2001 From: milad Date: Wed, 9 Oct 2019 13:26:53 -0700 Subject: [PATCH 12/13] removed extra disconnect function --- .../simplifiedNametag/resources/modules/nameTagListManager.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js index f9bb5de9b0..c073a06589 100644 --- a/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js +++ b/scripts/simplifiedUI/ui/simplifiedNametag/resources/modules/nameTagListManager.js @@ -224,7 +224,7 @@ function toggleInterval() { // Disconnect the camera mode updated signal if we have one connected for the selfie mode var cameraModeUpdatedSignalConnected = false; -function maybeDisconnectCameraModeUpdatedSignal(){ +function maybeDisconnectCameraModeUpdatedSignal() { if (cameraModeUpdatedSignalConnected) { Camera.modeUpdated.disconnect(handleCameraModeChanged); cameraModeUpdatedSignalConnected = false; @@ -702,7 +702,6 @@ function reset() { _this.avatars = {}; shouldToggleInterval(); maybeClearAlwaysOnAvatarDistanceCheck(); - maybeDisconnectCameraModeUpdatedSignal(); return _this; } From 1ce3cebe1ff82a3ae89ba824f523a80983c818e9 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Wed, 9 Oct 2019 14:04:44 -0700 Subject: [PATCH 13/13] force LOD to be 20-20 on android, and force lodAngleDeg to 0.248 --- scripts/+android_interface/defaultScripts.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/+android_interface/defaultScripts.js b/scripts/+android_interface/defaultScripts.js index 8b3082d81a..a02f98b193 100644 --- a/scripts/+android_interface/defaultScripts.js +++ b/scripts/+android_interface/defaultScripts.js @@ -127,3 +127,8 @@ Script.scriptEnding.connect(function() { }); Menu.menuItemEvent.connect(menuItemEvent); + +var ANDROID_UI_AUTO_LOD_ADJUST = false; +var ANDROID_UI_LOD_ANGLE_DEG = 0.248; +LODManager.automaticLODAdjust = ANDROID_UI_AUTO_LOD_ADJUST; +LODManager.lodAngleDeg = ANDROID_UI_LOD_ANGLE_DEG;