mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-06-21 16:41:38 +02:00
Merge branch 'master' of https://github.com/highfidelity/hifi into editHandleFixesImprovements
This commit is contained in:
commit
3967ca6bf6
2 changed files with 31 additions and 23 deletions
|
@ -1163,24 +1163,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
||||||
});
|
});
|
||||||
audioIO->startThread();
|
audioIO->startThread();
|
||||||
|
|
||||||
auto audioScriptingInterface = DependencyManager::set<AudioScriptingInterface, scripting::Audio>();
|
|
||||||
connect(audioIO.data(), &AudioClient::mutedByMixer, audioScriptingInterface.data(), &AudioScriptingInterface::mutedByMixer);
|
|
||||||
connect(audioIO.data(), &AudioClient::receivedFirstPacket, audioScriptingInterface.data(), &AudioScriptingInterface::receivedFirstPacket);
|
|
||||||
connect(audioIO.data(), &AudioClient::disconnected, audioScriptingInterface.data(), &AudioScriptingInterface::disconnected);
|
|
||||||
connect(audioIO.data(), &AudioClient::muteEnvironmentRequested, [](glm::vec3 position, float radius) {
|
|
||||||
auto audioClient = DependencyManager::get<AudioClient>();
|
|
||||||
auto audioScriptingInterface = DependencyManager::get<AudioScriptingInterface>();
|
|
||||||
auto myAvatarPosition = DependencyManager::get<AvatarManager>()->getMyAvatar()->getWorldPosition();
|
|
||||||
float distance = glm::distance(myAvatarPosition, position);
|
|
||||||
|
|
||||||
if (distance < radius) {
|
|
||||||
audioClient->setMuted(true);
|
|
||||||
audioScriptingInterface->environmentMuted();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
connect(this, &Application::activeDisplayPluginChanged,
|
|
||||||
reinterpret_cast<scripting::Audio*>(audioScriptingInterface.data()), &scripting::Audio::onContextChanged);
|
|
||||||
|
|
||||||
// Make sure we don't time out during slow operations at startup
|
// Make sure we don't time out during slow operations at startup
|
||||||
updateHeartbeat();
|
updateHeartbeat();
|
||||||
|
|
||||||
|
@ -1366,6 +1348,28 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
||||||
initializeDisplayPlugins();
|
initializeDisplayPlugins();
|
||||||
qCDebug(interfaceapp, "Initialized Display");
|
qCDebug(interfaceapp, "Initialized Display");
|
||||||
|
|
||||||
|
// An audio device changed signal received before the display plugins are set up will cause a crash,
|
||||||
|
// so we defer the setup of the `scripting::Audio` class until this point
|
||||||
|
{
|
||||||
|
auto audioScriptingInterface = DependencyManager::set<AudioScriptingInterface, scripting::Audio>();
|
||||||
|
connect(audioIO.data(), &AudioClient::mutedByMixer, audioScriptingInterface.data(), &AudioScriptingInterface::mutedByMixer);
|
||||||
|
connect(audioIO.data(), &AudioClient::receivedFirstPacket, audioScriptingInterface.data(), &AudioScriptingInterface::receivedFirstPacket);
|
||||||
|
connect(audioIO.data(), &AudioClient::disconnected, audioScriptingInterface.data(), &AudioScriptingInterface::disconnected);
|
||||||
|
connect(audioIO.data(), &AudioClient::muteEnvironmentRequested, [](glm::vec3 position, float radius) {
|
||||||
|
auto audioClient = DependencyManager::get<AudioClient>();
|
||||||
|
auto audioScriptingInterface = DependencyManager::get<AudioScriptingInterface>();
|
||||||
|
auto myAvatarPosition = DependencyManager::get<AvatarManager>()->getMyAvatar()->getWorldPosition();
|
||||||
|
float distance = glm::distance(myAvatarPosition, position);
|
||||||
|
|
||||||
|
if (distance < radius) {
|
||||||
|
audioClient->setMuted(true);
|
||||||
|
audioScriptingInterface->environmentMuted();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
connect(this, &Application::activeDisplayPluginChanged,
|
||||||
|
reinterpret_cast<scripting::Audio*>(audioScriptingInterface.data()), &scripting::Audio::onContextChanged);
|
||||||
|
}
|
||||||
|
|
||||||
// Create the rendering engine. This can be slow on some machines due to lots of
|
// Create the rendering engine. This can be slow on some machines due to lots of
|
||||||
// GPU pipeline creation.
|
// GPU pipeline creation.
|
||||||
initializeRenderEngine();
|
initializeRenderEngine();
|
||||||
|
@ -1751,6 +1755,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
||||||
|
|
||||||
// set the local loopback interface for local sounds
|
// set the local loopback interface for local sounds
|
||||||
AudioInjector::setLocalAudioInterface(audioIO.data());
|
AudioInjector::setLocalAudioInterface(audioIO.data());
|
||||||
|
auto audioScriptingInterface = DependencyManager::get<AudioScriptingInterface>();
|
||||||
audioScriptingInterface->setLocalAudioInterface(audioIO.data());
|
audioScriptingInterface->setLocalAudioInterface(audioIO.data());
|
||||||
connect(audioIO.data(), &AudioClient::noiseGateOpened, audioScriptingInterface.data(), &AudioScriptingInterface::noiseGateOpened);
|
connect(audioIO.data(), &AudioClient::noiseGateOpened, audioScriptingInterface.data(), &AudioScriptingInterface::noiseGateOpened);
|
||||||
connect(audioIO.data(), &AudioClient::noiseGateClosed, audioScriptingInterface.data(), &AudioScriptingInterface::noiseGateClosed);
|
connect(audioIO.data(), &AudioClient::noiseGateClosed, audioScriptingInterface.data(), &AudioScriptingInterface::noiseGateClosed);
|
||||||
|
|
|
@ -108,12 +108,15 @@ bool MyCharacterController::testRayShotgun(const glm::vec3& position, const glm:
|
||||||
btScalar lengthAxis = axis.length();
|
btScalar lengthAxis = axis.length();
|
||||||
if (lengthAxis > FLT_EPSILON) {
|
if (lengthAxis > FLT_EPSILON) {
|
||||||
// we're walking sideways
|
// we're walking sideways
|
||||||
btScalar angle = acosf(lengthAxis / adjustedDirection.length());
|
btScalar cosAngle = lengthAxis / adjustedDirection.length();
|
||||||
if (rayDirection.dot(forward) < 0.0f) {
|
if (cosAngle < 1.0f) {
|
||||||
angle = PI - angle;
|
btScalar angle = acosf(cosAngle);
|
||||||
|
if (rayDirection.dot(forward) < 0.0f) {
|
||||||
|
angle = PI - angle;
|
||||||
|
}
|
||||||
|
axis /= lengthAxis;
|
||||||
|
rotation = btMatrix3x3(btQuaternion(axis, angle)) * rotation;
|
||||||
}
|
}
|
||||||
axis /= lengthAxis;
|
|
||||||
rotation = btMatrix3x3(btQuaternion(axis, angle)) * rotation;
|
|
||||||
} else if (rayDirection.dot(forward) < 0.0f) {
|
} else if (rayDirection.dot(forward) < 0.0f) {
|
||||||
// we're walking backwards
|
// we're walking backwards
|
||||||
rotation = btMatrix3x3(btQuaternion(_currentUp, PI)) * rotation;
|
rotation = btMatrix3x3(btQuaternion(_currentUp, PI)) * rotation;
|
||||||
|
|
Loading…
Reference in a new issue