Center Marker/ Chaperone Refactor/ IVROverlay/IVRSettings wrappers PT 1/? (#438)
* changed click noises to internal sounds * udpated to ovr 1.11.11 * in prog added prototypes * began wrapper for IVRSettings * added getters for chaperone colors * added setters for chaperone color * fixed type conversion issue * fixed linking issue, added additional settings chaperone page * adjusted chaperone page qml * added color chaperone UI * refactor in prog * updated ivrsettings wrapper, refactor in prog * refactor in prog * collision bound style add * refactor * cleaned up error logging * fixed fade distance remember bug * fixed sounds * fixed brightness opacity bug setting to 0 when 0 * fixed sounds * added wrapper for removing keys * refactored reset * added chaperone Styles to UI * added chaperone floor always on * fixed copy/paste error * adjsuted ui chaperone color slider * started adding chaperone floor marker * fixeed naming error overlay * finalized chaperone Ideas, added chaperone markers * began ivroverlay wrapper * center marker fully implemented * added function prototypes for new settings * added setting, and updated ui for New Center Marker Overlay * adjsuted sound effect volume and formatting for chaperonecolorbox * adjusted volume back * fixed various issues aroudn new overlay * removed artifact comment * cleaned up settings wrapper * cleaned up chaperone tab controller for namespace changes * removed ide comment issue * cleanup overlay wrapper * cleaned up tab/space changed file name * renamed files * fixed include statements * updated namespace in chaperonetabcontroller * fixed tab/space issues * re-activated boundbasisheight * fixed bulgarian case * changed chaperone warnings to only work in roomscale * fix capitilization * fixed tracking universe update * direct text input change for brightness * qml fixes * fixed qml format issues * fixed sound issue w/ sliders * fixed super truely * Add SDL libraries to CircleCI * Remove -tidy from circleCI config * flushed out error messages in overlaywrapper * removed hungarian notation * added get/set string to ovrsettings wrapper * misc cleanup * add reset orientation btn and new center marker to chaperone * ui adjustments * changed alarm audio * adjusted sound effect volume slightly lower * updated for 5.1.0 release Co-authored-by: Vasily <vautkin@teknik.io>
@@ -66,6 +66,9 @@ jobs:
|
||||
- run:
|
||||
name: Install bear/clang-tidy
|
||||
command: sudo apt-get install bear clang-tidy -y
|
||||
- run:
|
||||
name: Install SDL libs
|
||||
command: sudo apt-get install libsdl2-2.0-0 -y
|
||||
- run:
|
||||
name: Set up qtchooser
|
||||
command: qtchooser -install opt-qt512 /opt/qt512/bin/qmake
|
||||
|
||||
@@ -1 +1 @@
|
||||
5.0.2-dev
|
||||
5.1.0-release
|
||||
@@ -8,16 +8,24 @@ RESOURCES += src/res/resources.qrc
|
||||
|
||||
DISTFILES += \
|
||||
src/res/sounds/alarm01.wav \
|
||||
src/res/sounds/click.wav \
|
||||
src/res/sounds/focus.wav \
|
||||
src/res/img/audio/microphone/ptt_notification.png \
|
||||
src/res/img/audio/microphone/ptt_notification.svg \
|
||||
src/res/img/battery/* \
|
||||
src/res/img/icons/* \
|
||||
src/res/img/video/* \
|
||||
src/res/img/chaperone/* \
|
||||
src/res/qml/qmldir \
|
||||
src/res/qml/audio_page/* \
|
||||
src/res/qml/ChaperonePage.qml \
|
||||
src/res/qml/ChaperoneWarningsPage.qml \
|
||||
src/res/qml/chaperone_page/* \
|
||||
src/res/qml/chaperone_page/change_orientation/* \
|
||||
src/res/qml/chaperone_page/chaperone_additional/* \
|
||||
src/res/qml/chaperone_page/chaperone_additional/chaperoneboundscolor/* \
|
||||
src/res/qml/chaperone_page/chaperone_additional/chaperonetype/* \
|
||||
src/res/qml/chaperone_page/chaperone_additional/chaperonemisc/* \
|
||||
src/res/qml/FixFloorPage.qml \
|
||||
src/res/qml/PlayspacePage.qml \
|
||||
src/res/qml/motion_page/* \
|
||||
@@ -47,10 +55,10 @@ DISTFILES += \
|
||||
src/res/qml/video_page/profiles/* \
|
||||
src/res/qml/video_page/dialogboxes/* \
|
||||
src/res/qml/video_page/overlaycolorbright/* \
|
||||
src/res/qml/rotation_page/* \
|
||||
src/res/qml/rotation_page/redirected/* \
|
||||
src/res/qml/rotation_page/snap_turn/* \
|
||||
src/res/qml/rotation_page/space_turn/* \
|
||||
src/res/qml/rotation_page/* \
|
||||
src/res/qml/rotation_page/redirected/* \
|
||||
src/res/qml/rotation_page/snap_turn/* \
|
||||
src/res/qml/rotation_page/space_turn/* \
|
||||
src/res/qml/common/*
|
||||
|
||||
win32:RC_ICONS += src/res/img/icons/advicon256px.ico
|
||||
|
||||
@@ -9,10 +9,12 @@ SOURCES += src/main.cpp\
|
||||
src/tabcontrollers/SteamVRTabController.cpp \
|
||||
src/tabcontrollers/UtilitiesTabController.cpp \
|
||||
src/tabcontrollers/VideoTabController.cpp \
|
||||
src/tabcontrollers/RotationTabController.cpp\
|
||||
src/tabcontrollers/RotationTabController.cpp\
|
||||
src/utils/ChaperoneUtils.cpp \
|
||||
src/openvr/openvr_init.cpp \
|
||||
src/openvr/ivrinput.cpp \
|
||||
src/openvr/ovr_settings_wrapper.cpp \
|
||||
src/openvr/ovr_overlay_wrapper.cpp \
|
||||
src/utils/setup.cpp \
|
||||
src/utils/paths.cpp \
|
||||
src/utils/FrameRateUtils.cpp \
|
||||
@@ -34,7 +36,7 @@ HEADERS += src/overlaycontroller.h \
|
||||
src/tabcontrollers/UtilitiesTabController.h \
|
||||
src/tabcontrollers/VideoTabController.h \
|
||||
src/tabcontrollers/audiomanager/AudioManager.h \
|
||||
src/tabcontrollers/RotationTabController.h\
|
||||
src/tabcontrollers/RotationTabController.h\
|
||||
src/keyboard_input/keyboard_input.h \
|
||||
src/media_keys/media_keys.h \
|
||||
src/utils/Matrix.h \
|
||||
@@ -46,6 +48,8 @@ HEADERS += src/overlaycontroller.h \
|
||||
src/openvr/ivrinput_action_set.h \
|
||||
src/openvr/ivrinput_input_source.h \
|
||||
src/openvr/ivrinput.h \
|
||||
src/openvr/ovr_settings_wrapper.h \
|
||||
src/openvr/ovr_overlay_wrapper.h \
|
||||
src/utils/setup.h \
|
||||
src/utils/paths.h \
|
||||
src/utils/FrameRateUtils.h \
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
#include "ovr_overlay_wrapper.h"
|
||||
|
||||
namespace ovr_overlay_wrapper
|
||||
{
|
||||
OverlayError createOverlay( const std::string overlayKey,
|
||||
const std::string overlayName,
|
||||
vr::VROverlayHandle_t* overlayHandle,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->CreateOverlay(
|
||||
overlayKey.c_str(), overlayName.c_str(), overlayHandle );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Could not create overlay: " << overlayName
|
||||
<< "because "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError setOverlayColor( vr::VROverlayHandle_t overlayHandle,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError
|
||||
= vr::VROverlay()->SetOverlayColor( overlayHandle, red, green, blue );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error setting Overlay Color For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError setOverlayAlpha( vr::VROverlayHandle_t overlayHandle,
|
||||
float alpha,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError
|
||||
= vr::VROverlay()->SetOverlayAlpha( overlayHandle, alpha );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error setting Overlay Alpha For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError setOverlayWidthInMeters( vr::VROverlayHandle_t overlayHandle,
|
||||
float widthInMeters,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->SetOverlayWidthInMeters(
|
||||
overlayHandle, widthInMeters );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error setting overlay width For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError setOverlayFromFile( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string fileName,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
{
|
||||
const auto overlayPath = paths::binaryDirectoryFindFile( fileName );
|
||||
if ( overlayPath.has_value() )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->SetOverlayFromFile(
|
||||
overlayHandle, overlayPath->c_str() );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR )
|
||||
<< "Error setting Overlay from file For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "File not Found: " << fileName << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError showOverlay( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->ShowOverlay( overlayHandle );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error showing overlay For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError hideOverlay( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->HideOverlay( overlayHandle );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error hiding overlay For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
OverlayError setOverlayTransformAbsolute(
|
||||
vr::VROverlayHandle_t overlayHandle,
|
||||
vr::ETrackingUniverseOrigin trackingOrigin,
|
||||
const vr::HmdMatrix34_t* trackingOriginToOverlayTransform,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::VROverlayError oError = vr::VROverlay()->SetOverlayTransformAbsolute(
|
||||
overlayHandle, trackingOrigin, trackingOriginToOverlayTransform );
|
||||
if ( oError == vr::VROverlayError_None )
|
||||
{
|
||||
return OverlayError::NoError;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Error setting Overlay Position For "
|
||||
<< getOverlayKey( overlayHandle ) << " with error: "
|
||||
<< vr::VROverlay()->GetOverlayErrorNameFromEnum( oError )
|
||||
<< " " << customErrorMsg;
|
||||
return OverlayError::UndefinedError;
|
||||
}
|
||||
}
|
||||
|
||||
std::string getOverlayKey( vr::VROverlayHandle_t overlayHandle )
|
||||
{
|
||||
// max size as of ovr 1.11.11 128 bytes
|
||||
const uint32_t bufferMax = vr::k_unVROverlayMaxKeyLength;
|
||||
char cStringOut[bufferMax];
|
||||
vr::EVROverlayError oErrorOut;
|
||||
vr::VROverlay()->GetOverlayKey(
|
||||
overlayHandle, cStringOut, bufferMax, &oErrorOut );
|
||||
std::string output = cStringOut;
|
||||
if ( oErrorOut == vr::VROverlayError_None )
|
||||
{
|
||||
return output;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string errorName
|
||||
= vr::VROverlay()->GetOverlayErrorNameFromEnum( oErrorOut );
|
||||
return ( "can't get name:" + errorName );
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ovr_overlay_wrapper
|
||||
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
|
||||
#include <openvr.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <easylogging++.h>
|
||||
#include <utility>
|
||||
#include <string>
|
||||
#include "../utils/paths.h"
|
||||
|
||||
/* Wrapper For OpenVR's IVR settings class, allows us to do our error logging
|
||||
* while also minimizing code
|
||||
*
|
||||
*/
|
||||
namespace ovr_overlay_wrapper
|
||||
{
|
||||
// might make sense to mirror ovr's errors exactly, but for now this is more
|
||||
// than sufficient
|
||||
enum class OverlayError
|
||||
{
|
||||
NoError,
|
||||
UndefinedError,
|
||||
|
||||
};
|
||||
|
||||
OverlayError createOverlay( const std::string overlayKey,
|
||||
const std::string overlayName,
|
||||
vr::VROverlayHandle_t* overlayHandle,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
OverlayError setOverlayColor( vr::VROverlayHandle_t overlayHandle,
|
||||
float red,
|
||||
float green,
|
||||
float blue,
|
||||
std::string customErrorMsg = "" );
|
||||
OverlayError setOverlayAlpha( vr::VROverlayHandle_t overlayHandle,
|
||||
float alpha,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
OverlayError setOverlayWidthInMeters( vr::VROverlayHandle_t overlayHandle,
|
||||
float widthInMeters,
|
||||
std::string customErrorMsg = "" );
|
||||
OverlayError setOverlayFromFile( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string fileName,
|
||||
std::string customErrorMsg = "" );
|
||||
OverlayError showOverlay( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string customErrorMsg = "" );
|
||||
OverlayError hideOverlay( vr::VROverlayHandle_t overlayHandle,
|
||||
std::string customErrorMsg = "" );
|
||||
OverlayError setOverlayTransformAbsolute(
|
||||
vr::VROverlayHandle_t overlayHandle,
|
||||
vr::ETrackingUniverseOrigin trackingOrigin,
|
||||
const vr::HmdMatrix34_t* trackingOriginToOverlayTransform,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
std::string getOverlayKey( vr::VROverlayHandle_t overlayHandle );
|
||||
|
||||
} // namespace ovr_overlay_wrapper
|
||||
@@ -0,0 +1,148 @@
|
||||
#include "ovr_settings_wrapper.h"
|
||||
|
||||
namespace ovr_settings_wrapper
|
||||
{
|
||||
SettingsError handleErrors( std::string settingsKey,
|
||||
vr::EVRSettingsError error,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
if ( error != vr::VRSettingsError_None )
|
||||
{
|
||||
LOG( ERROR ) << "Could not access \"" << settingsKey << "\" setting: "
|
||||
<< vr::VRSettings()->GetSettingsErrorNameFromEnum( error )
|
||||
<< " " << customErrorMsg;
|
||||
|
||||
return SettingsError::UndefinedError;
|
||||
}
|
||||
return SettingsError::NoError;
|
||||
}
|
||||
|
||||
std::pair<SettingsError, bool> getBool( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg )
|
||||
|
||||
{
|
||||
bool value;
|
||||
vr::EVRSettingsError error;
|
||||
value = vr::VRSettings()->GetBool(
|
||||
section.c_str(), settingsKey.c_str(), &error );
|
||||
SettingsError e = handleErrors( settingsKey, error, customErrorMsg );
|
||||
std::pair<SettingsError, bool> p( e, value );
|
||||
return p;
|
||||
}
|
||||
|
||||
std::pair<SettingsError, int> getInt32( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg )
|
||||
|
||||
{
|
||||
int value;
|
||||
vr::EVRSettingsError error;
|
||||
value = static_cast<int>( vr::VRSettings()->GetInt32(
|
||||
section.c_str(), settingsKey.c_str(), &error ) );
|
||||
SettingsError e = handleErrors( settingsKey, error, customErrorMsg );
|
||||
std::pair<SettingsError, int> p( e, value );
|
||||
return p;
|
||||
}
|
||||
|
||||
std::pair<SettingsError, float> getFloat( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg )
|
||||
|
||||
{
|
||||
float value;
|
||||
vr::EVRSettingsError error;
|
||||
value = vr::VRSettings()->GetFloat(
|
||||
section.c_str(), settingsKey.c_str(), &error );
|
||||
handleErrors( settingsKey, error, customErrorMsg );
|
||||
SettingsError e = handleErrors( settingsKey, error, customErrorMsg );
|
||||
std::pair<SettingsError, float> p( e, value );
|
||||
return p;
|
||||
}
|
||||
|
||||
std::pair<SettingsError, std::string> getString( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg )
|
||||
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
// This appears to be correct value as set in CVRSettingHelper as of
|
||||
// ovr 1.11.11
|
||||
const uint32_t bufferMax = 4096;
|
||||
char cStringOut[bufferMax];
|
||||
|
||||
vr::VRSettings()->GetString(
|
||||
section.c_str(), settingsKey.c_str(), cStringOut, bufferMax, &error );
|
||||
handleErrors( settingsKey, error, customErrorMsg );
|
||||
std::string value = cStringOut;
|
||||
SettingsError e = handleErrors( settingsKey, error, customErrorMsg );
|
||||
std::pair<SettingsError, std::string> p( e, value );
|
||||
return p;
|
||||
}
|
||||
|
||||
// Setters
|
||||
|
||||
SettingsError setBool( std::string section,
|
||||
std::string settingsKey,
|
||||
bool value,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->SetBool(
|
||||
section.c_str(), settingsKey.c_str(), value, &error );
|
||||
return handleErrors( settingsKey, error, customErrorMsg );
|
||||
}
|
||||
|
||||
SettingsError setInt32( std::string section,
|
||||
std::string settingsKey,
|
||||
int value,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->SetInt32( section.c_str(),
|
||||
settingsKey.c_str(),
|
||||
static_cast<int32_t>( value ),
|
||||
&error );
|
||||
return handleErrors( settingsKey, error, customErrorMsg );
|
||||
}
|
||||
|
||||
SettingsError setFloat( std::string section,
|
||||
std::string settingsKey,
|
||||
float value,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->SetFloat(
|
||||
section.c_str(), settingsKey.c_str(), value, &error );
|
||||
return handleErrors( settingsKey, error, customErrorMsg );
|
||||
}
|
||||
|
||||
SettingsError setString( std::string section,
|
||||
std::string settingsKey,
|
||||
char* value,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->SetString(
|
||||
section.c_str(), settingsKey.c_str(), value, &error );
|
||||
return handleErrors( settingsKey, error, customErrorMsg );
|
||||
}
|
||||
|
||||
SettingsError removeSection( std::string section, std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->RemoveSection( section.c_str(), &error );
|
||||
return handleErrors( "section", error, customErrorMsg );
|
||||
}
|
||||
|
||||
SettingsError removeKeyInSection( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg )
|
||||
{
|
||||
vr::EVRSettingsError error;
|
||||
vr::VRSettings()->RemoveKeyInSection(
|
||||
section.c_str(), settingsKey.c_str(), &error );
|
||||
return handleErrors( settingsKey, error, customErrorMsg );
|
||||
}
|
||||
|
||||
} // namespace ovr_settings_wrapper
|
||||
@@ -0,0 +1,66 @@
|
||||
#pragma once
|
||||
|
||||
#include <openvr.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <easylogging++.h>
|
||||
#include <utility>
|
||||
|
||||
/* Wrapper For OpenVR's IVR settings class, allows us to do our error logging
|
||||
* while also minimizing code
|
||||
*
|
||||
*/
|
||||
namespace ovr_settings_wrapper
|
||||
{
|
||||
// might make sense to mirror ovr's errors exactly, but for now this is more
|
||||
// than sufficient
|
||||
enum class SettingsError
|
||||
{
|
||||
NoError,
|
||||
UndefinedError,
|
||||
|
||||
};
|
||||
|
||||
std::pair<SettingsError, bool> getBool( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
std::pair<SettingsError, int> getInt32( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
std::pair<SettingsError, float> getFloat( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg = "" );
|
||||
std::pair<SettingsError, std::string> getString( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg
|
||||
= "" );
|
||||
|
||||
SettingsError setBool( std::string section,
|
||||
std::string settingsKey,
|
||||
bool value,
|
||||
std::string customErrorMsg = "" );
|
||||
SettingsError setInt32( std::string section,
|
||||
std::string settingsKey,
|
||||
int value,
|
||||
std::string customErrorMsg = "" );
|
||||
SettingsError setFloat( std::string section,
|
||||
std::string settingsKey,
|
||||
float value,
|
||||
std::string customErrorMsg = "" );
|
||||
SettingsError setString( std::string section,
|
||||
std::string settingsKey,
|
||||
char* value,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
SettingsError removeSection( std::string section,
|
||||
std::string customErrorMsg = "" );
|
||||
SettingsError removeKeyInSection( std::string section,
|
||||
std::string settingsKey,
|
||||
std::string customErrorMsg = "" );
|
||||
|
||||
SettingsError handleErrors( std::string settingsKey,
|
||||
vr::EVRSettingsError,
|
||||
std::string customErrorMsg );
|
||||
} // namespace ovr_settings_wrapper
|
||||
@@ -69,35 +69,35 @@ OverlayController::OverlayController( bool desktopMode,
|
||||
m_runtimePathUrl = QUrl::fromLocalFile( tempRuntimePath );
|
||||
LOG( INFO ) << "VR Runtime Path: " << m_runtimePathUrl.toLocalFile();
|
||||
|
||||
QString activationSoundFile = m_runtimePathUrl.toLocalFile().append(
|
||||
"/content/panorama/sounds/activation.wav" );
|
||||
QFileInfo activationSoundFileInfo( activationSoundFile );
|
||||
if ( activationSoundFileInfo.exists() && activationSoundFileInfo.isFile() )
|
||||
constexpr auto clickSoundURL = "res/sounds/click.wav";
|
||||
const auto activationSoundFile
|
||||
= paths::binaryDirectoryFindFile( clickSoundURL );
|
||||
|
||||
if ( activationSoundFile.has_value() )
|
||||
{
|
||||
m_activationSoundEffect.setSource(
|
||||
QUrl::fromLocalFile( activationSoundFile ) );
|
||||
m_activationSoundEffect.setVolume( 1.0 );
|
||||
m_activationSoundEffect.setSource( QUrl::fromLocalFile(
|
||||
QString::fromStdString( ( *activationSoundFile ) ) ) );
|
||||
m_activationSoundEffect.setVolume( 0.7 );
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Could not find activation sound file "
|
||||
<< activationSoundFile;
|
||||
<< clickSoundURL;
|
||||
}
|
||||
constexpr auto focusChangedSoundURL = "res/sounds/focus.wav";
|
||||
const auto focusChangedSoundFile
|
||||
= paths::binaryDirectoryFindFile( focusChangedSoundURL );
|
||||
|
||||
QString focusChangedSoundFile = m_runtimePathUrl.toLocalFile().append(
|
||||
"/content/panorama/sounds/focus_change.wav" );
|
||||
QFileInfo focusChangedSoundFileInfo( focusChangedSoundFile );
|
||||
if ( focusChangedSoundFileInfo.exists()
|
||||
&& focusChangedSoundFileInfo.isFile() )
|
||||
if ( focusChangedSoundFile.has_value() )
|
||||
{
|
||||
m_focusChangedSoundEffect.setSource(
|
||||
QUrl::fromLocalFile( focusChangedSoundFile ) );
|
||||
m_focusChangedSoundEffect.setVolume( 1.0 );
|
||||
m_focusChangedSoundEffect.setSource( QUrl::fromLocalFile(
|
||||
QString::fromStdString( ( *focusChangedSoundFile ) ) ) );
|
||||
m_focusChangedSoundEffect.setVolume( 0.7 );
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG( ERROR ) << "Could not find focus changed sound file "
|
||||
<< focusChangedSoundFile;
|
||||
LOG( ERROR ) << "Could not find focus Changed sound file "
|
||||
<< focusChangedSoundURL;
|
||||
}
|
||||
|
||||
constexpr auto alarmFileName = "res/sounds/alarm01.wav";
|
||||
@@ -1144,13 +1144,13 @@ void OverlayController::mainEventLoop()
|
||||
rightSpeed
|
||||
= std::sqrt( vel[0] * vel[0] + vel[1] * vel[1] + vel[2] * vel[2] );
|
||||
}
|
||||
auto universe = vr::VRCompositor()->GetTrackingSpace();
|
||||
|
||||
m_moveCenterTabController.eventLoopTick(
|
||||
vr::VRCompositor()->GetTrackingSpace(), devicePoses );
|
||||
m_moveCenterTabController.eventLoopTick( universe, devicePoses );
|
||||
m_utilitiesTabController.eventLoopTick();
|
||||
m_statisticsTabController.eventLoopTick(
|
||||
devicePoses, leftSpeed, rightSpeed );
|
||||
m_chaperoneTabController.eventLoopTick( devicePoses );
|
||||
m_chaperoneTabController.eventLoopTick( universe, devicePoses );
|
||||
m_audioTabController.eventLoopTick();
|
||||
m_rotationTabController.eventLoopTick( devicePoses );
|
||||
|
||||
@@ -1160,6 +1160,7 @@ void OverlayController::mainEventLoop()
|
||||
m_steamVRTabController.dashboardLoopTick();
|
||||
m_fixFloorTabController.dashboardLoopTick( devicePoses );
|
||||
m_videoTabController.dashboardLoopTick();
|
||||
m_chaperoneTabController.dashboardLoopTick();
|
||||
}
|
||||
|
||||
if ( m_ulOverlayThumbnailHandle != vr::k_ulOverlayHandleInvalid )
|
||||
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
@@ -443,7 +443,7 @@ MyStackViewPage {
|
||||
text: "Center Marker"
|
||||
Layout.fillWidth: false
|
||||
onCheckedChanged: {
|
||||
ChaperoneTabController.setCenterMarker(this.checked, false)
|
||||
ChaperoneTabController.setCenterMarkerNew(this.checked, false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -485,16 +485,31 @@ MyStackViewPage {
|
||||
Item { Layout.fillWidth: true }
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
MyPushButton {
|
||||
id: chaperoneWarningsConfigButton
|
||||
text: "Proximity Warning Settings"
|
||||
Layout.preferredWidth: 350
|
||||
onClicked: {
|
||||
MyResources.playFocusChangedSound()
|
||||
mainView.push(chaperoneWarningsPage)
|
||||
}
|
||||
}
|
||||
Item {Layout.fillWidth: true}
|
||||
|
||||
MyPushButton {
|
||||
id: chaperoneWarningsConfigButton
|
||||
text: "Proximity Warning Settings"
|
||||
Layout.preferredWidth: 350
|
||||
onClicked: {
|
||||
MyResources.playFocusChangedSound()
|
||||
mainView.push(chaperoneWarningsPage)
|
||||
MyPushButton {
|
||||
id: chaperoneAdditionalButton
|
||||
text: "Additional Chaperone Settings"
|
||||
Layout.preferredWidth: 400
|
||||
|
||||
onClicked: {
|
||||
MyResources.playFocusChangedSound()
|
||||
mainView.push(chaperoneAdditionalPage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ChangeOrientationGroupBox { }
|
||||
|
||||
|
||||
@@ -540,7 +555,7 @@ MyStackViewPage {
|
||||
chaperoneHeightSlider.value = h
|
||||
}
|
||||
chaperoneHeightText.text = h
|
||||
chaperoneCenterMarkerToggle.checked = ChaperoneTabController.centerMarker
|
||||
chaperoneCenterMarkerToggle.checked = ChaperoneTabController.centerMarkerNew
|
||||
chaperonePlaySpaceToggle.checked = ChaperoneTabController.playSpaceMarker
|
||||
chaperoneForceBoundsToggle.checked = ChaperoneTabController.forceBounds
|
||||
chaperoneDisableChaperone.checked = ChaperoneTabController.disableChaperone
|
||||
@@ -581,8 +596,8 @@ MyStackViewPage {
|
||||
chaperoneHeightText.text = h
|
||||
}
|
||||
|
||||
onCenterMarkerChanged: {
|
||||
chaperoneCenterMarkerToggle.checked = ChaperoneTabController.centerMarker
|
||||
onCenterMarkerNewChanged: {
|
||||
chaperoneCenterMarkerToggle.checked = ChaperoneTabController.centerMarkerNew
|
||||
}
|
||||
onPlaySpaceMarkerChanged: {
|
||||
chaperonePlaySpaceToggle.checked = ChaperoneTabController.playSpaceMarker
|
||||
|
||||
@@ -42,7 +42,7 @@ GroupBox {
|
||||
val = -180;
|
||||
}
|
||||
spaceRotationSlider.value = val
|
||||
spaceRotationText.text = val
|
||||
spaceRotationText.text = val.toFixed(2) + "°"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ GroupBox {
|
||||
Layout.fillWidth: true
|
||||
onValueChanged: {
|
||||
var val = this.value
|
||||
spaceRotationText.text = val
|
||||
spaceRotationText.text = val.toFixed(2) + "°"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ GroupBox {
|
||||
val = 180;
|
||||
}
|
||||
spaceRotationSlider.value = val
|
||||
spaceRotationText.text = val
|
||||
spaceRotationText.text = val.toFixed(2) + "°"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ GroupBox {
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
spaceRotationText.text = val + "°"
|
||||
spaceRotationText.text = val.toFixed(2) + "°"
|
||||
spaceRotationSlider.value = val
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Dialogs 1.2
|
||||
import ovras.advsettings 1.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
import "../../common"
|
||||
import "chaperoneboundscolor"
|
||||
import "chaperonetype"
|
||||
import "chaperonemisc"
|
||||
|
||||
MyStackViewPage {
|
||||
headerText: "Additional Chaperone Settings"
|
||||
content: ColumnLayout {
|
||||
spacing: 10
|
||||
|
||||
ChaperoneBoundsColorGroupBox{
|
||||
id: chaperoneBoundsColorGroupBox
|
||||
}
|
||||
ChaperoneTypeGroupBox{
|
||||
id:chaperoneTypeGroupBox
|
||||
}
|
||||
ChaperoneMiscGroupBox{
|
||||
id:chaperoneMiscGroupBox
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//TODO content
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import ovras.advsettings 1.0
|
||||
import "../../../common"
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
GroupBox {
|
||||
id: chaperoneBoundsColorGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Chaperone Color"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
RowLayout{
|
||||
|
||||
MyText {
|
||||
text: "Red:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 75
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: chaperoneColorRedSlider
|
||||
from: 0
|
||||
to: 255
|
||||
stepSize: 5
|
||||
value: 0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = (this.value).toFixed(0)
|
||||
colorRedText.text = val
|
||||
ChaperoneTabController.setChaperoneColorR(val, true)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorRedText
|
||||
text: "0"
|
||||
keyBoardUID: 320
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseInt(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0) {
|
||||
val = 0
|
||||
} else if (val > 255) {
|
||||
val = 255
|
||||
}
|
||||
ChaperoneTabController.setChaperoneColorR(val, true)
|
||||
chaperoneColorRedSlider.value = val
|
||||
}
|
||||
text = val
|
||||
}
|
||||
}
|
||||
|
||||
Item{
|
||||
Layout.preferredWidth: 200
|
||||
}
|
||||
MyText {
|
||||
text: "Green:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 75
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: chaperoneColorGreenSlider
|
||||
from: 0
|
||||
to: 255
|
||||
stepSize: 5
|
||||
value: 255
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = (this.value).toFixed(0)
|
||||
colorGreenText.text = val
|
||||
ChaperoneTabController.setChaperoneColorG(val, true)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorGreenText
|
||||
text: "255"
|
||||
keyBoardUID: 321
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseInt(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0) {
|
||||
val = 0
|
||||
} else if (val > 255) {
|
||||
val = 255
|
||||
}
|
||||
ChaperoneTabController.setChaperoneColorG(val, true)
|
||||
chaperoneColorGreenSlider.value = val
|
||||
}
|
||||
text = val
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
RowLayout{
|
||||
MyText {
|
||||
text: "Blue:"
|
||||
horizontalAlignment: Text.AlignRight
|
||||
Layout.preferredWidth: 75
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: chaperoneColorBlueSlider
|
||||
from: 0
|
||||
to: 255
|
||||
stepSize: 5
|
||||
value: 255
|
||||
Layout.preferredWidth: 250
|
||||
onPositionChanged: {
|
||||
var val = (this.value).toFixed(0)
|
||||
colorBlueText.text = val
|
||||
ChaperoneTabController.setChaperoneColorB(val, true)
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: colorBlueText
|
||||
text: "255"
|
||||
keyBoardUID: 322
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseInt(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0) {
|
||||
val = 0
|
||||
} else if (val > 255) {
|
||||
val = 255
|
||||
}
|
||||
ChaperoneTabController.setChaperoneColorB(val, true)
|
||||
chaperoneColorBlueSlider.value = val
|
||||
}
|
||||
text = val
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Component.onCompleted: {
|
||||
// set up var here to prevent double call to c++ from qml
|
||||
var redValue = ChaperoneTabController.chaperoneColorR
|
||||
var greenValue = ChaperoneTabController.chaperoneColorG
|
||||
var blueValue = ChaperoneTabController.chaperoneColorB
|
||||
colorRedText.text = redValue
|
||||
colorGreenText.text = greenValue
|
||||
colorBlueText.text = blueValue
|
||||
chaperoneColorRedSlider.value = redValue
|
||||
chaperoneColorGreenSlider.value = greenValue
|
||||
chaperoneColorBlueSlider.value = blueValue
|
||||
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: ChaperoneTabController
|
||||
onChaperoneColorRChanged:{
|
||||
var redValue = ChaperoneTabController.chaperoneColorR
|
||||
colorRedText.text = redValue
|
||||
chaperoneColorRedSlider.value = redValue
|
||||
}
|
||||
onChaperoneColorGChanged:{
|
||||
var greenValue = ChaperoneTabController.chaperoneColorG
|
||||
colorGreenText.text = greenValue
|
||||
chaperoneColorGreenSlider.value = greenValue
|
||||
}
|
||||
onChaperoneColorBChanged:{
|
||||
var blueValue = ChaperoneTabController.chaperoneColorB
|
||||
colorBlueText.text = blueValue
|
||||
chaperoneColorBlueSlider.value = blueValue
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import ovras.advsettings 1.0
|
||||
import "../../../common"
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
GroupBox {
|
||||
id: chaperoneMiscGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Misc:"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 16
|
||||
|
||||
MyToggleButton {
|
||||
id: chaperoneFloorToggleBtn
|
||||
text: "Floor Bounds Always On"
|
||||
Layout.preferredWidth: 375
|
||||
onCheckedChanged: {
|
||||
ChaperoneTabController.setChaperoneFloorToggle(this.checked, false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MyToggleButton {
|
||||
id: legacyCenterMarkerbtn
|
||||
text: "Legacy Center Marker"
|
||||
Layout.preferredWidth: 375
|
||||
onCheckedChanged: {
|
||||
ChaperoneTabController.setCenterMarker(this.checked, false)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton{
|
||||
id:btnResetOrientation
|
||||
text: "Reset Turn Counter"
|
||||
onClicked: {
|
||||
StatisticsTabController.statsRotationResetClicked()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
chaperoneFloorToggleBtn.checked = ChaperoneTabController.chaperoneFloorToggle
|
||||
legacyCenterMarkerbtn.checked = ChaperoneTabController.centerMarker
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: ChaperoneTabController
|
||||
onChaperoneFloorToggleChanged:{
|
||||
chaperoneFloorToggleBtn.checked = ChaperoneTabController.chaperoneFloorToggle
|
||||
}
|
||||
onCenterMarkerChanged:{
|
||||
legacyCenterMarkerbtn.checked = ChaperoneTabController.centermarker
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import ovras.advsettings 1.0
|
||||
import "../../../common"
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
GroupBox {
|
||||
id: chaperoneTypeGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Chaperone Style"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
RowLayout{
|
||||
ButtonGroup { id: chaperoneTypeExclGroup
|
||||
exclusive: true}
|
||||
MyRadioButton {
|
||||
id: denseRadio
|
||||
text: qsTr("Dense")
|
||||
ButtonGroup.group: chaperoneTypeExclGroup
|
||||
Layout.preferredWidth: 200
|
||||
onCheckedChanged: {
|
||||
if(checked){
|
||||
MyResources.playActivationSound()
|
||||
ChaperoneTabController.setCollisionBoundStyle(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
MyRadioButton {
|
||||
id: medRadio
|
||||
text: qsTr("Med")
|
||||
ButtonGroup.group: chaperoneTypeExclGroup
|
||||
Layout.preferredWidth: 200
|
||||
onCheckedChanged: {
|
||||
if(checked){
|
||||
MyResources.playActivationSound()
|
||||
ChaperoneTabController.setCollisionBoundStyle(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
MyRadioButton {
|
||||
id: squaresRadio
|
||||
text: qsTr("Squares")
|
||||
ButtonGroup.group: chaperoneTypeExclGroup
|
||||
Layout.preferredWidth: 200
|
||||
onCheckedChanged: {
|
||||
if(checked){
|
||||
MyResources.playActivationSound()
|
||||
ChaperoneTabController.setCollisionBoundStyle(2)
|
||||
}
|
||||
}
|
||||
}
|
||||
MyRadioButton {
|
||||
id: sparseRadio
|
||||
text: qsTr("Sparse")
|
||||
ButtonGroup.group: chaperoneTypeExclGroup
|
||||
Layout.preferredWidth: 200
|
||||
onCheckedChanged: {
|
||||
if(checked){
|
||||
MyResources.playActivationSound()
|
||||
ChaperoneTabController.setCollisionBoundStyle(3)
|
||||
}
|
||||
}
|
||||
}
|
||||
MyRadioButton {
|
||||
id: floorRadio
|
||||
text: qsTr("Floor Only")
|
||||
ButtonGroup.group: chaperoneTypeExclGroup
|
||||
Layout.preferredWidth: 200
|
||||
onCheckedChanged: {
|
||||
if(checked){
|
||||
MyResources.playActivationSound()
|
||||
ChaperoneTabController.setCollisionBoundStyle(4)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Component.onCompleted: {
|
||||
// set up var here to prevent double call to c++ from qml
|
||||
var collisiontype = ChaperoneTabController.collisionBoundStyle
|
||||
switch(collisiontype){
|
||||
case 0: denseRadio.checked = true; break;
|
||||
case 1: medRadio.checked = true; break;
|
||||
case 2: squaresRadio.checked = true; break;
|
||||
case 3: sparseRadio.checked = true; break
|
||||
case 4: floorRadio.checked = true; break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: ChaperoneTabController
|
||||
onCollisionBoundStyleChanged:{
|
||||
var collisiontype = ChaperoneTabController.collisionBoundStyle
|
||||
switch(collisiontype){
|
||||
case 0: denseRadio.checked = true; break;
|
||||
case 1: medRadio.checked = true; break;
|
||||
case 2: squaresRadio.checked = true; break;
|
||||
case 3: sparseRadio.checked = true; break
|
||||
case 4: floorRadio.checked = true; break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
RadioButton {
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
MyResources.playActivationSound()
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,7 @@ Slider {
|
||||
|
||||
onValueChanged: {
|
||||
if (activeFocus) {
|
||||
MyResources.playActivationSound()
|
||||
//MyResources.playActivationSound()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import "../video_page"
|
||||
import "../chaperone_page"
|
||||
import "../steamvr_page"
|
||||
import "../rotation_page"
|
||||
import "../chaperone_page/chaperone_additional"
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
@@ -35,6 +36,11 @@ Rectangle {
|
||||
visible: false
|
||||
}
|
||||
|
||||
property ChaperoneAdditionalPage chaperoneAdditionalPage: ChaperoneAdditionalPage{
|
||||
stackView: mainView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property PlayspacePage playspacePage: PlayspacePage {
|
||||
stackView: mainView
|
||||
visible: false
|
||||
|
||||
@@ -59,9 +59,6 @@ GroupBox {
|
||||
onPositionChanged: {
|
||||
var val = (this.value * 100)
|
||||
brightnessValueText.text = Math.round(val) + "%"
|
||||
}
|
||||
onValueChanged: {
|
||||
|
||||
VideoTabController.setBrightnessOpacityValue(value.toFixed(2), true)
|
||||
}
|
||||
}
|
||||
@@ -76,12 +73,13 @@ GroupBox {
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 10) {
|
||||
val = 10
|
||||
if (val < 3.0) {
|
||||
val = 3.0
|
||||
} else if (val > 100.0) {
|
||||
val = 100.0
|
||||
}
|
||||
var v = (val/100).toFixed(2)
|
||||
var v = (val/100)
|
||||
VideoTabController.setBrightnessOpacityValue(v.toFixed(2), true)
|
||||
brightnessSlider.value = v
|
||||
}
|
||||
text = Math.round(VideoTabController.brightnessOpacityValue * 100) + "%"
|
||||
@@ -91,7 +89,9 @@ GroupBox {
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
brightnessSlider.value = VideoTabController.brightnessOpacityValue
|
||||
var brightvalue = VideoTabController.brightnessOpacityValue
|
||||
brightnessSlider.value = brightvalue
|
||||
brightnessValueText.text = Math.round(brightvalue*100)+ "%"
|
||||
brightnessToggle.checked = VideoTabController.brightnessEnabled
|
||||
}
|
||||
|
||||
@@ -99,7 +99,9 @@ GroupBox {
|
||||
target: VideoTabController
|
||||
|
||||
onBrightnessOpacityValueChanged: {
|
||||
brightnessSlider.value = VideoTabController.brightnessOpacityValue
|
||||
var brightvalue = VideoTabController.brightnessOpacityValue
|
||||
brightnessSlider.value = brightvalue
|
||||
brightnessValueText.text = Math.round(brightvalue*100)+ "%"
|
||||
}
|
||||
onBrightnessEnabledChanged: {
|
||||
brightnessToggle.checked = VideoTabController.brightnessEnabled
|
||||
|
||||
@@ -370,6 +370,11 @@ private:
|
||||
SettingCategory::Chaperone,
|
||||
QtInfo{ "disableChaperone" },
|
||||
false },
|
||||
BoolSettingValue{ BoolSetting::CHAPERONE_centerMarkerNew,
|
||||
SettingCategory::Chaperone,
|
||||
QtInfo{ "centerMarkerNew" },
|
||||
false },
|
||||
|
||||
BoolSettingValue{ BoolSetting::ROTATION_autoturnEnabled,
|
||||
SettingCategory::Rotation,
|
||||
QtInfo{ "autoturnEnabled" },
|
||||
|
||||
@@ -49,6 +49,7 @@ enum class BoolSetting
|
||||
CHAPERONE_chaperoneAlarmSoundAdjustVolume,
|
||||
CHAPERONE_chaperoneShowDashboardEnabled,
|
||||
CHAPERONE_disableChaperone,
|
||||
CHAPERONE_centerMarkerNew,
|
||||
|
||||
ROTATION_autoturnEnabled,
|
||||
ROTATION_autoturnUseCornerAngle,
|
||||
|
||||
@@ -11,9 +11,13 @@
|
||||
#include "../utils/ChaperoneUtils.h"
|
||||
#include "../settings/settings_object.h"
|
||||
#include "MoveCenterTabController.h"
|
||||
#include "../openvr/ovr_overlay_wrapper.h"
|
||||
#include "../openvr/ovr_settings_wrapper.h"
|
||||
#include <utility>
|
||||
|
||||
class QQuickWindow;
|
||||
// application namespace
|
||||
|
||||
namespace advsettings
|
||||
{
|
||||
// forward declaration
|
||||
@@ -65,6 +69,7 @@ struct ChaperoneProfile : settings::ISettingsObject
|
||||
float chaperoneAlarmSoundDistance = 0.0f;
|
||||
bool enableChaperoneShowDashboard = false;
|
||||
float chaperoneShowDashboardDistance = 0.0f;
|
||||
bool centerMarkerNew = false;
|
||||
|
||||
virtual settings::SettingsObjectData saveSettings() const override
|
||||
{
|
||||
@@ -139,6 +144,7 @@ struct ChaperoneProfile : settings::ISettingsObject
|
||||
o.addValue( static_cast<double>( chaperoneAlarmSoundDistance ) );
|
||||
o.addValue( enableChaperoneShowDashboard );
|
||||
o.addValue( static_cast<double>( chaperoneShowDashboardDistance ) );
|
||||
o.addValue( centerMarkerNew );
|
||||
|
||||
return o;
|
||||
}
|
||||
@@ -230,6 +236,7 @@ struct ChaperoneProfile : settings::ISettingsObject
|
||||
enableChaperoneShowDashboard = obj.getNextValueOrDefault( false );
|
||||
chaperoneShowDashboardDistance
|
||||
= static_cast<float>( obj.getNextValueOrDefault( 0.0 ) );
|
||||
centerMarkerNew = obj.getNextValueOrDefault( false );
|
||||
}
|
||||
|
||||
virtual std::string settingsName() const override
|
||||
@@ -298,7 +305,20 @@ class ChaperoneTabController : public QObject
|
||||
float chaperoneShowDashboardDistance READ chaperoneShowDashboardDistance
|
||||
WRITE setChaperoneShowDashboardDistance NOTIFY
|
||||
chaperoneShowDashboardDistanceChanged )
|
||||
|
||||
Q_PROPERTY( int chaperoneColorR READ chaperoneColorR WRITE
|
||||
setChaperoneColorR NOTIFY chaperoneColorRChanged )
|
||||
Q_PROPERTY( int chaperoneColorG READ chaperoneColorG WRITE
|
||||
setChaperoneColorG NOTIFY chaperoneColorGChanged )
|
||||
Q_PROPERTY( int chaperoneColorB READ chaperoneColorB WRITE
|
||||
setChaperoneColorB NOTIFY chaperoneColorBChanged )
|
||||
Q_PROPERTY( int chaperoneColorA READ chaperoneColorA WRITE
|
||||
setChaperoneColorA NOTIFY chaperoneColorAChanged )
|
||||
Q_PROPERTY( int collisionBoundStyle READ collisionBoundStyle WRITE
|
||||
setCollisionBoundStyle NOTIFY collisionBoundStyleChanged )
|
||||
Q_PROPERTY( bool chaperoneFloorToggle READ chaperoneFloorToggle WRITE
|
||||
setChaperoneFloorToggle NOTIFY chaperoneFloorToggleChanged )
|
||||
Q_PROPERTY( bool centerMarkerNew READ centerMarkerNew WRITE
|
||||
setCenterMarkerNew NOTIFY centerMarkerNewChanged )
|
||||
private:
|
||||
OverlayController* parent;
|
||||
|
||||
@@ -329,6 +349,14 @@ private:
|
||||
bool m_leftHapticClickActivated = false;
|
||||
bool m_rightHapticClickActivated = false;
|
||||
|
||||
int m_chaperoneColorR = 0;
|
||||
int m_chaperoneColorG = 255;
|
||||
int m_chaperoneColorB = 255;
|
||||
|
||||
int m_collisionBoundStyle = 0;
|
||||
|
||||
bool m_chaperoneFloorToggle = false;
|
||||
|
||||
bool m_autosaveComplete = false;
|
||||
|
||||
int m_updateTicksChaperoneReload = 0;
|
||||
@@ -340,25 +368,53 @@ private:
|
||||
vr::VRInputValueHandle_t m_leftInputHandle;
|
||||
vr::VRInputValueHandle_t m_rightInputHandle;
|
||||
|
||||
vr::VROverlayHandle_t m_chaperoneFloorOverlayHandle
|
||||
= vr::k_ulOverlayHandleInvalid;
|
||||
|
||||
std::vector<ChaperoneProfile> chaperoneProfiles;
|
||||
|
||||
std::string m_floorMarkerFN = "/res/img/chaperone/centermark.png";
|
||||
void initFloorOverlay();
|
||||
void updateOverlay();
|
||||
void updateOverlayColor();
|
||||
void checkOverlayRotation();
|
||||
int m_rotationUpdateCounter = 0;
|
||||
int m_rotationCurrent = 0;
|
||||
bool m_overlayNeedsUpdate = false;
|
||||
|
||||
vr::ETrackingUniverseOrigin m_trackingUniverse
|
||||
= vr::TrackingUniverseRawAndUncalibrated;
|
||||
|
||||
public:
|
||||
~ChaperoneTabController();
|
||||
|
||||
void initStage1();
|
||||
void initStage2( OverlayController* parent );
|
||||
|
||||
void eventLoopTick( vr::TrackedDevicePose_t* devicePoses );
|
||||
void eventLoopTick( vr::ETrackingUniverseOrigin universe,
|
||||
vr::TrackedDevicePose_t* devicePoses );
|
||||
void dashboardLoopTick();
|
||||
void handleChaperoneWarnings( float distance );
|
||||
|
||||
float boundsVisibility() const;
|
||||
float fadeDistance() const;
|
||||
float height() const;
|
||||
bool centerMarker() const;
|
||||
bool playSpaceMarker() const;
|
||||
float fadeDistance();
|
||||
float height();
|
||||
bool centerMarker();
|
||||
bool playSpaceMarker();
|
||||
bool forceBounds() const;
|
||||
bool disableChaperone() const;
|
||||
|
||||
int chaperoneColorR();
|
||||
int chaperoneColorG();
|
||||
int chaperoneColorB();
|
||||
int chaperoneColorA() const;
|
||||
|
||||
bool centerMarkerNew();
|
||||
|
||||
bool chaperoneFloorToggle();
|
||||
|
||||
int collisionBoundStyle();
|
||||
|
||||
void setRightHapticActionHandle( vr::VRActionHandle_t handle );
|
||||
void setLeftHapticActionHandle( vr::VRActionHandle_t handle );
|
||||
void setRightInputHandle( vr::VRInputValueHandle_t handle );
|
||||
@@ -419,6 +475,18 @@ public slots:
|
||||
void setChaperoneShowDashboardEnabled( bool value, bool notify = true );
|
||||
void setChaperoneShowDashboardDistance( float value, bool notify = true );
|
||||
|
||||
void setChaperoneColorR( int value, bool notify = true );
|
||||
void setChaperoneColorG( int value, bool notify = true );
|
||||
void setChaperoneColorB( int value, bool notify = true );
|
||||
void setChaperoneColorA( int value, bool notify = true );
|
||||
|
||||
void setCenterMarkerNew( bool value, bool notify = true );
|
||||
|
||||
void setCollisionBoundStyle( int value,
|
||||
bool notify = true,
|
||||
bool isTemp = false );
|
||||
void setChaperoneFloorToggle( bool value, bool notify = true );
|
||||
|
||||
void flipOrientation( double degrees = 180 );
|
||||
void reloadFromDisk();
|
||||
|
||||
@@ -464,6 +532,16 @@ signals:
|
||||
void chaperoneShowDashboardEnabledChanged( bool value );
|
||||
void chaperoneShowDashboardDistanceChanged( float value );
|
||||
|
||||
void chaperoneColorRChanged( int value );
|
||||
void chaperoneColorGChanged( int value );
|
||||
void chaperoneColorBChanged( int value );
|
||||
void chaperoneColorAChanged( int value );
|
||||
|
||||
void collisionBoundStyleChanged( int value );
|
||||
|
||||
void chaperoneFloorToggleChanged( bool value );
|
||||
void centerMarkerNewChanged( bool value );
|
||||
|
||||
void chaperoneProfilesUpdated();
|
||||
};
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ void VideoTabController::setBrightnessOpacityValue( float percvalue,
|
||||
settings::setSetting( settings::DoubleSetting::VIDEO_brightnessOpacityValue,
|
||||
static_cast<double>( percvalue ) );
|
||||
|
||||
if ( realvalue >= 0.97f || realvalue <= 0.00f )
|
||||
if ( realvalue >= 0.9999f || realvalue < 0.00f )
|
||||
{
|
||||
LOG( WARNING ) << "alpha value is invalid setting to 1.0";
|
||||
settings::setSetting(
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
namespace vr
|
||||
{
|
||||
static const uint32_t k_nSteamVRVersionMajor = 1;
|
||||
static const uint32_t k_nSteamVRVersionMinor = 10;
|
||||
static const uint32_t k_nSteamVRVersionBuild = 30;
|
||||
static const uint32_t k_nSteamVRVersionMinor = 11;
|
||||
static const uint32_t k_nSteamVRVersionBuild = 11;
|
||||
} // namespace vr
|
||||
|
||||
// vrtypes.h
|
||||
@@ -746,7 +746,7 @@ enum EVREventType
|
||||
//VREvent_DashboardThumbSelected = 504, // Sent to the overlay manager - data is overlay - No longer sent
|
||||
VREvent_DashboardRequested = 505, // Sent to the overlay manager - data is overlay
|
||||
VREvent_ResetDashboard = 506, // Send to the overlay manager
|
||||
VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID
|
||||
//VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID -- no longer sent
|
||||
VREvent_ImageLoaded = 508, // Sent to overlays when a SetOverlayRaw or SetOverlayFromFile call finishes loading
|
||||
VREvent_ShowKeyboard = 509, // Sent to keyboard renderer in the dashboard to invoke it
|
||||
VREvent_HideKeyboard = 510, // Sent to keyboard renderer in the dashboard to hide it
|
||||
@@ -816,6 +816,8 @@ enum EVREventType
|
||||
VREvent_LastKnownSectionSettingChanged = 867,
|
||||
VREvent_DismissedWarningsSectionSettingChanged = 868,
|
||||
VREvent_GpuSpeedSectionSettingChanged = 869,
|
||||
VREvent_WindowsMRSectionSettingChanged = 870,
|
||||
VREvent_OtherSectionSettingChanged = 871,
|
||||
|
||||
VREvent_StatusUpdate = 900,
|
||||
|
||||
@@ -2736,6 +2738,10 @@ namespace vr
|
||||
static const char * const k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
|
||||
static const char * const k_pch_Null_DisplayFrequency_Float = "displayFrequency";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Windows MR keys
|
||||
static const char * const k_pch_WindowsMR_Section = "driver_holographic";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// user interface keys
|
||||
static const char * const k_pch_UserInterface_Section = "userinterface";
|
||||
@@ -2778,6 +2784,7 @@ namespace vr
|
||||
static const char * const k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
|
||||
static const char * const k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
|
||||
static const char * const k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
|
||||
static const char * const k_pch_CollisionBounds_WallHeight_Float = "CollisionBoundsWallHeight";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
|
||||
@@ -2813,6 +2820,8 @@ namespace vr
|
||||
static const char * const k_pch_audio_PlaybackMirrorDevice_String = "playbackMirrorDevice";
|
||||
static const char * const k_pch_audio_PlaybackMirrorDeviceName_String = "playbackMirrorDeviceName";
|
||||
static const char * const k_pch_audio_OldPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
|
||||
static const char * const k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirrorDevice";
|
||||
static const char * const k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
|
||||
static const char * const k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
|
||||
static const char * const k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
|
||||
|
||||
@@ -2831,7 +2840,6 @@ namespace vr
|
||||
static const char * const k_pch_Dashboard_Section = "dashboard";
|
||||
static const char * const k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
|
||||
static const char * const k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
|
||||
static const char * const k_pch_Dashboard_UseWebSettings = "useWebSettings";
|
||||
static const char * const k_pch_Dashboard_Position = "position";
|
||||
static const char * const k_pch_Dashboard_DesktopScale = "desktopScale";
|
||||
static const char * const k_pch_Dashboard_DashboardScale = "dashboardScale";
|
||||
@@ -3033,7 +3041,7 @@ public:
|
||||
/** Sets the Play Area in the working copy. */
|
||||
virtual void SetWorkingPlayAreaSize( float sizeX, float sizeZ ) = 0;
|
||||
|
||||
/** Sets the Collision Bounds in the working copy. */
|
||||
/** Sets the Collision Bounds in the working copy. Note: ceiling height is ignored. */
|
||||
virtual void SetWorkingCollisionBoundsInfo( VR_ARRAY_COUNT(unQuadsCount) HmdQuad_t *pQuadsBuffer, uint32_t unQuadsCount ) = 0;
|
||||
|
||||
/** Sets the Collision Bounds in the working copy. */
|
||||
@@ -4162,6 +4170,15 @@ enum EVRRenderModelError
|
||||
VRRenderModelError_InvalidTexture = 400,
|
||||
};
|
||||
|
||||
enum EVRRenderModelTextureFormat
|
||||
{
|
||||
VRRenderModelTextureFormat_RGBA8_SRGB = 0, // RGBA with 8 bits per channel per pixel. Data size is width * height * 4ub
|
||||
VRRenderModelTextureFormat_BC2,
|
||||
VRRenderModelTextureFormat_BC4,
|
||||
VRRenderModelTextureFormat_BC7,
|
||||
VRRenderModelTextureFormat_BC7_SRGB
|
||||
};
|
||||
|
||||
/** A single vertex in a render model */
|
||||
struct RenderModel_Vertex_t
|
||||
{
|
||||
@@ -4180,7 +4197,8 @@ struct RenderModel_Vertex_t
|
||||
struct RenderModel_TextureMap_t
|
||||
{
|
||||
uint16_t unWidth, unHeight; // width and height of the texture map in pixels
|
||||
const uint8_t *rubTextureMapData; // Map texture data. All textures are RGBA with 8 bits per channel per pixel. Data size is width * height * 4ub
|
||||
const uint8_t *rubTextureMapData; // Map texture data.
|
||||
EVRRenderModelTextureFormat format; // Refer to EVRRenderModelTextureFormat
|
||||
};
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
#pragma pack( pop )
|
||||
|
||||
@@ -4403,7 +4403,6 @@ public enum EVREventType
|
||||
VREvent_DashboardDeactivated = 503,
|
||||
VREvent_DashboardRequested = 505,
|
||||
VREvent_ResetDashboard = 506,
|
||||
VREvent_RenderToast = 507,
|
||||
VREvent_ImageLoaded = 508,
|
||||
VREvent_ShowKeyboard = 509,
|
||||
VREvent_HideKeyboard = 510,
|
||||
@@ -4462,6 +4461,8 @@ public enum EVREventType
|
||||
VREvent_LastKnownSectionSettingChanged = 867,
|
||||
VREvent_DismissedWarningsSectionSettingChanged = 868,
|
||||
VREvent_GpuSpeedSectionSettingChanged = 869,
|
||||
VREvent_WindowsMRSectionSettingChanged = 870,
|
||||
VREvent_OtherSectionSettingChanged = 871,
|
||||
VREvent_StatusUpdate = 900,
|
||||
VREvent_WebInterface_InstallDriverCompleted = 950,
|
||||
VREvent_MCImageUpdated = 1000,
|
||||
@@ -5168,6 +5169,14 @@ public enum EVRRenderModelError
|
||||
NotEnoughTexCoords = 308,
|
||||
InvalidTexture = 400,
|
||||
}
|
||||
public enum EVRRenderModelTextureFormat
|
||||
{
|
||||
RGBA8_SRGB = 0,
|
||||
BC2 = 1,
|
||||
BC4 = 2,
|
||||
BC7 = 3,
|
||||
BC7_SRGB = 4,
|
||||
}
|
||||
public enum EVRNotificationType
|
||||
{
|
||||
Transient = 0,
|
||||
@@ -5947,6 +5956,7 @@ public enum EVRDebugError
|
||||
public ushort unWidth;
|
||||
public ushort unHeight;
|
||||
public IntPtr rubTextureMapData; // const uint8_t *
|
||||
public EVRRenderModelTextureFormat format;
|
||||
}
|
||||
// This structure is for backwards binary compatibility on Linux and OSX only
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 4)] public struct RenderModel_TextureMap_t_Packed
|
||||
@@ -5954,17 +5964,20 @@ public enum EVRDebugError
|
||||
public ushort unWidth;
|
||||
public ushort unHeight;
|
||||
public IntPtr rubTextureMapData; // const uint8_t *
|
||||
public EVRRenderModelTextureFormat format;
|
||||
public RenderModel_TextureMap_t_Packed(RenderModel_TextureMap_t unpacked)
|
||||
{
|
||||
this.unWidth = unpacked.unWidth;
|
||||
this.unHeight = unpacked.unHeight;
|
||||
this.rubTextureMapData = unpacked.rubTextureMapData;
|
||||
this.format = unpacked.format;
|
||||
}
|
||||
public void Unpack(ref RenderModel_TextureMap_t unpacked)
|
||||
{
|
||||
unpacked.unWidth = this.unWidth;
|
||||
unpacked.unHeight = this.unHeight;
|
||||
unpacked.rubTextureMapData = this.rubTextureMapData;
|
||||
unpacked.format = this.format;
|
||||
}
|
||||
}
|
||||
[StructLayout(LayoutKind.Sequential)] public struct RenderModel_t
|
||||
@@ -7072,6 +7085,7 @@ public class OpenVR
|
||||
public const string k_pch_Null_RenderHeight_Int32 = "renderHeight";
|
||||
public const string k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
|
||||
public const string k_pch_Null_DisplayFrequency_Float = "displayFrequency";
|
||||
public const string k_pch_WindowsMR_Section = "driver_holographic";
|
||||
public const string k_pch_UserInterface_Section = "userinterface";
|
||||
public const string k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
|
||||
public const string k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray";
|
||||
@@ -7100,6 +7114,7 @@ public class OpenVR
|
||||
public const string k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
|
||||
public const string k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
|
||||
public const string k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
|
||||
public const string k_pch_CollisionBounds_WallHeight_Float = "CollisionBoundsWallHeight";
|
||||
public const string k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
|
||||
public const string k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
|
||||
public const string k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
|
||||
@@ -7129,6 +7144,8 @@ public class OpenVR
|
||||
public const string k_pch_audio_PlaybackMirrorDevice_String = "playbackMirrorDevice";
|
||||
public const string k_pch_audio_PlaybackMirrorDeviceName_String = "playbackMirrorDeviceName";
|
||||
public const string k_pch_audio_OldPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
|
||||
public const string k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirrorDevice";
|
||||
public const string k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
|
||||
public const string k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
|
||||
public const string k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
|
||||
public const string k_pch_Power_Section = "power";
|
||||
@@ -7141,7 +7158,6 @@ public class OpenVR
|
||||
public const string k_pch_Dashboard_Section = "dashboard";
|
||||
public const string k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
|
||||
public const string k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
|
||||
public const string k_pch_Dashboard_UseWebSettings = "useWebSettings";
|
||||
public const string k_pch_Dashboard_Position = "position";
|
||||
public const string k_pch_Dashboard_DesktopScale = "desktopScale";
|
||||
public const string k_pch_Dashboard_DashboardScale = "dashboardScale";
|
||||
|
||||
@@ -390,7 +390,6 @@
|
||||
,{"name": "VREvent_DashboardDeactivated","value": "503"}
|
||||
,{"name": "VREvent_DashboardRequested","value": "505"}
|
||||
,{"name": "VREvent_ResetDashboard","value": "506"}
|
||||
,{"name": "VREvent_RenderToast","value": "507"}
|
||||
,{"name": "VREvent_ImageLoaded","value": "508"}
|
||||
,{"name": "VREvent_ShowKeyboard","value": "509"}
|
||||
,{"name": "VREvent_HideKeyboard","value": "510"}
|
||||
@@ -449,6 +448,8 @@
|
||||
,{"name": "VREvent_LastKnownSectionSettingChanged","value": "867"}
|
||||
,{"name": "VREvent_DismissedWarningsSectionSettingChanged","value": "868"}
|
||||
,{"name": "VREvent_GpuSpeedSectionSettingChanged","value": "869"}
|
||||
,{"name": "VREvent_WindowsMRSectionSettingChanged","value": "870"}
|
||||
,{"name": "VREvent_OtherSectionSettingChanged","value": "871"}
|
||||
,{"name": "VREvent_StatusUpdate","value": "900"}
|
||||
,{"name": "VREvent_WebInterface_InstallDriverCompleted","value": "950"}
|
||||
,{"name": "VREvent_MCImageUpdated","value": "1000"}
|
||||
@@ -1108,6 +1109,13 @@
|
||||
,{"name": "VRRenderModelError_NotEnoughTexCoords","value": "308"}
|
||||
,{"name": "VRRenderModelError_InvalidTexture","value": "400"}
|
||||
]}
|
||||
, {"enumname": "vr::EVRRenderModelTextureFormat","values": [
|
||||
{"name": "VRRenderModelTextureFormat_RGBA8_SRGB","value": "0"}
|
||||
,{"name": "VRRenderModelTextureFormat_BC2","value": "1"}
|
||||
,{"name": "VRRenderModelTextureFormat_BC4","value": "2"}
|
||||
,{"name": "VRRenderModelTextureFormat_BC7","value": "3"}
|
||||
,{"name": "VRRenderModelTextureFormat_BC7_SRGB","value": "4"}
|
||||
]}
|
||||
, {"enumname": "vr::EVRNotificationType","values": [
|
||||
{"name": "EVRNotificationType_Transient","value": "0"}
|
||||
,{"name": "EVRNotificationType_Persistent","value": "1"}
|
||||
@@ -1532,6 +1540,8 @@
|
||||
"constname": "k_pch_Null_SecondsFromVsyncToPhotons_Float","consttype": "const char *const", "constval": "secondsFromVsyncToPhotons"}
|
||||
,{
|
||||
"constname": "k_pch_Null_DisplayFrequency_Float","consttype": "const char *const", "constval": "displayFrequency"}
|
||||
,{
|
||||
"constname": "k_pch_WindowsMR_Section","consttype": "const char *const", "constval": "driver_holographic"}
|
||||
,{
|
||||
"constname": "k_pch_UserInterface_Section","consttype": "const char *const", "constval": "userinterface"}
|
||||
,{
|
||||
@@ -1588,6 +1598,8 @@
|
||||
"constname": "k_pch_CollisionBounds_PlaySpaceOn_Bool","consttype": "const char *const", "constval": "CollisionBoundsPlaySpaceOn"}
|
||||
,{
|
||||
"constname": "k_pch_CollisionBounds_FadeDistance_Float","consttype": "const char *const", "constval": "CollisionBoundsFadeDistance"}
|
||||
,{
|
||||
"constname": "k_pch_CollisionBounds_WallHeight_Float","consttype": "const char *const", "constval": "CollisionBoundsWallHeight"}
|
||||
,{
|
||||
"constname": "k_pch_CollisionBounds_ColorGammaR_Int32","consttype": "const char *const", "constval": "CollisionBoundsColorGammaR"}
|
||||
,{
|
||||
@@ -1646,6 +1658,10 @@
|
||||
"constname": "k_pch_audio_PlaybackMirrorDeviceName_String","consttype": "const char *const", "constval": "playbackMirrorDeviceName"}
|
||||
,{
|
||||
"constname": "k_pch_audio_OldPlaybackMirrorDevice_String","consttype": "const char *const", "constval": "onPlaybackMirrorDevice"}
|
||||
,{
|
||||
"constname": "k_pch_audio_ActiveMirrorDevice_String","consttype": "const char *const", "constval": "activePlaybackMirrorDevice"}
|
||||
,{
|
||||
"constname": "k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool","consttype": "const char *const", "constval": "enablePlaybackMirrorIndependentVolume"}
|
||||
,{
|
||||
"constname": "k_pch_audio_LastHmdPlaybackDeviceId_String","consttype": "const char *const", "constval": "lastHmdPlaybackDeviceId"}
|
||||
,{
|
||||
@@ -1670,8 +1686,6 @@
|
||||
"constname": "k_pch_Dashboard_EnableDashboard_Bool","consttype": "const char *const", "constval": "enableDashboard"}
|
||||
,{
|
||||
"constname": "k_pch_Dashboard_ArcadeMode_Bool","consttype": "const char *const", "constval": "arcadeMode"}
|
||||
,{
|
||||
"constname": "k_pch_Dashboard_UseWebSettings","consttype": "const char *const", "constval": "useWebSettings"}
|
||||
,{
|
||||
"constname": "k_pch_Dashboard_Position","consttype": "const char *const", "constval": "position"}
|
||||
,{
|
||||
@@ -2117,7 +2131,8 @@
|
||||
,{"struct": "vr::RenderModel_TextureMap_t","fields": [
|
||||
{ "fieldname": "unWidth", "fieldtype": "uint16_t"},
|
||||
{ "fieldname": "unHeight", "fieldtype": "uint16_t"},
|
||||
{ "fieldname": "rubTextureMapData", "fieldtype": "const uint8_t *"}]}
|
||||
{ "fieldname": "rubTextureMapData", "fieldtype": "const uint8_t *"},
|
||||
{ "fieldname": "format", "fieldtype": "enum vr::EVRRenderModelTextureFormat"}]}
|
||||
,{"struct": "vr::RenderModel_t","fields": [
|
||||
{ "fieldname": "rVertexData", "fieldtype": "const struct vr::RenderModel_Vertex_t *"},
|
||||
{ "fieldname": "unVertexCount", "fieldtype": "uint32_t"},
|
||||
|
||||
@@ -63,66 +63,66 @@ typedef uint64_t VRInputValueHandle_t;
|
||||
|
||||
// OpenVR Constants
|
||||
|
||||
static const unsigned int k_nDriverNone = 4294967295;
|
||||
static const unsigned int k_unMaxDriverDebugResponseSize = 32768;
|
||||
static const unsigned int k_unTrackedDeviceIndex_Hmd = 0;
|
||||
static const unsigned int k_unMaxTrackedDeviceCount = 64;
|
||||
static const unsigned int k_unTrackedDeviceIndexOther = 4294967294;
|
||||
static const unsigned int k_unTrackedDeviceIndexInvalid = 4294967295;
|
||||
static const unsigned long k_ulInvalidPropertyContainer = 0;
|
||||
static const unsigned int k_unInvalidPropertyTag = 0;
|
||||
static const unsigned long k_ulInvalidDriverHandle = 0;
|
||||
static const unsigned int k_unFloatPropertyTag = 1;
|
||||
static const unsigned int k_unInt32PropertyTag = 2;
|
||||
static const unsigned int k_unUint64PropertyTag = 3;
|
||||
static const unsigned int k_unBoolPropertyTag = 4;
|
||||
static const unsigned int k_unStringPropertyTag = 5;
|
||||
static const unsigned int k_unErrorPropertyTag = 6;
|
||||
static const unsigned int k_unDoublePropertyTag = 7;
|
||||
static const unsigned int k_unHmdMatrix34PropertyTag = 20;
|
||||
static const unsigned int k_unHmdMatrix44PropertyTag = 21;
|
||||
static const unsigned int k_unHmdVector3PropertyTag = 22;
|
||||
static const unsigned int k_unHmdVector4PropertyTag = 23;
|
||||
static const unsigned int k_unHmdVector2PropertyTag = 24;
|
||||
static const unsigned int k_unHmdQuadPropertyTag = 25;
|
||||
static const unsigned int k_unHiddenAreaPropertyTag = 30;
|
||||
static const unsigned int k_unPathHandleInfoTag = 31;
|
||||
static const unsigned int k_unActionPropertyTag = 32;
|
||||
static const unsigned int k_unInputValuePropertyTag = 33;
|
||||
static const unsigned int k_unWildcardPropertyTag = 34;
|
||||
static const unsigned int k_unHapticVibrationPropertyTag = 35;
|
||||
static const unsigned int k_unSkeletonPropertyTag = 36;
|
||||
static const unsigned int k_unSpatialAnchorPosePropertyTag = 40;
|
||||
static const unsigned int k_unJsonPropertyTag = 41;
|
||||
static const unsigned int k_unActiveActionSetPropertyTag = 42;
|
||||
static const unsigned int k_unOpenVRInternalReserved_Start = 1000;
|
||||
static const unsigned int k_unOpenVRInternalReserved_End = 10000;
|
||||
static const unsigned int k_unMaxPropertyStringSize = 32768;
|
||||
static const unsigned long k_ulInvalidActionHandle = 0;
|
||||
static const unsigned long k_ulInvalidActionSetHandle = 0;
|
||||
static const unsigned long k_ulInvalidInputValueHandle = 0;
|
||||
static const unsigned int k_unControllerStateAxisCount = 5;
|
||||
static const unsigned long k_ulOverlayHandleInvalid = 0;
|
||||
static const unsigned int k_unMaxDistortionFunctionParameters = 8;
|
||||
static const unsigned int k_unScreenshotHandleInvalid = 0;
|
||||
static const unsigned long k_nDriverNone = 4294967295;
|
||||
static const unsigned long k_unMaxDriverDebugResponseSize = 32768;
|
||||
static const unsigned long k_unTrackedDeviceIndex_Hmd = 0;
|
||||
static const unsigned long k_unMaxTrackedDeviceCount = 64;
|
||||
static const unsigned long k_unTrackedDeviceIndexOther = 4294967294;
|
||||
static const unsigned long k_unTrackedDeviceIndexInvalid = 4294967295;
|
||||
static const unsigned long long k_ulInvalidPropertyContainer = 0;
|
||||
static const unsigned long k_unInvalidPropertyTag = 0;
|
||||
static const unsigned long long k_ulInvalidDriverHandle = 0;
|
||||
static const unsigned long k_unFloatPropertyTag = 1;
|
||||
static const unsigned long k_unInt32PropertyTag = 2;
|
||||
static const unsigned long k_unUint64PropertyTag = 3;
|
||||
static const unsigned long k_unBoolPropertyTag = 4;
|
||||
static const unsigned long k_unStringPropertyTag = 5;
|
||||
static const unsigned long k_unErrorPropertyTag = 6;
|
||||
static const unsigned long k_unDoublePropertyTag = 7;
|
||||
static const unsigned long k_unHmdMatrix34PropertyTag = 20;
|
||||
static const unsigned long k_unHmdMatrix44PropertyTag = 21;
|
||||
static const unsigned long k_unHmdVector3PropertyTag = 22;
|
||||
static const unsigned long k_unHmdVector4PropertyTag = 23;
|
||||
static const unsigned long k_unHmdVector2PropertyTag = 24;
|
||||
static const unsigned long k_unHmdQuadPropertyTag = 25;
|
||||
static const unsigned long k_unHiddenAreaPropertyTag = 30;
|
||||
static const unsigned long k_unPathHandleInfoTag = 31;
|
||||
static const unsigned long k_unActionPropertyTag = 32;
|
||||
static const unsigned long k_unInputValuePropertyTag = 33;
|
||||
static const unsigned long k_unWildcardPropertyTag = 34;
|
||||
static const unsigned long k_unHapticVibrationPropertyTag = 35;
|
||||
static const unsigned long k_unSkeletonPropertyTag = 36;
|
||||
static const unsigned long k_unSpatialAnchorPosePropertyTag = 40;
|
||||
static const unsigned long k_unJsonPropertyTag = 41;
|
||||
static const unsigned long k_unActiveActionSetPropertyTag = 42;
|
||||
static const unsigned long k_unOpenVRInternalReserved_Start = 1000;
|
||||
static const unsigned long k_unOpenVRInternalReserved_End = 10000;
|
||||
static const unsigned long k_unMaxPropertyStringSize = 32768;
|
||||
static const unsigned long long k_ulInvalidActionHandle = 0;
|
||||
static const unsigned long long k_ulInvalidActionSetHandle = 0;
|
||||
static const unsigned long long k_ulInvalidInputValueHandle = 0;
|
||||
static const unsigned long k_unControllerStateAxisCount = 5;
|
||||
static const unsigned long long k_ulOverlayHandleInvalid = 0;
|
||||
static const unsigned long k_unMaxDistortionFunctionParameters = 8;
|
||||
static const unsigned long k_unScreenshotHandleInvalid = 0;
|
||||
static const char * IVRSystem_Version = "IVRSystem_021";
|
||||
static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001";
|
||||
static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_006";
|
||||
static const unsigned int k_unMaxApplicationKeyLength = 128;
|
||||
static const unsigned long k_unMaxApplicationKeyLength = 128;
|
||||
static const char * k_pch_MimeType_HomeApp = "vr/home";
|
||||
static const char * k_pch_MimeType_GameTheater = "vr/game_theater";
|
||||
static const char * IVRApplications_Version = "IVRApplications_007";
|
||||
static const char * IVRChaperone_Version = "IVRChaperone_003";
|
||||
static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_006";
|
||||
static const char * IVRCompositor_Version = "IVRCompositor_026";
|
||||
static const unsigned int k_unVROverlayMaxKeyLength = 128;
|
||||
static const unsigned int k_unVROverlayMaxNameLength = 128;
|
||||
static const unsigned int k_unMaxOverlayCount = 128;
|
||||
static const unsigned int k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
|
||||
static const unsigned long k_unVROverlayMaxKeyLength = 128;
|
||||
static const unsigned long k_unVROverlayMaxNameLength = 128;
|
||||
static const unsigned long k_unMaxOverlayCount = 128;
|
||||
static const unsigned long k_unMaxOverlayIntersectionMaskPrimitivesCount = 32;
|
||||
static const char * IVROverlay_Version = "IVROverlay_024";
|
||||
static const char * IVROverlayView_Version = "IVROverlayView_003";
|
||||
static const unsigned int k_unHeadsetViewMaxWidth = 3840;
|
||||
static const unsigned int k_unHeadsetViewMaxHeight = 2160;
|
||||
static const unsigned long k_unHeadsetViewMaxWidth = 3840;
|
||||
static const unsigned long k_unHeadsetViewMaxHeight = 2160;
|
||||
static const char * k_pchHeadsetViewOverlayKey = "system.HeadsetView";
|
||||
static const char * IVRHeadsetView_Version = "IVRHeadsetView_001";
|
||||
static const char * k_pch_Controller_Component_GDC2015 = "gdc2015";
|
||||
@@ -131,9 +131,9 @@ static const char * k_pch_Controller_Component_Tip = "tip";
|
||||
static const char * k_pch_Controller_Component_HandGrip = "handgrip";
|
||||
static const char * k_pch_Controller_Component_Status = "status";
|
||||
static const char * IVRRenderModels_Version = "IVRRenderModels_006";
|
||||
static const unsigned int k_unNotificationTextMaxSize = 256;
|
||||
static const unsigned long k_unNotificationTextMaxSize = 256;
|
||||
static const char * IVRNotifications_Version = "IVRNotifications_002";
|
||||
static const unsigned int k_unMaxSettingsKeyLength = 128;
|
||||
static const unsigned long k_unMaxSettingsKeyLength = 128;
|
||||
static const char * IVRSettings_Version = "IVRSettings_003";
|
||||
static const char * k_pch_SteamVR_Section = "steamvr";
|
||||
static const char * k_pch_SteamVR_RequireHmd_String = "requireHmd";
|
||||
@@ -232,6 +232,7 @@ static const char * k_pch_Null_RenderWidth_Int32 = "renderWidth";
|
||||
static const char * k_pch_Null_RenderHeight_Int32 = "renderHeight";
|
||||
static const char * k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
|
||||
static const char * k_pch_Null_DisplayFrequency_Float = "displayFrequency";
|
||||
static const char * k_pch_WindowsMR_Section = "driver_holographic";
|
||||
static const char * k_pch_UserInterface_Section = "userinterface";
|
||||
static const char * k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop";
|
||||
static const char * k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray";
|
||||
@@ -260,6 +261,7 @@ static const char * k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBou
|
||||
static const char * k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
|
||||
static const char * k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
|
||||
static const char * k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
|
||||
static const char * k_pch_CollisionBounds_WallHeight_Float = "CollisionBoundsWallHeight";
|
||||
static const char * k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
|
||||
static const char * k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
|
||||
static const char * k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
|
||||
@@ -289,6 +291,8 @@ static const char * k_pch_audio_EnablePlaybackMirror_Bool = "enablePlaybackMirro
|
||||
static const char * k_pch_audio_PlaybackMirrorDevice_String = "playbackMirrorDevice";
|
||||
static const char * k_pch_audio_PlaybackMirrorDeviceName_String = "playbackMirrorDeviceName";
|
||||
static const char * k_pch_audio_OldPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
|
||||
static const char * k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirrorDevice";
|
||||
static const char * k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
|
||||
static const char * k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
|
||||
static const char * k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
|
||||
static const char * k_pch_Power_Section = "power";
|
||||
@@ -301,7 +305,6 @@ static const char * k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositor
|
||||
static const char * k_pch_Dashboard_Section = "dashboard";
|
||||
static const char * k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
|
||||
static const char * k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
|
||||
static const char * k_pch_Dashboard_UseWebSettings = "useWebSettings";
|
||||
static const char * k_pch_Dashboard_Position = "position";
|
||||
static const char * k_pch_Dashboard_DesktopScale = "desktopScale";
|
||||
static const char * k_pch_Dashboard_DashboardScale = "dashboardScale";
|
||||
@@ -335,17 +338,17 @@ static const char * k_pch_GpuSpeed_Section = "GpuSpeed";
|
||||
static const char * IVRScreenshots_Version = "IVRScreenshots_001";
|
||||
static const char * IVRResources_Version = "IVRResources_001";
|
||||
static const char * IVRDriverManager_Version = "IVRDriverManager_001";
|
||||
static const unsigned int k_unMaxActionNameLength = 64;
|
||||
static const unsigned int k_unMaxActionSetNameLength = 64;
|
||||
static const unsigned int k_unMaxActionOriginCount = 16;
|
||||
static const unsigned int k_unMaxBoneNameLength = 32;
|
||||
static const unsigned long k_unMaxActionNameLength = 64;
|
||||
static const unsigned long k_unMaxActionSetNameLength = 64;
|
||||
static const unsigned long k_unMaxActionOriginCount = 16;
|
||||
static const unsigned long k_unMaxBoneNameLength = 32;
|
||||
static const int k_nActionSetOverlayGlobalPriorityMin = 16777216;
|
||||
static const int k_nActionSetOverlayGlobalPriorityMax = 33554431;
|
||||
static const int k_nActionSetPriorityReservedMin = 33554432;
|
||||
static const char * IVRInput_Version = "IVRInput_010";
|
||||
static const unsigned long k_ulInvalidIOBufferHandle = 0;
|
||||
static const unsigned long long k_ulInvalidIOBufferHandle = 0;
|
||||
static const char * IVRIOBuffer_Version = "IVRIOBuffer_002";
|
||||
static const unsigned int k_ulInvalidSpatialAnchorHandle = 0;
|
||||
static const unsigned long k_ulInvalidSpatialAnchorHandle = 0;
|
||||
static const char * IVRSpatialAnchors_Version = "IVRSpatialAnchors_001";
|
||||
static const char * IVRDebug_Version = "IVRDebug_001";
|
||||
|
||||
@@ -727,7 +730,6 @@ typedef enum EVREventType
|
||||
EVREventType_VREvent_DashboardDeactivated = 503,
|
||||
EVREventType_VREvent_DashboardRequested = 505,
|
||||
EVREventType_VREvent_ResetDashboard = 506,
|
||||
EVREventType_VREvent_RenderToast = 507,
|
||||
EVREventType_VREvent_ImageLoaded = 508,
|
||||
EVREventType_VREvent_ShowKeyboard = 509,
|
||||
EVREventType_VREvent_HideKeyboard = 510,
|
||||
@@ -786,6 +788,8 @@ typedef enum EVREventType
|
||||
EVREventType_VREvent_LastKnownSectionSettingChanged = 867,
|
||||
EVREventType_VREvent_DismissedWarningsSectionSettingChanged = 868,
|
||||
EVREventType_VREvent_GpuSpeedSectionSettingChanged = 869,
|
||||
EVREventType_VREvent_WindowsMRSectionSettingChanged = 870,
|
||||
EVREventType_VREvent_OtherSectionSettingChanged = 871,
|
||||
EVREventType_VREvent_StatusUpdate = 900,
|
||||
EVREventType_VREvent_WebInterface_InstallDriverCompleted = 950,
|
||||
EVREventType_VREvent_MCImageUpdated = 1000,
|
||||
@@ -1540,6 +1544,15 @@ typedef enum EVRRenderModelError
|
||||
EVRRenderModelError_VRRenderModelError_InvalidTexture = 400,
|
||||
} EVRRenderModelError;
|
||||
|
||||
typedef enum EVRRenderModelTextureFormat
|
||||
{
|
||||
EVRRenderModelTextureFormat_VRRenderModelTextureFormat_RGBA8_SRGB = 0,
|
||||
EVRRenderModelTextureFormat_VRRenderModelTextureFormat_BC2 = 1,
|
||||
EVRRenderModelTextureFormat_VRRenderModelTextureFormat_BC4 = 2,
|
||||
EVRRenderModelTextureFormat_VRRenderModelTextureFormat_BC7 = 3,
|
||||
EVRRenderModelTextureFormat_VRRenderModelTextureFormat_BC7_SRGB = 4,
|
||||
} EVRRenderModelTextureFormat;
|
||||
|
||||
typedef enum EVRNotificationType
|
||||
{
|
||||
EVRNotificationType_Transient = 0,
|
||||
@@ -2233,6 +2246,7 @@ typedef struct RenderModel_TextureMap_t
|
||||
uint16_t unWidth;
|
||||
uint16_t unHeight;
|
||||
uint8_t * rubTextureMapData; // const uint8_t *
|
||||
enum EVRRenderModelTextureFormat format;
|
||||
} RenderModel_TextureMap_t;
|
||||
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
namespace vr
|
||||
{
|
||||
static const uint32_t k_nSteamVRVersionMajor = 1;
|
||||
static const uint32_t k_nSteamVRVersionMinor = 10;
|
||||
static const uint32_t k_nSteamVRVersionBuild = 30;
|
||||
static const uint32_t k_nSteamVRVersionMinor = 11;
|
||||
static const uint32_t k_nSteamVRVersionBuild = 11;
|
||||
} // namespace vr
|
||||
|
||||
// vrtypes.h
|
||||
@@ -746,7 +746,7 @@ enum EVREventType
|
||||
//VREvent_DashboardThumbSelected = 504, // Sent to the overlay manager - data is overlay - No longer sent
|
||||
VREvent_DashboardRequested = 505, // Sent to the overlay manager - data is overlay
|
||||
VREvent_ResetDashboard = 506, // Send to the overlay manager
|
||||
VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID
|
||||
//VREvent_RenderToast = 507, // Send to the dashboard to render a toast - data is the notification ID -- no longer sent
|
||||
VREvent_ImageLoaded = 508, // Sent to overlays when a SetOverlayRaw or SetOverlayFromFile call finishes loading
|
||||
VREvent_ShowKeyboard = 509, // Sent to keyboard renderer in the dashboard to invoke it
|
||||
VREvent_HideKeyboard = 510, // Sent to keyboard renderer in the dashboard to hide it
|
||||
@@ -816,6 +816,8 @@ enum EVREventType
|
||||
VREvent_LastKnownSectionSettingChanged = 867,
|
||||
VREvent_DismissedWarningsSectionSettingChanged = 868,
|
||||
VREvent_GpuSpeedSectionSettingChanged = 869,
|
||||
VREvent_WindowsMRSectionSettingChanged = 870,
|
||||
VREvent_OtherSectionSettingChanged = 871,
|
||||
|
||||
VREvent_StatusUpdate = 900,
|
||||
|
||||
@@ -2318,6 +2320,10 @@ namespace vr
|
||||
static const char * const k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons";
|
||||
static const char * const k_pch_Null_DisplayFrequency_Float = "displayFrequency";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Windows MR keys
|
||||
static const char * const k_pch_WindowsMR_Section = "driver_holographic";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// user interface keys
|
||||
static const char * const k_pch_UserInterface_Section = "userinterface";
|
||||
@@ -2360,6 +2366,7 @@ namespace vr
|
||||
static const char * const k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn";
|
||||
static const char * const k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn";
|
||||
static const char * const k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance";
|
||||
static const char * const k_pch_CollisionBounds_WallHeight_Float = "CollisionBoundsWallHeight";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG";
|
||||
static const char * const k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB";
|
||||
@@ -2395,6 +2402,8 @@ namespace vr
|
||||
static const char * const k_pch_audio_PlaybackMirrorDevice_String = "playbackMirrorDevice";
|
||||
static const char * const k_pch_audio_PlaybackMirrorDeviceName_String = "playbackMirrorDeviceName";
|
||||
static const char * const k_pch_audio_OldPlaybackMirrorDevice_String = "onPlaybackMirrorDevice";
|
||||
static const char * const k_pch_audio_ActiveMirrorDevice_String = "activePlaybackMirrorDevice";
|
||||
static const char * const k_pch_audio_EnablePlaybackMirrorIndependentVolume_Bool = "enablePlaybackMirrorIndependentVolume";
|
||||
static const char * const k_pch_audio_LastHmdPlaybackDeviceId_String = "lastHmdPlaybackDeviceId";
|
||||
static const char * const k_pch_audio_VIVEHDMIGain = "viveHDMIGain";
|
||||
|
||||
@@ -2413,7 +2422,6 @@ namespace vr
|
||||
static const char * const k_pch_Dashboard_Section = "dashboard";
|
||||
static const char * const k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard";
|
||||
static const char * const k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode";
|
||||
static const char * const k_pch_Dashboard_UseWebSettings = "useWebSettings";
|
||||
static const char * const k_pch_Dashboard_Position = "position";
|
||||
static const char * const k_pch_Dashboard_DesktopScale = "desktopScale";
|
||||
static const char * const k_pch_Dashboard_DashboardScale = "dashboardScale";
|
||||
@@ -2700,8 +2708,11 @@ namespace vr
|
||||
|
||||
// Projection matrix used to render the depth buffer.
|
||||
vr::HmdMatrix44_t mProjection;
|
||||
|
||||
// Hmd pose used to render this layer.
|
||||
vr::HmdMatrix34_t mHmdPose;
|
||||
};
|
||||
virtual void SubmitLayer( const SubmitLayerPerEye_t( &perEye )[ 2 ], const vr::HmdMatrix34_t *pPose ) {}
|
||||
virtual void SubmitLayer( const SubmitLayerPerEye_t( &perEye )[ 2 ] ) {}
|
||||
|
||||
/** Submits queued layers for display. */
|
||||
virtual void Present( vr::SharedTextureHandle_t syncTexture ) {}
|
||||
@@ -2713,7 +2724,7 @@ namespace vr
|
||||
virtual void GetFrameTiming( DriverDirectMode_FrameTiming *pFrameTiming ) {}
|
||||
};
|
||||
|
||||
static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_005";
|
||||
static const char *IVRDriverDirectModeComponent_Version = "IVRDriverDirectModeComponent_006";
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ "major": 5, "minor": 0, "patch": 2, "updateMessage": "", "optionalMessage": "" }
|
||||
{ "major": 5, "minor": 1, "patch": 0, "updateMessage": "", "optionalMessage": "" }
|
||||