So, when I create an instance, the loader automatically loads the Ultraleap API layer. I wish to disable this layer to try out the meta hand tracking (when I load the tracking extension functions Visual Studio tells me they are from an Ultraleap DLL). Alternatively, when I request the instance to load this layer, a failure happens.
Theres these messages happening on the console which I think might be related:
Warning [GENERAL | | OpenXR-Loader] : ReadLayerDataFilesInRegistry - failed
to read registry location \ApiLayers\Explicit in either HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER
[2023-10-31 11:18:43.437] [info] [Config.cpp:59] API layer configuration file does not
exist, skipping
Info [GENERAL | xrCreateInstance | OpenXR-Loader] :
ApiLayerInterface::LoadApiLayers succeeded loading layer
XR_APILAYER_ULTRALEAP_hand_tracking using interface version 1 and OpenXR
API version 1.0'
Another thing is tha I´m trying to use XR_EXT_hand_tracking
The xrLocateHandJointsEXT
is giving me a -1 validation error. Here´s the code:
XrHandJointsLocateInfoEXT locate_info;
locate_info.type = XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT;
locate_info.next = NULL;
locate_info.baseSpace = m_LocalSpace;
locate_info.time = m_FrameState.predictedDisplayTime;
XrHandJointLocationsEXT locations;
locations.type = XR_TYPE_HAND_JOINT_LOCATIONS_EXT;
locations.next = NULL;
locations.jointCount = XR_HAND_JOINT_COUNT_EXT;
m_Eyes[side].m_Joints.resize(XR_HAND_JOINT_COUNT_EXT);
locations.jointLocations = m_Eyes[side].m_Joints.data();
XrResult result = xrLocateHandJointsEXT(m_Eyes[side].m_HandTracker, &locate_info, &locations);
return result;
EDIT: I should also say I am using the oculus runtime.