Monado OpenXR Runtime
oxr_instance Struct Reference

Main object that ties everything together. More...

#include <oxr/oxr_objects.h>

Inheritance diagram for oxr_instance:
Collaboration diagram for oxr_instance:

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_instancexinst
 
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_statetimekeeping
 
struct {
   struct u_hashset *   name_store
 
   struct u_hashset *   loc_store
 
action_sets
 
struct u_hashsetpath_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_sessionsessions
 
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_messengermessengers [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_baseparent
 Pointer to this object's parent handle holder, if any. More...
 
struct oxr_handle_basechildren [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...
 

Detailed Description

Main object that ties everything together.

No parent type/handle: this is the root handle.

OpenXR Object:
XrInstance

Field Documentation

◆ disable_vulkan_format_depth_stencil

bool oxr_instance::disable_vulkan_format_depth_stencil

Unreal has a bug in the VulkanRHI backend.

◆ extensions

struct oxr_extension_status oxr_instance::extensions

Enabled extensions.

Referenced by oxr_session_begin().

◆ handle

struct oxr_handle_base oxr_instance::handle

Common structure for things referred to by OpenXR handles.

◆ major_minor

XrVersion oxr_instance::major_minor

Stores only major.minor version. Simplifies comparisons for e.g. "at least OpenXR 1.1".

◆ messengers

struct oxr_debug_messenger* oxr_instance::messengers[256]

Debug messengers.

◆ no_validation_error_in_create_ref_space

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.

◆ parallel_views

bool oxr_instance::parallel_views

For applications that rely on views being parallel, notably some OpenVR games with OpenComposite.

◆ path_array

struct oxr_path** oxr_instance::path_array

Mapping from ID to path.

◆ path_array_length

size_t oxr_instance::path_array_length

Total length of path array.

◆ path_num

size_t oxr_instance::path_num

Number of paths in the array (0 is always null).

◆ path_store

struct u_hashset* oxr_instance::path_store

Path store, for looking up paths.

◆ profiles

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().

◆ skip_end_session

bool oxr_instance::skip_end_session

Unreal 4 has a bug calling xrEndSession; the function should just exit.


The documentation for this struct was generated from the following file: