Monado OpenXR Runtime
|
C++ version of the sdl_program struct, where you place C++ only things. More...
#include <sdl_test/sdl_internal.hpp>
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 void | 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 void | xrt_device_set_output (struct xrt_device *xdev, enum xrt_output_name name, const union xrt_output_value *value) |
Helper function for xrt_device::set_output. More... | |
static void | 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 bool | 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_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 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... | |
Data Fields inherited from sdl_program | |
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... | |
bool | orientation_tracking_supported |
bool | position_tracking_supported |
bool | hand_tracking_supported |
bool | eye_gaze_supported |
bool | force_feedback_supported |
bool | ref_space_usage_supported |
bool | form_factor_check_supported |
bool | stage_supported |
bool | face_tracking_supported |
bool | body_tracking_supported |
bool | battery_status_supported |
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... | |
void(* | 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... | |
void(* | set_output )(struct xrt_device *xdev, enum xrt_output_name name, const union xrt_output_value *value) |
Set a output value. More... | |
void(* | 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... | |
bool(* | 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(* | 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 xrt_device * left | |
An observing pointer to the device providing hand tracking for the left hand (optional). More... | |
struct xrt_device * right | |
An observing pointer to the device providing hand tracking for the right hand (optional). More... | |
} 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... | |
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... | |
Related Functions inherited from sdl_program | |
#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... | |
C++ version of the sdl_program struct, where you place C++ only things.