C Specification
The xrResumeSimultaneousHandsAndControllersTrackingMETA function is defined as:
// Provided by XR_META_simultaneous_hands_and_controllers
XrResult xrResumeSimultaneousHandsAndControllersTrackingMETA(
XrSession session,
const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo);
Parameters
Description
An application can call xrResumeSimultaneousHandsAndControllersTrackingMETA to enable simultaneous hands and controller tracking.
Runtimes must initialize the simultaneous tracking feature in a paused state, so applications call the resume function for the simultaneous tracking to start.
If xrResumeSimultaneousHandsAndControllersTrackingMETA is called when
the feature is already in a resumed state, the runtime must return
XR_SUCCESS.
If a system supports detection of whether a controller is currently held by the user, the runtime should represent this transition by switching the active interaction profile in the relevant hand from the active controller interaction profile to an interaction profile representing hands if available.
For example, the returned interaction from
xrGetCurrentInteractionProfile on /user/hand/left might
change from /interaction_profiles/facebook/touch_controller_pro to
/interaction_profiles/ext/hand_interaction_ext, generating an
XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED
(XrEventDataInteractionProfileChanged) event, assuming that bindings
were suggested for both of those interaction profiles on that path.
This would indicate that the user put down the controller and is no longer holding a controller in their left hand. Note that in this example, if the user is holding a controller in their right hand, xrGetCurrentInteractionProfile on /user/hand/right still returns /interaction_profiles/facebook/touch_controller_pro.
Also note that if the XR_META_detached_controllers extension is used
alongside XR_META_simultaneous_hands_and_controllers, then when a
controller leaves the hand, it may report that interaction profile as
current for the corresponding /user/detached_controller_meta path
if bindings have been suggested for that path.
See XR_META_simultaneous_hands_and_controllers for details.
When simultaneous tracking is resumed, runtimes should allow xrGetCurrentInteractionProfile to return different interaction profiles for different top level /user paths (e.g. /user/hand/left and /user/hand/right). Note that this behavior is already allowed by the specification, even without this extension, but runtimes exposing this extension may choose to not expose different interaction profiles for different top level /user paths unless it is enabled.
When a held controller transitions to an unheld state, the current interaction profile for the relevant top level path must change to an interaction profile representing hand tracking, if available.
See Also
Document Notes
For more information, see the OpenXR Specification
This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.
Copyright
Copyright 2014-2025 The Khronos Group Inc.
This work is licensed under a Creative Commons Attribution 4.0 International License.