experiment with a hacky approach to make metaxr work

This commit is contained in:
Mamadou Babaei
2025-02-14 12:10:34 +01:00
parent d793e19a67
commit 778cb3c5d8
2 changed files with 27 additions and 1 deletions
@@ -2154,7 +2154,23 @@ FName FSGXRTracker::FImpl::GetTargetOpenXRPositionalTrackingProviderName() const
}
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;
}
const FSGXRTracker* Self{StaticCast<const FSGXRTracker*>(MotionController)};
if (Self)
{
continue;
}
const ETrackingStatus TrackingStatus = MotionController->GetControllerTrackingStatus(
DeviceIndex, PositionalTrackingHardwareMotionSource);
if (TrackingStatus == ETrackingStatus::NotTracked)
@@ -84,6 +84,10 @@ enum class ESGOpenXRPositionalTrackingProvider : uint8
*/
OpenXR UMETA(DisplayName = "OpenXR"),
/**
*/
OpenXRHandTracking UMETA(DisplayName = "OpenXRHandTracking"),
/**
* OpenXRViveTracker:
* - PCVR: