From 8175b9486f69f82950e9a328c3830f1708975428 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Fri, 8 Nov 2019 11:18:02 -0800 Subject: [PATCH 1/5] Fix crash when highlighting custom pipeline shapes --- libraries/render-utils/src/HighlightEffect.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/render-utils/src/HighlightEffect.cpp b/libraries/render-utils/src/HighlightEffect.cpp index 701036e66e..5a8b09b018 100644 --- a/libraries/render-utils/src/HighlightEffect.cpp +++ b/libraries/render-utils/src/HighlightEffect.cpp @@ -192,7 +192,9 @@ void DrawHighlightMask::run(const render::RenderContextPointer& renderContext, c ShapeKey::Builder(), ShapeKey::Builder().withFade(), ShapeKey::Builder().withDeformed(), ShapeKey::Builder().withDeformed().withFade(), ShapeKey::Builder().withDeformed().withDualQuatSkinned(), ShapeKey::Builder().withDeformed().withDualQuatSkinned().withFade(), - ShapeKey::Builder().withOwnPipeline(), ShapeKey::Builder().withOwnPipeline().withFade() + ShapeKey::Builder().withOwnPipeline(), ShapeKey::Builder().withOwnPipeline().withFade(), + ShapeKey::Builder().withDeformed().withOwnPipeline(), ShapeKey::Builder().withDeformed().withOwnPipeline().withFade(), + ShapeKey::Builder().withDeformed().withDualQuatSkinned().withOwnPipeline(), ShapeKey::Builder().withDeformed().withDualQuatSkinned().withOwnPipeline().withFade(), }; std::vector> sortedShapeKeys(keys.size()); From 549e181be06eeee49de445be41be2084bb4d4b1e Mon Sep 17 00:00:00 2001 From: amer cerkic Date: Mon, 11 Nov 2019 11:00:33 -0800 Subject: [PATCH 2/5] adding safeguard in case device list is empty --- libraries/audio-client/src/AudioClient.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 612493db2e..b1bb7d9eba 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -111,11 +111,17 @@ QList getAvailableDevices(QAudio::Mode mode, const QString& } if (defaultDesktopDevice.getDevice().isNull()) { - qCDebug(audioclient) << __FUNCTION__ << "Default device not found in list:" << defDeviceName - << "Setting Default to: " << devices.first().deviceName(); - defaultDesktopDevice = HifiAudioDeviceInfo(devices.first(), true, mode, HifiAudioDeviceInfo::desktop); + if (devices.size() > 0) { + qCDebug(audioclient) << __FUNCTION__ << "Default device not found in list:" << defDeviceName + << "Setting Default to: " << devices.first().deviceName(); + defaultDesktopDevice = HifiAudioDeviceInfo(devices.first(), true, mode, HifiAudioDeviceInfo::desktop); + } else { + //current audio list is empty for some reason. + qCDebug(audioclient) << __FUNCTION__ << "Default device not found in list no alternative selection available"; + } + } else { + newDevices.push_front(defaultDesktopDevice); } - newDevices.push_front(defaultDesktopDevice); if (!hmdName.isNull()) { HifiAudioDeviceInfo hmdDevice; From 3a764169ba1e0deff55e786d1bbdacd12f56c88d Mon Sep 17 00:00:00 2001 From: amer cerkic Date: Mon, 11 Nov 2019 11:13:44 -0800 Subject: [PATCH 3/5] adding new device to list if default not found --- libraries/audio-client/src/AudioClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index b1bb7d9eba..b26c00e82b 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -114,7 +114,7 @@ QList getAvailableDevices(QAudio::Mode mode, const QString& if (devices.size() > 0) { qCDebug(audioclient) << __FUNCTION__ << "Default device not found in list:" << defDeviceName << "Setting Default to: " << devices.first().deviceName(); - defaultDesktopDevice = HifiAudioDeviceInfo(devices.first(), true, mode, HifiAudioDeviceInfo::desktop); + newDevices.push_front(HifiAudioDeviceInfo(devices.first(), true, mode, HifiAudioDeviceInfo::desktop)); } else { //current audio list is empty for some reason. qCDebug(audioclient) << __FUNCTION__ << "Default device not found in list no alternative selection available"; From f9f28fc286fde81cbf6d09ebfdd52af2b3bb87d4 Mon Sep 17 00:00:00 2001 From: DouglasWilcox <916219+DouglasWilcox@users.noreply.github.com> Date: Tue, 12 Nov 2019 14:15:19 -0800 Subject: [PATCH 4/5] Handle HMD in input vars and remove/fix json transitions in/out of HMD strafe states. --- .../resources/avatar/avatar-animation.json | 36 ++----------------- libraries/animation/src/Rig.cpp | 16 +++++++-- 2 files changed, 15 insertions(+), 37 deletions(-) diff --git a/interface/resources/avatar/avatar-animation.json b/interface/resources/avatar/avatar-animation.json index 9c417be90b..59b00684d3 100644 --- a/interface/resources/avatar/avatar-animation.json +++ b/interface/resources/avatar/avatar-animation.json @@ -5994,14 +5994,6 @@ "state": "INAIRRUN", "var": "isInAirRun" }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, { "state": "seated", "var": "isSeated" @@ -6062,14 +6054,6 @@ "state": "INAIRRUN", "var": "isInAirRun" }, - { - "state": "strafeRightHmd", - "var": "isMovingRightHmd" - }, - { - "state": "strafeLeftHmd", - "var": "isMovingLeftHmd" - }, { "state": "seated", "var": "isSeated" @@ -6214,7 +6198,7 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotInput" + "var": "isNotMoving" }, { "state": "WALKFWD", @@ -6228,14 +6212,6 @@ "state": "strafeLeftHmd", "var": "isMovingLeftHmd" }, - { - "state": "STRAFERIGHT", - "var": "isInputRight" - }, - { - "state": "STRAFELEFT", - "var": "isInputLeft" - }, { "state": "turnRight", "var": "isTurningRight" @@ -6278,7 +6254,7 @@ "transitions": [ { "state": "idleSettle", - "var": "isNotInput" + "var": "isNotMoving" }, { "state": "WALKFWD", @@ -6292,14 +6268,6 @@ "state": "strafeRightHmd", "var": "isMovingRightHmd" }, - { - "state": "STRAFERIGHT", - "var": "isInputRight" - }, - { - "state": "STRAFELEFT", - "var": "isInputLeft" - }, { "state": "turnRight", "var": "isTurningRight" diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index fd8bdb1a0b..01ff217aeb 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -1510,19 +1510,29 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos if (_previousControllerParameters.inputX > 0.0f) { // right + if (!_headEnabled) { + _animVars.set("isInputRight", true); + } else { + _animVars.set("isInputRight", false); + } + + _animVars.set("isInputLeft", false); _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); - _animVars.set("isInputRight", true); - _animVars.set("isInputLeft", false); _animVars.set("isNotInput", false); _animVars.set("isNotInputSlow", false); _animVars.set("isNotInputNoMomentum", false); } else { // left + if (!_headEnabled) { + _animVars.set("isInputLeft", true); + } else { + _animVars.set("isInputLeft", false); + } + _animVars.set("isInputForward", false); _animVars.set("isInputBackward", false); _animVars.set("isInputRight", false); - _animVars.set("isInputLeft", true); _animVars.set("isNotInput", false); _animVars.set("isNotInputSlow", false); _animVars.set("isNotInputNoMomentum", false); From 3939c7e6fd9a6270d773ac73ba58c9fd5339e3ba Mon Sep 17 00:00:00 2001 From: amerhifi Date: Tue, 12 Nov 2019 17:07:43 -0800 Subject: [PATCH 5/5] adding qaudio reset on switch. --- libraries/audio-client/src/AudioClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index b26c00e82b..0ccad20145 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -1835,6 +1835,8 @@ bool AudioClient::switchInputToAudioDevice(const HifiAudioDeviceInfo inputDevice _audioInput->deleteLater(); _audioInput = NULL; _numInputCallbackBytes = 0; + + _inputDeviceInfo.setDevice(QAudioDeviceInfo()); } if (_dummyAudioInput) { @@ -2081,6 +2083,8 @@ bool AudioClient::switchOutputToAudioDevice(const HifiAudioDeviceInfo outputDevi delete[] _localOutputMixBuffer; _localOutputMixBuffer = NULL; + + _outputDeviceInfo.setDevice(QAudioDeviceInfo()); } // cleanup any resamplers