|
Monado OpenXR Runtime
|
C base class for the SDL program. More...
#include <sdl_test/sdl_internal.h>


Data Fields | |
| struct xrt_device | xdev_base |
| Base class for devices. More... | |
| struct xrt_instance | xinst_base |
| Instance base. More... | |
| struct u_system * | usys |
| System, implemented for now using helper code. More... | |
| struct xrt_system_devices | xsysd_base |
| System devices base. More... | |
| struct xrt_space_overseer * | xso |
| Space overseer, implemented for now using helper code. More... | |
| struct sdl_compositor | c |
| SDL compositor struct. More... | |
| struct xrt_system_compositor * | xsysc |
| Created system compositor. More... | |
| struct xrt_input | inputs [1] |
| Inputs exposed by the SDL device. More... | |
| struct xrt_hmd_parts | hmd |
| HMD parts exposed by the SDL device to become a HMD. More... | |
| struct xrt_tracking_origin | origin |
| Tracking origin that the device is located in. More... | |
| enum u_logging_level | log_level |
| The current log level. More... | |
| struct { | |
| struct { | |
| struct xrt_pose pose | |
| The pose of the head, only used for view space. More... | |
| } head | |
| struct { | |
| struct xrt_pose pose | |
| Pose of each individual eye. More... | |
| struct xrt_fov fov | |
| Fov of each individual eye. More... | |
| } left | |
| struct { | |
| struct xrt_pose pose | |
| Pose of each individual eye. More... | |
| struct xrt_fov fov | |
| Fov of each individual eye. More... | |
| } right | |
| } | state |
| SDL_Window * | win |
| The main window. More... | |
| SDL_GLContext | ctx |
| Main OpenGL context. More... | |
| struct os_mutex | current_mutex |
| Protects the OpenGL context. More... | |
| struct sdl_program_plus * | spp |
| Pointer back to the C++ part of the program. More... | |
Data Fields inherited from xrt_instance | |
| struct xrt_instance_info | instance_info |
| Instance information structure, including both platform and application info. More... | |
| int64_t | startup_timestamp |
| CLOCK_MONOTONIC timestamp of the instance startup. More... | |
| struct xrt_instance_android * | android_instance |
| An "aspect" of the xrt_instance interface, used only on Android. More... | |
| xrt_result_t(* | create_system )(struct xrt_instance *xinst, struct xrt_system **out_xsys, struct xrt_system_devices **out_xsysd, struct xrt_space_overseer **out_xso, struct xrt_system_compositor **out_xsysc) |
| Creates all of the system resources like the devices and system compositor. More... | |
| xrt_result_t(* | get_prober )(struct xrt_instance *xinst, struct xrt_prober **out_xp) |
| Get the instance xrt_prober, if any. More... | |
| void(* | destroy )(struct xrt_instance *xinst) |
| Destroy the instance and its owned objects, including the prober (if any). More... | |
Data Fields inherited from xrt_device | |
| enum xrt_device_name | name |
| Enum identifier of the device. More... | |
| enum xrt_device_type | device_type |
| char | str [256] |
| A string describing the device. More... | |
| char | serial [256] |
| A unique identifier. Persistent across configurations, if possible. More... | |
| struct xrt_hmd_parts * | hmd |
| Null if this device does not interface with the users head. More... | |
| struct xrt_tracking_origin * | tracking_origin |
| Always set, pointing to the tracking system for this device. More... | |
| size_t | binding_profile_count |
| Number of bindings in xrt_device::binding_profiles. More... | |
| struct xrt_binding_profile * | binding_profiles |
| size_t | input_count |
| Number of inputs. More... | |
| struct xrt_input * | inputs |
| Array of input structs. More... | |
| size_t | output_count |
| Number of outputs. More... | |
| struct xrt_output * | outputs |
| Array of output structs. More... | |
| struct xrt_device_supported | supported |
| What features/functions/things does this device supports? More... | |
| xrt_result_t(* | update_inputs )(struct xrt_device *xdev) |
| Update any attached inputs. More... | |
| xrt_result_t(* | get_tracked_pose )(struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation) |
| Get relationship of a tracked device to the tracking origin space as the base space. More... | |
| xrt_result_t(* | get_hand_tracking )(struct xrt_device *xdev, enum xrt_input_name name, int64_t desired_timestamp_ns, struct xrt_hand_joint_set *out_value, int64_t *out_timestamp_ns) |
| Get relationship of hand joints to the tracking origin space as the base space. More... | |
| xrt_result_t(* | get_face_tracking )(struct xrt_device *xdev, enum xrt_input_name facial_expression_type, int64_t at_timestamp_ns, struct xrt_facial_expression_set *out_value) |
| Get the requested blend shape properties & weights for a face tracker. More... | |
| xrt_result_t(* | get_body_skeleton )(struct xrt_device *xdev, enum xrt_input_name body_tracking_type, struct xrt_body_skeleton *out_value) |
| Get the body skeleton in T-pose, used to query the skeleton hierarchy, scale, proportions etc. More... | |
| xrt_result_t(* | get_body_joints )(struct xrt_device *xdev, enum xrt_input_name body_tracking_type, int64_t desired_timestamp_ns, struct xrt_body_joint_set *out_value) |
| Get the joint locations for a body tracker. More... | |
| xrt_result_t(* | reset_body_tracking_calibration_meta )(struct xrt_device *xdev) |
| XR_META_body_tracking_calibration - body tracking extension to reset the body tracking calibration. More... | |
| xrt_result_t(* | set_body_tracking_calibration_override_meta )(struct xrt_device *xdev, float new_body_height) |
| XR_META_body_tracking_calibration - body tracking extension to suggest a body tracking calibration override. More... | |
| xrt_result_t(* | set_output )(struct xrt_device *xdev, enum xrt_output_name name, const struct xrt_output_value *value) |
| Set a output value. More... | |
| xrt_result_t(* | get_output_limits )(struct xrt_device *xdev, struct xrt_output_limits *limits) |
| Gets limits of this devices outputs. More... | |
| xrt_result_t(* | get_presence )(struct xrt_device *xdev, bool *presence) |
| Get current presence status of the device. More... | |
| enum xrt_result(* | begin_plane_detection_ext )(struct xrt_device *xdev, const struct xrt_plane_detector_begin_info_ext *begin_info, uint64_t plane_detection_id, uint64_t *out_plane_detection_id) |
| Begin a plane detection request. More... | |
| enum xrt_result(* | destroy_plane_detection_ext )(struct xrt_device *xdev, uint64_t plane_detection_id) |
| Destroy internal resources associated with plane_detector_id. More... | |
| enum xrt_result(* | get_plane_detection_state_ext )(struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) |
| Get the state of a plane detection request. More... | |
| enum xrt_result(* | get_plane_detections_ext )(struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) |
| Get results of a plane detection request. More... | |
| xrt_result_t(* | get_view_poses )(struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, uint32_t view_count, struct xrt_space_relation *out_head_relation, struct xrt_fov *out_fovs, struct xrt_pose *out_poses) |
| Get the per-view pose in relation to the view space. More... | |
| xrt_result_t(* | compute_distortion )(struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result) |
| Compute the distortion at a single point. More... | |
| xrt_result_t(* | get_visibility_mask )(struct xrt_device *xdev, enum xrt_visibility_mask_type type, uint32_t view_index, struct xrt_visibility_mask **out_mask) |
| Get the visibility mask for this device. More... | |
| xrt_result_t(* | ref_space_usage )(struct xrt_device *xdev, enum xrt_reference_space_type type, enum xrt_input_name name, bool used) |
| Called by the xrt_space_overseer when a reference space that is implemented by this device is first used, or when the last usage of the reference space stops. More... | |
| bool(* | is_form_factor_available )(struct xrt_device *xdev, enum xrt_form_factor form_factor) |
| Check if given form factor is available or not. More... | |
| xrt_result_t(* | get_battery_status )(struct xrt_device *xdev, bool *out_present, bool *out_charging, float *out_charge) |
| Get battery status information. More... | |
| xrt_result_t(* | get_brightness )(struct xrt_device *xdev, float *out_brightness) |
| Get the current display brightness. More... | |
| xrt_result_t(* | set_brightness )(struct xrt_device *xdev, float brightness, bool relative) |
| Set the display brightness. More... | |
| xrt_result_t(* | begin_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type) |
| Enable the feature for this device. More... | |
| xrt_result_t(* | end_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type) |
| Disable the feature for this device. More... | |
| void(* | destroy )(struct xrt_device *xdev) |
| Destroy device. More... | |
Data Fields inherited from xrt_system_devices | |
| struct xrt_device * | xdevs [(32)] |
| All devices known in the system. More... | |
| size_t | xdev_count |
| The number of elements in xdevs that are valid. More... | |
| struct { | |
| struct xrt_device * head | |
| An observing pointer to the device serving as the "head" (and HMD). More... | |
| struct xrt_device * eyes | |
| An observing pointer to the device providing eye tracking (optional). More... | |
| struct xrt_device * face | |
| An observing pointer to the device providing face tracking (optional). More... | |
| struct xrt_device * body | |
| An observing pointer to the device providing body tracking (optional). More... | |
| struct { | |
| struct { | |
| struct xrt_device * left | |
| An observing pointer to the device providing unobstructed hand-tracking for the left hand (optional). More... | |
| struct xrt_device * right | |
| An observing pointer to the device providing unobstructed hand-tracking for the right hand (optional). More... | |
| } unobstructed | |
| struct { | |
| struct xrt_device * left | |
| An observing pointer to the device providing conforming (controller) hand-tracking for the left hand (optional). More... | |
| struct xrt_device * right | |
| An observing pointer to the device providing conforming (controller) hand-tracking for the right hand (optional). More... | |
| } conforming | |
| } hand_tracking | |
| Devices providing optical (or otherwise more directly measured than from controller estimation) hand tracking. More... | |
| } | static_roles |
| Observing pointers for devices in some static (unchangeable) roles. More... | |
| xrt_result_t(* | get_roles )(struct xrt_system_devices *xsysd, struct xrt_system_roles *out_roles) |
| Function to get the dynamic input device roles from this system devices, see xrt_system_roles for more information. More... | |
| xrt_result_t(* | feature_inc )(struct xrt_system_devices *xsysd, enum xrt_device_feature_type type) |
| Increment the usage count of a feature. More... | |
| xrt_result_t(* | feature_dec )(struct xrt_system_devices *xsysd, enum xrt_device_feature_type type) |
| Decrement the usage count of a feature. More... | |
| void(* | destroy )(struct xrt_system_devices *xsysd) |
| Destroy all the devices that are owned by this system devices. More... | |
Data Fields inherited from sdl_compositor | |
| struct comp_base | base |
| Base native compositor. More... | |
| struct u_pacing_compositor * | upc |
| Pacing helper to drive us forward. More... | |
| struct { | |
| uint64_t frame_interval_ns | |
| Frame interval that we are using. More... | |
| } | settings |
| struct xrt_system_compositor_info | sys_info |
| struct { | |
| struct sdl_comp_frame waited | |
| struct sdl_comp_frame rendering | |
| } | frame |
Data Fields inherited from comp_base | |
| struct xrt_compositor_native | base |
| Base native compositor. More... | |
| struct vk_bundle | vk |
| Vulkan bundle of useful things, used by swapchain and fence. More... | |
| struct os_precise_sleeper | sleeper |
| For default xrt_compositor::wait_frame. More... | |
| struct comp_swapchain_shared | cscs |
| Swapchain garbage collector, used by swapchain, child class needs to call. More... | |
| struct comp_layer_accum | layer_accum |
| Collect layers for a single frame. More... | |
| struct comp_frame_params | frame_params |
| Parameters for a single frame. More... | |
Data Fields inherited from xrt_compositor_native | |
| struct xrt_compositor | base |
| Base. More... | |
Data Fields inherited from xrt_compositor | |
| struct xrt_compositor_info | info |
| Capabilities and recommended values information. More... | |
| xrt_result_t(* | get_swapchain_create_properties )(struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_create_properties *xsccp) |
| For a given xrt_swapchain_create_info struct returns a filled out xrt_swapchain_create_properties. More... | |
| xrt_result_t(* | create_passthrough )(struct xrt_compositor *xc, const struct xrt_passthrough_create_info *info) |
| Create a passthrough. More... | |
| xrt_result_t(* | create_passthrough_layer )(struct xrt_compositor *xc, const struct xrt_passthrough_layer_create_info *info) |
| Create a passthrough layer. More... | |
| xrt_result_t(* | destroy_passthrough )(struct xrt_compositor *xc) |
| Destroy a passthrough. More... | |
| xrt_result_t(* | set_performance_level )(struct xrt_compositor *xc, enum xrt_perf_domain domain, enum xrt_perf_set_level level) |
| Set CPU/GPU performance level. More... | |
| xrt_result_t(* | get_reference_bounds_rect )(struct xrt_compositor *xc, enum xrt_reference_space_type reference_space_type, struct xrt_vec2 *bounds) |
| Get the extents of the reference space's bounds rectangle. More... | |
| void(* | destroy )(struct xrt_compositor *xc) |
| Teardown the compositor. More... | |
| xrt_result_t(* | create_swapchain )(struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain **out_xsc) |
| Create a swapchain with a set of images. More... | |
| xrt_result_t(* | import_swapchain )(struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_image_native *native_images, uint32_t image_count, struct xrt_swapchain **out_xsc) |
| Create a swapchain from a set of native images. More... | |
| xrt_result_t(* | import_fence )(struct xrt_compositor *xc, xrt_graphics_sync_handle_t handle, struct xrt_compositor_fence **out_xcf) |
| Create a compositor fence from a native sync handle. More... | |
| xrt_result_t(* | create_semaphore )(struct xrt_compositor *xc, xrt_graphics_sync_handle_t *out_handle, struct xrt_compositor_semaphore **out_xcsem) |
| Create a compositor semaphore, also returns a native handle. More... | |
| xrt_result_t(* | begin_session )(struct xrt_compositor *xc, const struct xrt_begin_session_info *info) |
| See xrBeginSession. More... | |
| xrt_result_t(* | end_session )(struct xrt_compositor *xc) |
| See xrEndSession, unlike the OpenXR one the state tracker is responsible to call discard frame before calling this function. More... | |
| xrt_result_t(* | predict_frame )(struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_wake_time_ns, int64_t *out_predicted_gpu_time_ns, int64_t *out_predicted_display_time_ns, int64_t *out_predicted_display_period_ns) |
| This function and mark_frame function calls are a alternative to wait_frame. More... | |
| xrt_result_t(* | mark_frame )(struct xrt_compositor *xc, int64_t frame_id, enum xrt_compositor_frame_point point, int64_t when_ns) |
| This function and predict_frame function calls are a alternative to wait_frame. More... | |
| xrt_result_t(* | wait_frame )(struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_predicted_display_time, int64_t *out_predicted_display_period) |
| See xrWaitFrame. More... | |
| xrt_result_t(* | begin_frame )(struct xrt_compositor *xc, int64_t frame_id) |
| See xrBeginFrame. More... | |
| xrt_result_t(* | discard_frame )(struct xrt_compositor *xc, int64_t frame_id) |
| Explicitly discard a frame. More... | |
| xrt_result_t(* | layer_begin )(struct xrt_compositor *xc, const struct xrt_layer_frame_data *data) |
| Begins layer submission. More... | |
| xrt_result_t(* | layer_projection )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
| Adds a projection layer for submissions. More... | |
| xrt_result_t(* | layer_projection_depth )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], struct xrt_swapchain *d_xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
| Adds a projection layer for submission, has depth information. More... | |
| xrt_result_t(* | layer_quad )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a quad layer for submission, the center of the quad is specified by the pose and extends outwards from it. More... | |
| xrt_result_t(* | layer_cube )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a cube layer for submission. More... | |
| xrt_result_t(* | layer_cylinder )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a cylinder layer for submission. More... | |
| xrt_result_t(* | layer_equirect1 )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a equirect1 layer for submission. More... | |
| xrt_result_t(* | layer_equirect2 )(struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a equirect2 layer for submission. More... | |
| xrt_result_t(* | layer_passthrough )(struct xrt_compositor *xc, struct xrt_device *xdev, const struct xrt_layer_data *data) |
| Adds a passthrough layer for submission. More... | |
| xrt_result_t(* | layer_commit )(struct xrt_compositor *xc, xrt_graphics_sync_handle_t sync_handle) |
| Commits all of the submitted layers. More... | |
| xrt_result_t(* | layer_commit_with_semaphore )(struct xrt_compositor *xc, struct xrt_compositor_semaphore *xcsem, uint64_t value) |
| Commits all of the submitted layers, with a semaphore. More... | |
| xrt_result_t(* | get_display_refresh_rate )(struct xrt_compositor *xc, float *out_display_refresh_rate_hz) |
| Get the current display refresh rate. More... | |
| xrt_result_t(* | request_display_refresh_rate )(struct xrt_compositor *xc, float display_refresh_rate_hz) |
| Request system to change the display refresh rate to the requested value. More... | |
| xrt_result_t(* | set_thread_hint )(struct xrt_compositor *xc, enum xrt_thread_hint hint, uint32_t thread_id) |
| Set thread attributes according to thread type. More... | |
Related Functions | |
(Note that these are not member functions.) | |
| #define | ST_TRACE(sp, ...) U_LOG_IFL_T(sp->log_level, __VA_ARGS__); |
| Spew level logging. More... | |
| #define | ST_DEBUG(sp, ...) U_LOG_IFL_D(sp->log_level, __VA_ARGS__); |
| Debug level logging. More... | |
| #define | ST_INFO(sp, ...) U_LOG_IFL_I(sp->log_level, __VA_ARGS__); |
| Info level logging. More... | |
| #define | ST_WARN(sp, ...) U_LOG_IFL_W(sp->log_level, __VA_ARGS__); |
| Warn level logging. More... | |
| #define | ST_ERROR(sp, ...) U_LOG_IFL_E(sp->log_level, __VA_ARGS__); |
| Error level logging. More... | |
Related Functions inherited from xrt_instance | |
| xrt_result_t | xrt_instance_create (struct xrt_instance_info *ii, struct xrt_instance **out_xinst) |
| Create an implementation of the xrt_instance interface. More... | |
Related Functions inherited from xrt_device | |
| void | u_distortion_mesh_fill_in_compute (struct xrt_device *xdev) |
Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models. More... | |
| void | u_distortion_mesh_fill_in_none (struct xrt_device *xdev) |
Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models. More... | |
| void | u_distortion_mesh_set_none (struct xrt_device *xdev) |
Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion() and populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models. More... | |
Additional Inherited Members | |
Public Member Functions inherited from xrt_compositor_native | |
| struct xrt_compositor_d3d11 * | xrt_gfx_d3d11_provider_create (struct xrt_compositor_native *xcn, ID3D11Device *device) |
| Create a D3D11 compositor client. More... | |
| struct xrt_compositor_d3d12 * | xrt_gfx_d3d12_provider_create (struct xrt_compositor_native *xcn, ID3D12Device *device, ID3D12CommandQueue *queue) |
| Create a D3D12 compositor client. More... | |
| xrt_result_t | xrt_gfx_provider_create_gl_egl (struct xrt_compositor_native *xcn, EGLDisplay display, EGLConfig config, EGLContext context, PFNEGLGETPROCADDRESSPROC get_gl_procaddr, bool renderdoc_enabled, struct xrt_compositor_gl **out_xcgl) |
| Create an OpenGL(ES) compositor client using EGL. More... | |
| struct xrt_compositor_vk * | xrt_gfx_vk_provider_create (struct xrt_compositor_native *xcn, VkInstance instance, PFN_vkGetInstanceProcAddr get_instance_proc_addr, VkPhysicalDevice physical_device, VkDevice device, bool external_fence_fd_enabled, bool external_semaphore_fd_enabled, bool timeline_semaphore_enabled, bool image_format_list_enabled, bool debug_utils_enabled, bool renderdoc_enabled, uint32_t queue_family_index, uint32_t queue_index) |
| Create a Vulkan compositor client. More... | |
| struct xrt_compositor_gl * | xrt_gfx_provider_create_gl_win32 (struct xrt_compositor_native *xcn, void *hDC, void *hGLRC) |
| Create an OpenGL compositor client using Win32. More... | |
| struct xrt_compositor_gl * | xrt_gfx_provider_create_gl_xlib (struct xrt_compositor_native *xcn, Display *xDisplay, uint32_t visualid, GLXFBConfig glxFBConfig, GLXDrawable glxDrawable, GLXContext glxContext) |
| Create an OpenGL compositor client using xlib. More... | |
Static Public Member Functions inherited from xrt_instance | |
| static xrt_result_t | xrt_instance_create_system (struct xrt_instance *xinst, struct xrt_system **out_xsys, struct xrt_system_devices **out_xsysd, struct xrt_space_overseer **out_xso, struct xrt_system_compositor **out_xsysc) |
| Creates all of the system resources like the devices and system compositor. More... | |
| static xrt_result_t | xrt_instance_get_prober (struct xrt_instance *xinst, struct xrt_prober **out_xp) |
| Get the instance xrt_prober, if any. More... | |
| static void | xrt_instance_destroy (struct xrt_instance **xinst_ptr) |
| Destroy an xrt_instance - helper function. More... | |
Static Public Member Functions inherited from xrt_device | |
| static xrt_result_t | xrt_device_update_inputs (struct xrt_device *xdev) |
| Helper function for xrt_device::update_inputs. More... | |
| static xrt_result_t | xrt_device_get_tracked_pose (struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation) |
| Helper function for xrt_device::get_tracked_pose. More... | |
| static xrt_result_t | xrt_device_get_hand_tracking (struct xrt_device *xdev, enum xrt_input_name name, int64_t desired_timestamp_ns, struct xrt_hand_joint_set *out_value, int64_t *out_timestamp_ns) |
| Helper function for xrt_device::get_hand_tracking. More... | |
| static xrt_result_t | xrt_device_get_face_tracking (struct xrt_device *xdev, enum xrt_input_name facial_expression_type, int64_t at_timestamp_ns, struct xrt_facial_expression_set *out_value) |
| Helper function for xrt_device::get_face_tracking. More... | |
| static xrt_result_t | xrt_device_get_body_skeleton (struct xrt_device *xdev, enum xrt_input_name body_tracking_type, struct xrt_body_skeleton *out_value) |
| Helper function for xrt_device::get_body_skeleton. More... | |
| static xrt_result_t | xrt_device_get_body_joints (struct xrt_device *xdev, enum xrt_input_name body_tracking_type, int64_t desired_timestamp_ns, struct xrt_body_joint_set *out_value) |
| Helper function for xrt_device::get_body_joints. More... | |
| static xrt_result_t | xrt_device_reset_body_tracking_calibration_meta (struct xrt_device *xdev) |
| Helper function for xrt_device::reset_body_tracking_calibration_meta. More... | |
| static xrt_result_t | xrt_device_set_body_tracking_calibration_override_meta (struct xrt_device *xdev, float new_body_height) |
| Helper function for xrt_device::set_body_tracking_calibration_override_meta. More... | |
| static xrt_result_t | xrt_device_set_output (struct xrt_device *xdev, enum xrt_output_name name, const struct xrt_output_value *value) |
| Helper function for xrt_device::set_output. More... | |
| static xrt_result_t | xrt_device_get_presence (struct xrt_device *xdev, bool *presence) |
| Helper function for xrt_device::get_presence. More... | |
| static enum xrt_result | xrt_device_begin_plane_detection_ext (struct xrt_device *xdev, const struct xrt_plane_detector_begin_info_ext *begin_info, uint64_t plane_detection_id, uint64_t *out_plane_detection_id) |
| Helper function for xrt_device::begin_plane_detection. More... | |
| static enum xrt_result | xrt_device_destroy_plane_detection_ext (struct xrt_device *xdev, uint64_t plane_detection_id) |
| Helper function for xrt_device::destroy_plane_detection. More... | |
| static enum xrt_result | xrt_device_get_plane_detection_state_ext (struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) |
| Helper function for xrt_device::get_plane_detections. More... | |
| static enum xrt_result | xrt_device_get_plane_detections_ext (struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) |
| Helper function for xrt_device::get_plane_detections. More... | |
| static xrt_result_t | xrt_device_get_view_poses (struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, uint32_t view_count, struct xrt_space_relation *out_head_relation, struct xrt_fov *out_fovs, struct xrt_pose *out_poses) |
| Helper function for xrt_device::get_view_poses. More... | |
| static xrt_result_t | xrt_device_compute_distortion (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result) |
| Helper function for xrt_device::compute_distortion. More... | |
| static xrt_result_t | xrt_device_get_visibility_mask (struct xrt_device *xdev, enum xrt_visibility_mask_type type, uint32_t view_index, struct xrt_visibility_mask **out_mask) |
| Helper function for xrt_device::get_visibility_mask. More... | |
| static xrt_result_t | xrt_device_ref_space_usage (struct xrt_device *xdev, enum xrt_reference_space_type type, enum xrt_input_name name, bool used) |
| Helper function for xrt_device::ref_space_usage. More... | |
| static bool | xrt_device_is_form_factor_available (struct xrt_device *xdev, enum xrt_form_factor form_factor) |
| Helper function for xrt_device::is_form_factor_available. More... | |
| static xrt_result_t | xrt_device_get_battery_status (struct xrt_device *xdev, bool *out_present, bool *out_charging, float *out_charge) |
| Helper function for xrt_device::get_battery_status. More... | |
| static xrt_result_t | xrt_device_get_brightness (struct xrt_device *xdev, float *out_brightness) |
| Helper function for xrt_device::get_brightness. More... | |
| static xrt_result_t | xrt_device_set_brightness (struct xrt_device *xdev, float brightness, bool relative) |
| Helper function for xrt_device::set_brightness. More... | |
| static xrt_result_t | xrt_device_begin_feature (struct xrt_device *xdev, enum xrt_device_feature_type type) |
| Helper function for xrt_device::begin_feature. More... | |
| static xrt_result_t | xrt_device_end_feature (struct xrt_device *xdev, enum xrt_device_feature_type type) |
| Helper function for xrt_device::end_feature. More... | |
| static void | xrt_device_destroy (struct xrt_device **xdev_ptr) |
| Helper function for xrt_device::destroy. More... | |
| static xrt_result_t | ipc_client_xdev_get_plane_detection_state_ext (struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) |
| Helper function for xrt_device::get_plane_detection_state. More... | |
| static xrt_result_t | ipc_client_xdev_get_plane_detections_ext (struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) |
| Helper function for xrt_device::get_plane_detections. More... | |
Static Public Member Functions inherited from xrt_system_devices | |
| static xrt_result_t | xrt_system_devices_get_roles (struct xrt_system_devices *xsysd, struct xrt_system_roles *out_roles) |
| Function to get the dynamic input device roles from this system devices, see xrt_system_roles for more information. More... | |
| static xrt_result_t | xrt_system_devices_feature_inc (struct xrt_system_devices *xsysd, enum xrt_device_feature_type type) |
| Increment the usage count of a feature. More... | |
| static xrt_result_t | xrt_system_devices_feature_dec (struct xrt_system_devices *xsysd, enum xrt_device_feature_type type) |
| Decrement the usage count of a feature. More... | |
| static void | xrt_system_devices_destroy (struct xrt_system_devices **xsysd_ptr) |
| Destroy an xrt_system_devices and owned devices - helper function. More... | |
Static Public Member Functions inherited from xrt_compositor_native | |
| static xrt_result_t | xrt_comp_native_create_swapchain (struct xrt_compositor_native *xcn, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_native **out_xscn) |
| Create a native swapchain with a set of images. More... | |
| static void | xrt_comp_native_destroy (struct xrt_compositor_native **xcn_ptr) |
| Teardown the compositor. More... | |
Static Public Member Functions inherited from xrt_compositor | |
| static xrt_result_t | xrt_comp_get_swapchain_create_properties (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain_create_properties *xsccp) |
| For a given xrt_swapchain_create_info struct returns a filled out xrt_swapchain_create_properties. More... | |
| static xrt_result_t | xrt_comp_create_passthrough (struct xrt_compositor *xc, const struct xrt_passthrough_create_info *info) |
| Create a passthrough. More... | |
| static xrt_result_t | xrt_comp_create_passthrough_layer (struct xrt_compositor *xc, const struct xrt_passthrough_layer_create_info *info) |
| Create a passthrough layer. More... | |
| static xrt_result_t | xrt_comp_destroy_passthrough (struct xrt_compositor *xc) |
| Destroy a passthrough. More... | |
| static xrt_result_t | xrt_comp_get_display_refresh_rate (struct xrt_compositor *xc, float *out_display_refresh_rate_hz) |
| Get the current display refresh rate. More... | |
| static xrt_result_t | xrt_comp_request_display_refresh_rate (struct xrt_compositor *xc, float display_refresh_rate_hz) |
| Request system to change the display refresh rate to the requested value. More... | |
| static xrt_result_t | xrt_comp_set_performance_level (struct xrt_compositor *xc, enum xrt_perf_domain domain, enum xrt_perf_set_level level) |
| Set CPU/GPU performance level. More... | |
| static xrt_result_t | xrt_comp_get_reference_bounds_rect (struct xrt_compositor *xc, enum xrt_reference_space_type reference_space_type, struct xrt_vec2 *bounds) |
| Get the extents of the reference space's bounds rectangle. More... | |
| static void | xrt_comp_destroy (struct xrt_compositor **xc_ptr) |
| Teardown the compositor. More... | |
| static xrt_result_t | xrt_comp_create_swapchain (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_swapchain **out_xsc) |
| Create a swapchain with a set of images. More... | |
| static xrt_result_t | xrt_comp_import_swapchain (struct xrt_compositor *xc, const struct xrt_swapchain_create_info *info, struct xrt_image_native *native_images, uint32_t image_count, struct xrt_swapchain **out_xsc) |
| Create a swapchain from a set of native images. More... | |
| static xrt_result_t | xrt_comp_import_fence (struct xrt_compositor *xc, xrt_graphics_sync_handle_t handle, struct xrt_compositor_fence **out_xcf) |
| Create a compositor fence from a native sync handle. More... | |
| static xrt_result_t | xrt_comp_create_semaphore (struct xrt_compositor *xc, xrt_graphics_sync_handle_t *out_handle, struct xrt_compositor_semaphore **out_xcsem) |
| Create a compositor semaphore, also returns a native handle. More... | |
| static xrt_result_t | xrt_comp_begin_session (struct xrt_compositor *xc, const struct xrt_begin_session_info *info) |
| See xrBeginSession. More... | |
| static xrt_result_t | xrt_comp_end_session (struct xrt_compositor *xc) |
| See xrEndSession, unlike the OpenXR one the state tracker is responsible to call discard frame before calling this function. More... | |
| static xrt_result_t | xrt_comp_predict_frame (struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_wake_time_ns, int64_t *out_predicted_gpu_time_ns, int64_t *out_predicted_display_time_ns, int64_t *out_predicted_display_period_ns) |
| This function and mark_frame function calls are a alternative to wait_frame. More... | |
| static xrt_result_t | xrt_comp_mark_frame (struct xrt_compositor *xc, int64_t frame_id, enum xrt_compositor_frame_point point, int64_t when_ns) |
| This function and predict_frame function calls are a alternative to wait_frame. More... | |
| static xrt_result_t | xrt_comp_wait_frame (struct xrt_compositor *xc, int64_t *out_frame_id, int64_t *out_predicted_display_time, int64_t *out_predicted_display_period) |
| See xrWaitFrame. More... | |
| static xrt_result_t | xrt_comp_begin_frame (struct xrt_compositor *xc, int64_t frame_id) |
| See xrBeginFrame. More... | |
| static xrt_result_t | xrt_comp_discard_frame (struct xrt_compositor *xc, int64_t frame_id) |
| Explicitly discard a frame. More... | |
| static xrt_result_t | xrt_comp_layer_begin (struct xrt_compositor *xc, const struct xrt_layer_frame_data *data) |
| Begins layer submission. More... | |
| static xrt_result_t | xrt_comp_layer_projection (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
| Adds a projection layer for submissions. More... | |
| static xrt_result_t | xrt_comp_layer_projection_depth (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc[XRT_MAX_VIEWS], struct xrt_swapchain *d_xsc[XRT_MAX_VIEWS], const struct xrt_layer_data *data) |
| Adds a projection layer for submission, has depth information. More... | |
| static xrt_result_t | xrt_comp_layer_quad (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a quad layer for submission, the center of the quad is specified by the pose and extends outwards from it. More... | |
| static xrt_result_t | xrt_comp_layer_cube (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a cube layer for submission. More... | |
| static xrt_result_t | xrt_comp_layer_cylinder (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a cylinder layer for submission. More... | |
| static xrt_result_t | xrt_comp_layer_equirect1 (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a equirect1 layer for submission. More... | |
| static xrt_result_t | xrt_comp_layer_equirect2 (struct xrt_compositor *xc, struct xrt_device *xdev, struct xrt_swapchain *xsc, const struct xrt_layer_data *data) |
| Adds a equirect2 layer for submission. More... | |
| static xrt_result_t | xrt_comp_layer_passthrough (struct xrt_compositor *xc, struct xrt_device *xdev, const struct xrt_layer_data *data) |
| Adds a passthrough layer for submission. More... | |
| static xrt_result_t | xrt_comp_layer_commit (struct xrt_compositor *xc, xrt_graphics_sync_handle_t sync_handle) |
| Commits all of the submitted layers. More... | |
| static xrt_result_t | xrt_comp_layer_commit_with_semaphore (struct xrt_compositor *xc, struct xrt_compositor_semaphore *xcsem, uint64_t value) |
| Commits all of the submitted layers, with a semaphore. More... | |
Protected Member Functions inherited from comp_base | |
| void | comp_base_init (struct comp_base *cb) |
| Inits all of the supported functions and structs, except vk_bundle. More... | |
C base class for the SDL program.
|
related |
Debug level logging.
|
related |
Error level logging.
|
related |
Info level logging.
|
related |
Spew level logging.
|
related |
Warn level logging.
| struct sdl_compositor sdl_program::c |
SDL compositor struct.
Referenced by sdl_program_plus_render().
| SDL_GLContext sdl_program::ctx |
Main OpenGL context.
Referenced by sdl_make_current().
| struct os_mutex sdl_program::current_mutex |
Protects the OpenGL context.
Referenced by sdl_make_current(), sdl_make_uncurrent(), sdl_program_plus_create(), and sdl_program_plus_destroy().
| struct xrt_fov sdl_program::fov |
Fov of each individual eye.
| struct xrt_hmd_parts sdl_program::hmd |
HMD parts exposed by the SDL device to become a HMD.
Referenced by sdl_device_init().
| struct xrt_input sdl_program::inputs[1] |
Inputs exposed by the SDL device.
Referenced by sdl_device_init().
| enum u_logging_level sdl_program::log_level |
The current log level.
Referenced by sdl_program_plus_create().
| struct xrt_tracking_origin sdl_program::origin |
Tracking origin that the device is located in.
Referenced by sdl_device_init().
| struct xrt_pose sdl_program::pose |
The pose of the head, only used for view space.
Pose of each individual eye.
Referenced by sdl_program_plus_create().
| struct sdl_program_plus* sdl_program::spp |
Pointer back to the C++ part of the program.
Referenced by sdl_program_plus_create(), sdl_program_plus_destroy(), and sdl_program_plus_render().
| struct u_system* sdl_program::usys |
System, implemented for now using helper code.
Referenced by sdl_system_init().
| SDL_Window* sdl_program::win |
The main window.
Referenced by sdl_make_current().
| struct xrt_device sdl_program::xdev_base |
Base class for devices.
Referenced by sdl_compositor_init(), and sdl_device_init().
| struct xrt_instance sdl_program::xinst_base |
Instance base.
Referenced by sdl_instance_init().
| struct xrt_space_overseer* sdl_program::xso |
Space overseer, implemented for now using helper code.
| struct xrt_system_compositor* sdl_program::xsysc |
Created system compositor.
| struct xrt_system_devices sdl_program::xsysd_base |
System devices base.
Referenced by sdl_system_devices_init().