Monado OpenXR Runtime
|
Main object that ties everything together. More...
#include <oxr/oxr_objects.h>
Public Member Functions | |
oxr_input.c | |
bool | oxr_classify_subaction_paths (struct oxr_logger *log, const struct oxr_instance *inst, uint32_t subaction_path_count, const XrPath *subaction_paths, struct oxr_subaction_paths *subaction_paths_out) |
Helper function to classify subaction_paths. More... | |
XrResult | oxr_action_set_create (struct oxr_logger *log, struct oxr_instance *inst, const XrActionSetCreateInfo *createInfo, struct oxr_action_set **out_act_set) |
XrResult | oxr_hand_tracker_create (struct oxr_logger *log, struct oxr_session *sess, const XrHandTrackerCreateInfoEXT *createInfo, struct oxr_hand_tracker **out_hand_tracker) |
oxr_binding.c | |
void | oxr_binding_destroy_all (struct oxr_logger *log, struct oxr_instance *inst) |
Free all memory allocated by the binding system. More... | |
void | oxr_session_binding_destroy_all (struct oxr_logger *log, struct oxr_session *sess) |
Free all memory allocated by the binding system. More... | |
XrResult | oxr_action_suggest_interaction_profile_bindings (struct oxr_logger *log, struct oxr_instance *inst, const XrInteractionProfileSuggestedBinding *suggestedBindings, struct oxr_dpad_state *state) |
XrResult | oxr_action_get_current_interaction_profile (struct oxr_logger *log, struct oxr_session *sess, XrPath topLevelUserPath, XrInteractionProfileState *interactionProfile) |
Public Member Functions inherited from oxr_handle_base | |
XrResult | oxr_handle_destroy (struct oxr_logger *log, struct oxr_handle_base *hb) |
Destroy the handle's object, as well as all child handles recursively. More... | |
Data Fields | |
struct oxr_handle_base | handle |
Common structure for things referred to by OpenXR handles. More... | |
struct u_debug_gui * | debug_ui |
struct xrt_instance * | xinst |
struct oxr_extension_status | extensions |
Enabled extensions. More... | |
struct { | |
XrVersion major_minor | |
Stores only major.minor version. Simplifies comparisons for e.g. "at least OpenXR 1.1". More... | |
} | openxr_version |
The OpenXR version requested in the app info. It determines the instance's OpenXR version. More... | |
struct oxr_system | system |
struct time_state * | timekeeping |
struct { | |
struct u_hashset * name_store | |
struct u_hashset * loc_store | |
} | action_sets |
struct u_hashset * | path_store |
Path store, for looking up paths. More... | |
struct oxr_path ** | path_array |
Mapping from ID to path. More... | |
size_t | path_array_length |
Total length of path array. More... | |
size_t | path_num |
Number of paths in the array (0 is always null). More... | |
struct { | |
struct os_mutex mutex | |
struct oxr_event * last | |
struct oxr_event * next | |
} | event |
struct oxr_interaction_profile ** | profiles |
Interaction profile bindings that have been suggested by the client. More... | |
size_t | profile_count |
struct oxr_session * | sessions |
struct { | |
XrPath left | |
XrPath right | |
XrPath head | |
XrPath gamepad | |
XrPath eyes | |
XrPath user | |
} | path_cache |
struct { | |
struct { | |
struct { | |
uint32_t major | |
uint32_t minor | |
uint32_t patch | |
const char * name | |
} engine | |
} detected | |
} | appinfo |
struct { | |
bool disable_vulkan_format_depth_stencil | |
Unreal has a bug in the VulkanRHI backend. More... | |
bool skip_end_session | |
Unreal 4 has a bug calling xrEndSession; the function should just exit. More... | |
bool no_validation_error_in_create_ref_space | |
Return XR_ERROR_REFERENCE_SPACE_UNSUPPORTED instead of XR_ERROR_VALIDATION_FAILURE in xrCreateReferenceSpace. More... | |
bool parallel_views | |
For applications that rely on views being parallel, notably some OpenVR games with OpenComposite. More... | |
} | quirks |
struct oxr_debug_messenger * | messengers [256] |
Debug messengers. More... | |
bool | lifecycle_verbose |
bool | debug_views |
bool | debug_spaces |
bool | debug_bindings |
Data Fields inherited from oxr_handle_base | |
uint64_t | debug |
Magic (per-handle-type) value for debugging. More... | |
struct oxr_handle_base * | parent |
Pointer to this object's parent handle holder, if any. More... | |
struct oxr_handle_base * | children [256] |
Array of children, if any. More... | |
enum oxr_handle_state | state |
Current handle state. More... | |
oxr_handle_destroyer | destroy |
Destroy the object this handle refers to. More... | |
oxr_instance.c | |
static XrInstance | oxr_instance_to_openxr (struct oxr_instance *inst) |
To go back to a OpenXR object. More... | |
XrResult | oxr_instance_create (struct oxr_logger *log, const XrInstanceCreateInfo *createInfo, XrVersion major_minor, const struct oxr_extension_status *extensions, struct oxr_instance **out_inst) |
Creates a instance, does minimal validation of createInfo . More... | |
XrResult | oxr_instance_get_properties (struct oxr_logger *log, struct oxr_instance *inst, XrInstanceProperties *instanceProperties) |
XrResult | oxr_instance_convert_time_to_timespec (struct oxr_logger *log, struct oxr_instance *inst, XrTime time, struct timespec *timespecTime) |
XrResult | oxr_instance_convert_timespec_to_time (struct oxr_logger *log, struct oxr_instance *inst, const struct timespec *timespecTime, XrTime *time) |
oxr_path.c | |
bool | oxr_path_is_valid (struct oxr_logger *log, struct oxr_instance *inst, XrPath path) |
void * | oxr_path_get_attached (struct oxr_logger *log, struct oxr_instance *inst, XrPath path) |
XrResult | oxr_path_get_or_create (struct oxr_logger *log, struct oxr_instance *inst, const char *str, size_t length, XrPath *out_path) |
Get the path for the given string if it exists, or create it if it does not. More... | |
XrResult | oxr_path_only_get (struct oxr_logger *log, struct oxr_instance *inst, const char *str, size_t length, XrPath *out_path) |
Only get the path for the given string if it exists. More... | |
XrResult | oxr_path_get_string (struct oxr_logger *log, const struct oxr_instance *inst, XrPath path, const char **out_str, size_t *out_length) |
Get a pointer and length of the internal string. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from oxr_handle_base | |
XrResult | oxr_handle_init (struct oxr_logger *log, struct oxr_handle_base *hb, uint64_t debug, oxr_handle_destroyer destroy, struct oxr_handle_base *parent) |
Initialize a handle holder, and if a parent is specified, update its child list to include this handle. More... | |
Related Functions inherited from oxr_handle_base | |
typedef XrResult(* | oxr_handle_destroyer) (struct oxr_logger *log, struct oxr_handle_base *hb) |
Function pointer type for a handle destruction function. More... | |
XrResult | oxr_handle_allocate_and_init (struct oxr_logger *log, size_t size, uint64_t debug, oxr_handle_destroyer destroy, struct oxr_handle_base *parent, void **out) |
Allocate some memory for use as a handle, and initialize it as a handle. More... | |
#define | OXR_ALLOCATE_HANDLE(LOG, OUT, DEBUG, DESTROY, PARENT) oxr_handle_allocate_and_init(LOG, sizeof(*OUT), DEBUG, DESTROY, PARENT, (void **)&OUT) |
Allocates memory for a handle and evaluates to an XrResult. More... | |
#define | OXR_ALLOCATE_HANDLE_OR_RETURN(LOG, OUT, DEBUG, DESTROY, PARENT) |
Allocate memory for a handle, returning in case of failure. More... | |
const char * | oxr_handle_state_to_string (enum oxr_handle_state state) |
Returns a human-readable label for a handle state. More... | |
Main object that ties everything together.
No parent type/handle: this is the root handle.
bool oxr_instance::disable_vulkan_format_depth_stencil |
Unreal has a bug in the VulkanRHI backend.
struct oxr_extension_status oxr_instance::extensions |
Enabled extensions.
Referenced by oxr_session_begin().
struct oxr_handle_base oxr_instance::handle |
Common structure for things referred to by OpenXR handles.
XrVersion oxr_instance::major_minor |
Stores only major.minor version. Simplifies comparisons for e.g. "at least OpenXR 1.1".
struct oxr_debug_messenger* oxr_instance::messengers[256] |
Debug messengers.
bool oxr_instance::no_validation_error_in_create_ref_space |
Return XR_ERROR_REFERENCE_SPACE_UNSUPPORTED instead of XR_ERROR_VALIDATION_FAILURE in xrCreateReferenceSpace.
struct { ... } oxr_instance::openxr_version |
The OpenXR version requested in the app info. It determines the instance's OpenXR version.
bool oxr_instance::parallel_views |
For applications that rely on views being parallel, notably some OpenVR games with OpenComposite.
struct oxr_path** oxr_instance::path_array |
Mapping from ID to path.
size_t oxr_instance::path_array_length |
Total length of path array.
size_t oxr_instance::path_num |
Number of paths in the array (0 is always null).
struct u_hashset* oxr_instance::path_store |
Path store, for looking up paths.
struct oxr_interaction_profile** oxr_instance::profiles |
Interaction profile bindings that have been suggested by the client.
Referenced by bindings.Bindings::__init__(), and oxr_session::oxr_session_attach_action_sets().
bool oxr_instance::skip_end_session |
Unreal 4 has a bug calling xrEndSession; the function should just exit.