Monado OpenXR Runtime

The action-set/action-based input subsystem of OpenXR. More...

Collaboration diagram for OpenXR input:

Modules

 OpenXR input transformation
 

Files

file  oxr_subaction.h
 Provides a utility macro for dealing with subaction paths.
 

Data Structures

struct  oxr_dpad_settings
 dpad settings we need extracted from XrInteractionProfileDpadBindingEXT More...
 
struct  oxr_dpad_entry
 A entry in the dpad state for one action set. More...
 
struct  oxr_dpad_state
 Holds dpad binding state for a single interaction profile. More...
 
struct  oxr_subaction_paths
 A parsed equivalent of a list of sub-action paths. More...
 
struct  oxr_action_set_attachment
 The data associated with the attachment of an Action Set (oxr_action_set) to as Session (oxr_session). More...
 
struct  oxr_action_state
 The state of a action input. More...
 
struct  oxr_action_input
 A input action pair of a xrt_input and a xrt_device, along with the required transform. More...
 
struct  oxr_action_output
 A output action pair of a xrt_output_name and a xrt_device. More...
 
struct  oxr_action_cache
 The set of inputs/outputs for a single sub-action path for an action. More...
 
struct  oxr_action_attachment
 Data associated with an Action that has been attached to a Session. More...
 
struct  oxr_action_set_ref
 The reference-counted data of an action set. More...
 
struct  oxr_action_set
 A group of actions. More...
 
struct  oxr_action_ref
 The reference-counted data of an action. More...
 
struct  oxr_action
 A single action. More...
 

Detailed Description

The action-set/action-based input subsystem of OpenXR.

Action sets are created as children of the Instance, but are primarily used with one or more Sessions. They may be used with multiple sessions at a time, so we can't just put the per-session information directly in the action set or action. Instead, we have the _attachmentstructures, which mirror the action sets and actions but are rooted under the Session:

We go from the public handle to the _attachment structure by using a key value and a hash map: specifically, we look up the oxr_action_set::act_set_key and oxr_action::act_key in the session.