experiment with a hacky approach to make metaxr work

This commit is contained in:
Mamadou Babaei
2025-02-14 12:11:15 +01:00
parent 5a26fab5ae
commit 5709de714b
2 changed files with 27 additions and 1 deletions
@@ -2154,7 +2154,23 @@ FName FSGXRTracker::FImpl::GetTargetOpenXRPositionalTrackingProviderName() const
} }
else else
{ {
PositionalTrackingProvider = ESGOpenXRPositionalTrackingProvider::OpenXR; const bool bIsAMetaQuestDevice = FSGHMDTracker::IsAMetaQuestDevice();
if (bIsAMetaQuestDevice)
{
const bool bIsMetaXRPluginLoaded = FSGPluginUtils::IsMetaXRPluginAvailable();
if (bIsMetaXRPluginLoaded)
{
PositionalTrackingProvider = ESGOpenXRPositionalTrackingProvider::OpenXRHandTracking;
}
else
{
PositionalTrackingProvider = ESGOpenXRPositionalTrackingProvider::OpenXR;
}
}
else
{
PositionalTrackingProvider = ESGOpenXRPositionalTrackingProvider::OpenXR;
}
} }
} }
@@ -2211,6 +2227,12 @@ bool FSGXRTracker::FImpl::GetControllerTransform(
continue; continue;
} }
const FSGXRTracker* Self{StaticCast<const FSGXRTracker*>(MotionController)};
if (Self)
{
continue;
}
const ETrackingStatus TrackingStatus = MotionController->GetControllerTrackingStatus( const ETrackingStatus TrackingStatus = MotionController->GetControllerTrackingStatus(
DeviceIndex, PositionalTrackingHardwareMotionSource); DeviceIndex, PositionalTrackingHardwareMotionSource);
if (TrackingStatus == ETrackingStatus::NotTracked) if (TrackingStatus == ETrackingStatus::NotTracked)
@@ -84,6 +84,10 @@ enum class ESGOpenXRPositionalTrackingProvider : uint8
*/ */
OpenXR UMETA(DisplayName = "OpenXR"), OpenXR UMETA(DisplayName = "OpenXR"),
/**
*/
OpenXRHandTracking UMETA(DisplayName = "OpenXRHandTracking"),
/** /**
* OpenXRViveTracker: * OpenXRViveTracker:
* - PCVR: * - PCVR: