|
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) |
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 os_mutex | system_init_lock |
| 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 | |
| Some applications can't handle depth formats, or they trigger a bug in a specific version of the application or engine. More... | |
| bool disable_vulkan_format_depth_stencil | |
| Some applications can't handle depth stencil formats, or they trigger a bug in a specific version of the application or engine. 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... | |
| bool map_stage_to_local_floor | |
| For applications that use stage and don't offer recentering. More... | |
| bool no_texture_source_alpha | |
| Beat Saber submits its projection layer with XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT set. 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_init_system_locked (struct oxr_logger *log, struct oxr_instance *inst) |
| Must be called with oxr_instance::system_init_lock held. 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 |
Some applications can't handle depth formats, or they trigger a bug in a specific version of the application or engine.
This flag only disables depth formats
| bool oxr_instance::disable_vulkan_format_depth_stencil |
Some applications can't handle depth stencil formats, or they trigger a bug in a specific version of the application or engine.
This flag only disables depth-stencil formats,
In the past it was used to work around a bug in Unreal's VulkanRHI backend.
| struct oxr_extension_status oxr_instance::extensions |
Enabled extensions.
Referenced by handle_non_null().
| 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".
| bool oxr_instance::map_stage_to_local_floor |
For applications that use stage and don't offer recentering.
| struct oxr_debug_messenger* oxr_instance::messengers[256] |
Debug messengers.
| bool oxr_instance::no_texture_source_alpha |
Beat Saber submits its projection layer with XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT set.
This breaks rendering because the game uses the alpha texture to store data for the bloom shader, causing most of the game to render as black, only showing glowing parts of the image.
| 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.