Prevent applictaion of uninitialized chaperone basis
This commit is contained in:
@@ -38,7 +38,6 @@ namespace advsettings
|
||||
{
|
||||
void MoveCenterTabController::initStage1()
|
||||
{
|
||||
setTrackingUniverse( vr::VRCompositor()->GetTrackingSpace() );
|
||||
auto settings = OverlayController::appSettings();
|
||||
settings->beginGroup( "playspaceSettings" );
|
||||
auto value = settings->value( "adjustChaperone", m_adjustChaperone );
|
||||
@@ -1095,6 +1094,12 @@ void MoveCenterTabController::incomingSeatedReset()
|
||||
|
||||
void MoveCenterTabController::reset()
|
||||
{
|
||||
if ( !m_chaperoneBasisAcquired )
|
||||
{
|
||||
LOG( WARNING ) << "WARNING: Attempted reset offsets before chaperone "
|
||||
"basis is acquired!";
|
||||
return;
|
||||
}
|
||||
vr::VRChaperoneSetup()->HideWorkingSetPreview();
|
||||
m_heightToggle = false;
|
||||
emit heightToggleChanged( m_heightToggle );
|
||||
@@ -1132,6 +1137,15 @@ void MoveCenterTabController::zeroOffsets()
|
||||
emit rotationChanged( m_rotation );
|
||||
updateChaperoneResetData();
|
||||
m_pendingZeroOffsets = false;
|
||||
if ( !m_chaperoneBasisAcquired )
|
||||
{
|
||||
m_chaperoneBasisAcquired = true;
|
||||
if ( !m_initComplete )
|
||||
{
|
||||
setTrackingUniverse( vr::VRCompositor()->GetTrackingSpace() );
|
||||
m_initComplete = true;
|
||||
}
|
||||
}
|
||||
if ( m_roomSetupModeDetected )
|
||||
{
|
||||
LOG( INFO ) << "room setup EXIT detected";
|
||||
|
||||
@@ -89,6 +89,8 @@ private:
|
||||
OverlayController* parent;
|
||||
|
||||
int m_trackingUniverse = static_cast<int>( vr::TrackingUniverseStanding );
|
||||
bool m_chaperoneBasisAcquired = false;
|
||||
bool m_initComplete = false;
|
||||
float m_offsetX = 0.0f;
|
||||
float m_offsetY = 0.0f;
|
||||
float m_offsetZ = 0.0f;
|
||||
@@ -172,8 +174,14 @@ private:
|
||||
std::chrono::steady_clock::time_point m_lastDragUpdateTimePoint;
|
||||
vr::HmdQuad_t* m_collisionBoundsForReset;
|
||||
uint32_t m_collisionBoundsCountForReset = 0;
|
||||
vr::HmdMatrix34_t m_universeCenterForReset;
|
||||
vr::HmdMatrix34_t m_seatedCenterForReset;
|
||||
vr::HmdMatrix34_t m_universeCenterForReset
|
||||
= { { { 1.0f, 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 1.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 1.0f, 0.0f } } };
|
||||
vr::HmdMatrix34_t m_seatedCenterForReset
|
||||
= { { { 1.0f, 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 1.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 1.0f, 0.0f } } };
|
||||
vr::HmdQuad_t* m_collisionBoundsForOffset;
|
||||
|
||||
void updateHmdRotationCounter( vr::TrackedDevicePose_t hmdPose,
|
||||
|
||||
Reference in New Issue
Block a user