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