mirror of
https://github.com/overte-org/overte.git
synced 2025-07-23 12:04:03 +02:00
Merge remote-tracking branch 'upstream/master' into parenting
This commit is contained in:
commit
ed5c84548c
7 changed files with 107 additions and 17 deletions
|
@ -1,6 +1,6 @@
|
||||||
# Build OSX
|
# Build OSX
|
||||||
|
|
||||||
*Last Updated on July 3, 2020*
|
*Last Updated on July 13, 2020*
|
||||||
|
|
||||||
Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only macOS specific instructions are found in this document.
|
Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only macOS specific instructions are found in this document.
|
||||||
|
|
||||||
|
@ -28,7 +28,9 @@ For OpenSSL installed via homebrew, set OPENSSL_ROOT_DIR via
|
||||||
|
|
||||||
### Xcode
|
### Xcode
|
||||||
|
|
||||||
If Xcode is your editor of choice, you can ask CMake to generate Xcode project files instead of Unix Makefiles.
|
If Xcode is your editor of choice, you can ask CMake to generate Xcode project files instead of Unix Makefiles. You will need to select the Xcode installation in the terminal first if you have not done so already.
|
||||||
|
|
||||||
|
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
|
||||||
|
|
||||||
cmake .. -G Xcode
|
cmake .. -G Xcode
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" EXTERNAL_BUILD_ASSE
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
vcpkg_download_distfile(
|
vcpkg_download_distfile(
|
||||||
SRANIPAL_SOURCE_ARCHIVE
|
SRANIPAL_SOURCE_ARCHIVE
|
||||||
URLS "${EXTERNAL_BUILD_ASSETS}/seth/sranipal-1.1.0.1-windows.zip"
|
URLS "${EXTERNAL_BUILD_ASSETS}/seth/sranipal-1.1.0.1-2-windows.zip"
|
||||||
SHA512 b09ce012abe4e3c71e8e69626bdd7823ff6576601a821ab365275f2764406a3e5f7b65fcf2eb1d0962eff31eb5958a148b00901f67c229dc6ace56eb5e6c9e1b
|
SHA512 f1f68f6beef52ae5e034bc3f44932ae0800ee187b75d80e76ae7b17b8ddd7bc54c039ce5594d231035e3caf3a61fed36f38621a860b4fb20170cb0176d9c28f0
|
||||||
FILENAME sranipal-1.1.0.1-windows.zip
|
FILENAME sranipal-1.1.0.1-2-windows.zip
|
||||||
)
|
)
|
||||||
|
|
||||||
vcpkg_extract_source_archive(${SRANIPAL_SOURCE_ARCHIVE})
|
vcpkg_extract_source_archive(${SRANIPAL_SOURCE_ARCHIVE})
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
//
|
//
|
||||||
// Created by Dante Ruiz on 6/1/17.
|
// Created by Dante Ruiz on 6/1/17.
|
||||||
// Copyright 2017 High Fidelity, Inc.
|
// Copyright 2017 High Fidelity, Inc.
|
||||||
|
// Copyright 2020 Vircadia contributors.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -96,7 +97,8 @@ Item {
|
||||||
|
|
||||||
HifiControls.ImageMessageBox {
|
HifiControls.ImageMessageBox {
|
||||||
id: imageMessageBox
|
id: imageMessageBox
|
||||||
anchors.fill: parent
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 444
|
||||||
z: 2000
|
z: 2000
|
||||||
imageWidth: 442
|
imageWidth: 442
|
||||||
imageHeight: 670
|
imageHeight: 670
|
||||||
|
@ -179,7 +181,7 @@ Item {
|
||||||
HifiControls.CheckBox {
|
HifiControls.CheckBox {
|
||||||
id: checkBox
|
id: checkBox
|
||||||
colorScheme: hifi.colorSchemes.dark
|
colorScheme: hifi.colorSchemes.dark
|
||||||
text: "show all input devices"
|
text: "Show all input devices"
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
box.model = inputPlugins();
|
box.model = inputPlugins();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
//
|
//
|
||||||
// Created by Dante Ruiz on 6/5/17.
|
// Created by Dante Ruiz on 6/5/17.
|
||||||
// Copyright 2017 High Fidelity, Inc.
|
// Copyright 2017 High Fidelity, Inc.
|
||||||
|
// Copyright 2020 Vircadia contributors.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
@ -71,6 +72,7 @@ Flickable {
|
||||||
|
|
||||||
property int state: buttonState.disabled
|
property int state: buttonState.disabled
|
||||||
property var lastConfiguration: null
|
property var lastConfiguration: null
|
||||||
|
property bool isConfiguring: false
|
||||||
|
|
||||||
HifiConstants { id: hifi }
|
HifiConstants { id: hifi }
|
||||||
|
|
||||||
|
@ -360,9 +362,9 @@ Flickable {
|
||||||
RalewayRegular {
|
RalewayRegular {
|
||||||
id: info
|
id: info
|
||||||
|
|
||||||
text: "See Recommended Tracker Placement"
|
text: "See Recommended Placement"
|
||||||
color: hifi.colors.blueHighlight
|
color: hifi.colors.blueHighlight
|
||||||
size: 10
|
size: 12
|
||||||
anchors {
|
anchors {
|
||||||
left: additional.right
|
left: additional.right
|
||||||
leftMargin: 10
|
leftMargin: 10
|
||||||
|
@ -415,7 +417,6 @@ Flickable {
|
||||||
id: feetBox
|
id: feetBox
|
||||||
width: 15
|
width: 15
|
||||||
height: 15
|
height: 15
|
||||||
boxRadius: 7
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (!checked) {
|
if (!checked) {
|
||||||
|
@ -446,7 +447,6 @@ Flickable {
|
||||||
id: hipBox
|
id: hipBox
|
||||||
width: 15
|
width: 15
|
||||||
height: 15
|
height: 15
|
||||||
boxRadius: 7
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
|
@ -486,7 +486,6 @@ Flickable {
|
||||||
id: chestBox
|
id: chestBox
|
||||||
width: 15
|
width: 15
|
||||||
height: 15
|
height: 15
|
||||||
boxRadius: 7
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
|
@ -524,7 +523,6 @@ Flickable {
|
||||||
id: shoulderBox
|
id: shoulderBox
|
||||||
width: 15
|
width: 15
|
||||||
height: 15
|
height: 15
|
||||||
boxRadius: 7
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
|
@ -823,7 +821,6 @@ Flickable {
|
||||||
id: viveInDesktop
|
id: viveInDesktop
|
||||||
width: 15
|
width: 15
|
||||||
height: 15
|
height: 15
|
||||||
boxRadius: 7
|
|
||||||
|
|
||||||
anchors.top: advanceSettings.bottom
|
anchors.top: advanceSettings.bottom
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
|
@ -840,9 +837,71 @@ Flickable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HifiControls.CheckBox {
|
||||||
|
id: eyeTracking
|
||||||
|
width: 15
|
||||||
|
height: 15
|
||||||
|
|
||||||
|
anchors.top: viveInDesktop.bottom
|
||||||
|
anchors.topMargin: 5
|
||||||
|
anchors.left: openVrConfiguration.left
|
||||||
|
anchors.leftMargin: leftMargin + 10
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
sendConfigurationSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RalewayBold {
|
||||||
|
id: eyeTrackingLabel
|
||||||
|
size: 12
|
||||||
|
text: "Use eye tracking (if available)."
|
||||||
|
color: hifi.colors.lightGrayText
|
||||||
|
anchors {
|
||||||
|
left: eyeTracking.right
|
||||||
|
leftMargin: 5
|
||||||
|
verticalCenter: eyeTracking.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RalewayRegular {
|
||||||
|
id: privacyPolicy
|
||||||
|
text: "Privacy Policy"
|
||||||
|
color: hifi.colors.blueHighlight
|
||||||
|
size: 12
|
||||||
|
anchors {
|
||||||
|
left: eyeTrackingLabel.right
|
||||||
|
leftMargin: 10
|
||||||
|
verticalCenter: eyeTrackingLabel.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: privacyPolicyUnderline
|
||||||
|
color: hifi.colors.blueHighlight
|
||||||
|
width: privacyPolicy.width
|
||||||
|
height: 1
|
||||||
|
anchors {
|
||||||
|
top: privacyPolicy.bottom
|
||||||
|
topMargin: 1
|
||||||
|
left: privacyPolicy.left
|
||||||
|
}
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent;
|
||||||
|
hoverEnabled: true
|
||||||
|
onEntered: privacyPolicyUnderline.visible = true;
|
||||||
|
onExited: privacyPolicyUnderline.visible = false;
|
||||||
|
onClicked: HiFiAbout.openUrl("https://vircadia.com/privacy-policy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: outOfRangeDataStrategyRow
|
id: outOfRangeDataStrategyRow
|
||||||
anchors.top: viveInDesktop.bottom
|
anchors.top: eyeTracking.bottom
|
||||||
anchors.topMargin: 5
|
anchors.topMargin: 5
|
||||||
anchors.left: openVrConfiguration.left
|
anchors.left: openVrConfiguration.left
|
||||||
anchors.leftMargin: leftMargin + 10
|
anchors.leftMargin: leftMargin + 10
|
||||||
|
@ -966,6 +1025,8 @@ Flickable {
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayConfiguration() {
|
function displayConfiguration() {
|
||||||
|
isConfiguring = true;
|
||||||
|
|
||||||
var settings = InputConfiguration.configurationSettings(openVrConfiguration.pluginName);
|
var settings = InputConfiguration.configurationSettings(openVrConfiguration.pluginName);
|
||||||
var configurationType = settings["trackerConfiguration"];
|
var configurationType = settings["trackerConfiguration"];
|
||||||
displayTrackerConfiguration(configurationType);
|
displayTrackerConfiguration(configurationType);
|
||||||
|
@ -982,6 +1043,7 @@ Flickable {
|
||||||
var viveController = settings["handController"];
|
var viveController = settings["handController"];
|
||||||
var desktopMode = settings["desktopMode"];
|
var desktopMode = settings["desktopMode"];
|
||||||
var hmdDesktopPosition = settings["hmdDesktopTracking"];
|
var hmdDesktopPosition = settings["hmdDesktopTracking"];
|
||||||
|
var eyeTrackingEnabled = settings["eyeTrackingEnabled"];
|
||||||
|
|
||||||
armCircumference.realValue = settings.armCircumference;
|
armCircumference.realValue = settings.armCircumference;
|
||||||
shoulderWidth.realValue = settings.shoulderWidth;
|
shoulderWidth.realValue = settings.shoulderWidth;
|
||||||
|
@ -1004,6 +1066,7 @@ Flickable {
|
||||||
|
|
||||||
viveInDesktop.checked = desktopMode;
|
viveInDesktop.checked = desktopMode;
|
||||||
hmdInDesktop.checked = hmdDesktopPosition;
|
hmdInDesktop.checked = hmdDesktopPosition;
|
||||||
|
eyeTracking.checked = eyeTrackingEnabled;
|
||||||
outOfRangeDataStrategyComboBox.currentIndex = outOfRangeDataStrategyComboBox.model.indexOf(settings.outOfRangeDataStrategy);
|
outOfRangeDataStrategyComboBox.currentIndex = outOfRangeDataStrategyComboBox.model.indexOf(settings.outOfRangeDataStrategy);
|
||||||
|
|
||||||
initializeButtonState();
|
initializeButtonState();
|
||||||
|
@ -1014,6 +1077,8 @@ Flickable {
|
||||||
};
|
};
|
||||||
|
|
||||||
UserActivityLogger.logAction("mocap_ui_open_dialog", data);
|
UserActivityLogger.logAction("mocap_ui_open_dialog", data);
|
||||||
|
|
||||||
|
isConfiguring = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayTrackerConfiguration(type) {
|
function displayTrackerConfiguration(type) {
|
||||||
|
@ -1170,6 +1235,7 @@ Flickable {
|
||||||
"shoulderWidth": shoulderWidth.realValue,
|
"shoulderWidth": shoulderWidth.realValue,
|
||||||
"desktopMode": viveInDesktop.checked,
|
"desktopMode": viveInDesktop.checked,
|
||||||
"hmdDesktopTracking": hmdInDesktop.checked,
|
"hmdDesktopTracking": hmdInDesktop.checked,
|
||||||
|
"eyeTrackingEnabled": eyeTracking.checked,
|
||||||
"outOfRangeDataStrategy": outOfRangeDataStrategyComboBox.model[outOfRangeDataStrategyComboBox.currentIndex]
|
"outOfRangeDataStrategy": outOfRangeDataStrategyComboBox.model[outOfRangeDataStrategyComboBox.currentIndex]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1177,6 +1243,10 @@ Flickable {
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendConfigurationSettings() {
|
function sendConfigurationSettings() {
|
||||||
|
if (isConfiguring) {
|
||||||
|
// Ignore control value changes during dialog initialization.
|
||||||
|
return;
|
||||||
|
}
|
||||||
var settings = composeConfigurationSettings();
|
var settings = composeConfigurationSettings();
|
||||||
InputConfiguration.setConfigurationSettings(settings, openVrConfiguration.pluginName);
|
InputConfiguration.setConfigurationSettings(settings, openVrConfiguration.pluginName);
|
||||||
updateCalibrationButton();
|
updateCalibrationButton();
|
||||||
|
|
|
@ -264,6 +264,10 @@ void ViveControllerManager::setConfigurationSettings(const QJsonObject configura
|
||||||
_hmdDesktopTracking = configurationSettings["hmdDesktopTracking"].toBool();
|
_hmdDesktopTracking = configurationSettings["hmdDesktopTracking"].toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (configurationSettings.contains("eyeTrackingEnabled")) {
|
||||||
|
_eyeTrackingEnabled = configurationSettings["eyeTrackingEnabled"].toBool();
|
||||||
|
}
|
||||||
|
|
||||||
_inputDevice->configureCalibrationSettings(configurationSettings);
|
_inputDevice->configureCalibrationSettings(configurationSettings);
|
||||||
saveSettings();
|
saveSettings();
|
||||||
}
|
}
|
||||||
|
@ -274,6 +278,7 @@ QJsonObject ViveControllerManager::configurationSettings() {
|
||||||
QJsonObject configurationSettings = _inputDevice->configurationSettings();
|
QJsonObject configurationSettings = _inputDevice->configurationSettings();
|
||||||
configurationSettings["desktopMode"] = _desktopMode;
|
configurationSettings["desktopMode"] = _desktopMode;
|
||||||
configurationSettings["hmdDesktopTracking"] = _hmdDesktopTracking;
|
configurationSettings["hmdDesktopTracking"] = _hmdDesktopTracking;
|
||||||
|
configurationSettings["eyeTrackingEnabled"] = _eyeTrackingEnabled;
|
||||||
return configurationSettings;
|
return configurationSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -793,7 +798,7 @@ void ViveControllerManager::pluginUpdate(float deltaTime, const controller::Inpu
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VIVE_PRO_EYE
|
#ifdef VIVE_PRO_EYE
|
||||||
if (_viveProEye) {
|
if (_viveProEye && _eyeTrackingEnabled) {
|
||||||
updateEyeTracker(deltaTime, inputCalibrationData);
|
updateEyeTracker(deltaTime, inputCalibrationData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,6 +820,9 @@ void ViveControllerManager::loadSettings() {
|
||||||
_inputDevice->_shoulderWidth = settings.value("shoulderWidth", QVariant(DEFAULT_SHOULDER_WIDTH)).toDouble();
|
_inputDevice->_shoulderWidth = settings.value("shoulderWidth", QVariant(DEFAULT_SHOULDER_WIDTH)).toDouble();
|
||||||
_inputDevice->_outOfRangeDataStrategy = stringToOutOfRangeDataStrategy(settings.value("outOfRangeDataStrategy", QVariant(DEFAULT_OUT_OF_RANGE_STRATEGY)).toString());
|
_inputDevice->_outOfRangeDataStrategy = stringToOutOfRangeDataStrategy(settings.value("outOfRangeDataStrategy", QVariant(DEFAULT_OUT_OF_RANGE_STRATEGY)).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool DEFAULT_EYE_TRACKING_ENABLED = false;
|
||||||
|
_eyeTrackingEnabled = settings.value("eyeTrackingEnabled", QVariant(DEFAULT_EYE_TRACKING_ENABLED)).toBool();
|
||||||
}
|
}
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
}
|
}
|
||||||
|
@ -829,6 +837,8 @@ void ViveControllerManager::saveSettings() const {
|
||||||
settings.setValue(QString("shoulderWidth"), _inputDevice->_shoulderWidth);
|
settings.setValue(QString("shoulderWidth"), _inputDevice->_shoulderWidth);
|
||||||
settings.setValue(QString("outOfRangeDataStrategy"), outOfRangeDataStrategyToString(_inputDevice->_outOfRangeDataStrategy));
|
settings.setValue(QString("outOfRangeDataStrategy"), outOfRangeDataStrategyToString(_inputDevice->_outOfRangeDataStrategy));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settings.setValue(QString("eyeTrackingEnabled"), _eyeTrackingEnabled);
|
||||||
}
|
}
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
}
|
}
|
||||||
|
@ -857,6 +867,9 @@ void ViveControllerManager::InputDevice::update(float deltaTime, const controlle
|
||||||
if (_headsetName == "HTC") {
|
if (_headsetName == "HTC") {
|
||||||
_headsetName += " Vive";
|
_headsetName += " Vive";
|
||||||
}
|
}
|
||||||
|
if (oculusViaOpenVR()) {
|
||||||
|
_headsetName = "OpenVR"; // Enables calibration dialog to function when debugging using Oculus.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// While the keyboard is open, we defer strictly to the keyboard values
|
// While the keyboard is open, we defer strictly to the keyboard values
|
||||||
if (isOpenVrKeyboardShown()) {
|
if (isOpenVrKeyboardShown()) {
|
||||||
|
|
|
@ -262,6 +262,8 @@ private:
|
||||||
vr::IVRSystem* _system { nullptr };
|
vr::IVRSystem* _system { nullptr };
|
||||||
std::shared_ptr<InputDevice> _inputDevice { std::make_shared<InputDevice>(_system) };
|
std::shared_ptr<InputDevice> _inputDevice { std::make_shared<InputDevice>(_system) };
|
||||||
|
|
||||||
|
bool _eyeTrackingEnabled{ false };
|
||||||
|
|
||||||
#ifdef VIVE_PRO_EYE
|
#ifdef VIVE_PRO_EYE
|
||||||
bool _viveProEye { false };
|
bool _viveProEye { false };
|
||||||
std::shared_ptr<ViveProEyeReadThread> _viveProEyeReadThread;
|
std::shared_ptr<ViveProEyeReadThread> _viveProEyeReadThread;
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
ui = new AppUi({
|
ui = new AppUi({
|
||||||
buttonName: "EXPLORE",
|
buttonName: "EXPLORE",
|
||||||
home: Script.resolvePath("explore.html"),
|
home: Script.resolvePath("explore.html"),
|
||||||
graphicsDirectory: scriptDir
|
graphicsDirectory: scriptDir,
|
||||||
|
sortOrder: 8
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue