stereokit_rust/tools/
mod.rs

1use crate::system::BackendOpenXR;
2
3pub mod build_tools;
4pub mod os_api;
5pub mod xr_android_depth_texture;
6pub mod xr_comp_layers;
7pub mod xr_fb_display_refresh_rate;
8pub mod xr_meta_simultaneous_hands_controllers;
9
10#[cfg(feature = "event-loop")]
11pub mod file_browser;
12
13#[cfg(feature = "event-loop")]
14pub mod fly_over;
15
16#[cfg(feature = "event-loop")]
17pub mod log_window;
18
19#[cfg(feature = "event-loop")]
20pub mod notif;
21
22#[cfg(feature = "event-loop")]
23pub mod screenshot;
24
25#[cfg(feature = "event-loop")]
26pub mod xr_fb_passthrough;
27
28#[cfg(feature = "event-loop")]
29pub mod xr_fb_render_model;
30
31#[cfg(feature = "event-loop")]
32pub mod xr_meta_virtual_keyboard;
33
34#[cfg(feature = "event-loop")]
35pub mod title;
36
37/// All extensions encountered so far :
38/// AndroidX + HorizonOS + ALVR Linux + WiVRn/Monado Simulator
39pub fn load_all_extensions() {
40    // Android extensions
41    BackendOpenXR::request_ext("XR_ANDROID_anchor_sharing_export");
42    BackendOpenXR::request_ext("XR_ANDROID_composition_layer_passthrough_mesh");
43    BackendOpenXR::request_ext("XR_ANDROID_depth_texture");
44    BackendOpenXR::request_ext("XR_ANDROID_device_anchor_persistence");
45    BackendOpenXR::request_ext("XR_ANDROID_eye_tracking");
46    BackendOpenXR::request_ext("XR_ANDROID_face_tracking");
47    BackendOpenXR::request_ext("XR_ANDROID_hand_mesh");
48    BackendOpenXR::request_ext("XR_ANDROID_light_estimation");
49    BackendOpenXR::request_ext("XR_ANDROID_mouse_interaction");
50    BackendOpenXR::request_ext("XR_ANDROID_passthrough_camera_state");
51    BackendOpenXR::request_ext("XR_ANDROID_performance_metrics");
52    BackendOpenXR::request_ext("XR_ANDROID_raycast");
53    BackendOpenXR::request_ext("XR_ANDROID_recommended_resolution");
54    BackendOpenXR::request_ext("XR_ANDROID_scene_meshing");
55    BackendOpenXR::request_ext("XR_ANDROID_trackables");
56    BackendOpenXR::request_ext("XR_ANDROID_trackables_marker");
57    BackendOpenXR::request_ext("XR_ANDROID_trackables_object");
58    BackendOpenXR::request_ext("XR_ANDROID_trackables_qr_code");
59    BackendOpenXR::request_ext("XR_ANDROID_unbounded_reference_space");
60    // EXT extensions
61    BackendOpenXR::request_ext("XR_EXT_active_action_set_priority");
62    BackendOpenXR::request_ext("XR_EXT_composition_layer_inverted_alpha");
63    BackendOpenXR::request_ext("XR_EXT_debug_utils");
64    BackendOpenXR::request_ext("XR_EXT_dpad_binding");
65    BackendOpenXR::request_ext("XR_EXT_frame_composition_report");
66    BackendOpenXR::request_ext("XR_EXT_frame_synthesis");
67    BackendOpenXR::request_ext("XR_EXT_future");
68    BackendOpenXR::request_ext("XR_EXT_hand_interaction");
69    BackendOpenXR::request_ext("XR_EXT_hand_joints_motion_range");
70    BackendOpenXR::request_ext("XR_EXT_hand_tracking");
71    BackendOpenXR::request_ext("XR_EXT_palm_pose");
72    BackendOpenXR::request_ext("XR_EXT_performance_settings");
73    BackendOpenXR::request_ext("XR_EXT_samsung_odyssey_controller");
74    BackendOpenXR::request_ext("XR_EXT_spatial_anchor");
75    BackendOpenXR::request_ext("XR_EXT_spatial_entity");
76    BackendOpenXR::request_ext("XR_EXT_spatial_marker_tracking");
77    BackendOpenXR::request_ext("XR_EXT_spatial_persistence");
78    BackendOpenXR::request_ext("XR_EXT_spatial_persistence_operations");
79    BackendOpenXR::request_ext("XR_EXT_spatial_plane_tracking");
80    BackendOpenXR::request_ext("XR_EXT_user_presence");
81    BackendOpenXR::request_ext("XR_EXT_uuid");
82    BackendOpenXR::request_ext("XR_EXTX_overlay");
83
84    // FB extensions
85    BackendOpenXR::request_ext("XR_FB_body_tracking");
86    BackendOpenXR::request_ext("XR_FB_color_space");
87    BackendOpenXR::request_ext("XR_FB_common_events");
88    BackendOpenXR::request_ext("XR_FB_composition_layer_alpha_blend");
89    BackendOpenXR::request_ext("XR_FB_composition_layer_depth_test");
90    BackendOpenXR::request_ext("XR_FB_composition_layer_image_layout");
91    BackendOpenXR::request_ext("XR_FB_composition_layer_secure_content");
92    BackendOpenXR::request_ext("XR_FB_composition_layer_settings");
93    BackendOpenXR::request_ext("XR_FB_display_refresh_rate");
94    BackendOpenXR::request_ext("XR_FB_face_tracking");
95    BackendOpenXR::request_ext("XR_FB_face_tracking2");
96    BackendOpenXR::request_ext("XR_FB_foveation");
97    BackendOpenXR::request_ext("XR_FB_foveation_configuration");
98    BackendOpenXR::request_ext("XR_FB_foveation_vulkan");
99    BackendOpenXR::request_ext("XR_FB_hand_tracking_aim");
100    BackendOpenXR::request_ext("XR_FB_hand_tracking_capsules");
101    BackendOpenXR::request_ext("XR_FB_hand_tracking_mesh");
102    BackendOpenXR::request_ext("XR_FB_haptic_amplitude_envelope");
103    BackendOpenXR::request_ext("XR_FB_haptic_pcm");
104    BackendOpenXR::request_ext("XR_FB_passthrough");
105    BackendOpenXR::request_ext("XR_FB_render_model");
106    BackendOpenXR::request_ext("XR_FB_scene");
107    BackendOpenXR::request_ext("XR_FB_scene_capture");
108    BackendOpenXR::request_ext("XR_FB_space_warp");
109    BackendOpenXR::request_ext("XR_FB_spatial_entity");
110    BackendOpenXR::request_ext("XR_FB_spatial_entity_container");
111    BackendOpenXR::request_ext("XR_FB_spatial_entity_query");
112    BackendOpenXR::request_ext("XR_FB_spatial_entity_sharing");
113    BackendOpenXR::request_ext("XR_FB_spatial_entity_storage");
114    BackendOpenXR::request_ext("XR_FB_spatial_entity_storage_batch");
115    BackendOpenXR::request_ext("XR_FB_spatial_entity_user");
116    BackendOpenXR::request_ext("XR_FB_swapchain_update_state");
117    BackendOpenXR::request_ext("XR_FB_swapchain_update_state_opengl_es");
118    BackendOpenXR::request_ext("XR_FB_swapchain_update_state_vulkan");
119    BackendOpenXR::request_ext("XR_FB_touch_controller_pro");
120    BackendOpenXR::request_ext("XR_FB_touch_controller_proximity");
121    BackendOpenXR::request_ext("XR_FB_triangle_mesh");
122
123    // HTC extensions
124    BackendOpenXR::request_ext("XR_HTC_facial_tracking");
125    BackendOpenXR::request_ext("XR_HTC_vive_cosmos_controller_interaction");
126    BackendOpenXR::request_ext("XR_HTC_vive_focus3_controller_interaction");
127    BackendOpenXR::request_ext("XR_HTC_vive_wrist_tracker_interaction");
128
129    BackendOpenXR::request_ext("XR_HTCX_vive_tracker_interaction");
130
131    // KHR extensions
132    BackendOpenXR::request_ext("XR_KHR_D3D12_enable\n");
133    BackendOpenXR::request_ext("XR_KHR_android_surface_swapchain");
134    BackendOpenXR::request_ext("XR_KHR_binding_modification");
135    BackendOpenXR::request_ext("XR_KHR_composition_layer_color_scale_bias");
136    BackendOpenXR::request_ext("XR_KHR_composition_layer_cube");
137    BackendOpenXR::request_ext("XR_KHR_composition_layer_cylinder");
138    BackendOpenXR::request_ext("XR_KHR_composition_layer_equirect2");
139    BackendOpenXR::request_ext("XR_KHR_extended_struct_name_lengths");
140    BackendOpenXR::request_ext("XR_KHR_generic_controller");
141    BackendOpenXR::request_ext("XR_KHR_loader_init");
142    BackendOpenXR::request_ext("XR_KHR_loader_init_android");
143    BackendOpenXR::request_ext("XR_KHR_locate_spaces");
144    BackendOpenXR::request_ext("XR_KHR_maintenance1");
145    BackendOpenXR::request_ext("XR_KHR_opengl_enable");
146    BackendOpenXR::request_ext("XR_KHR_opengl_es_enable");
147    BackendOpenXR::request_ext("XR_KHR_swapchain_usage_input_attachment_bit");
148    BackendOpenXR::request_ext("XR_KHR_visibility_mask");
149    BackendOpenXR::request_ext("XR_KHR_vulkan_enable");
150    BackendOpenXR::request_ext("XR_KHR_vulkan_enable2");
151    BackendOpenXR::request_ext("XR_KHR_vulkan_swapchain_format_list");
152
153    // Logitech extensions
154    BackendOpenXR::request_ext("XR_LOGITECH_mx_ink_stylus_interaction");
155
156    // META extensions
157    BackendOpenXR::request_ext("XR_META_automatic_layer_filter");
158    BackendOpenXR::request_ext("XR_META_body_tracking_calibration");
159    BackendOpenXR::request_ext("XR_META_body_tracking_fidelity");
160    BackendOpenXR::request_ext("XR_META_body_tracking_full_body");
161    BackendOpenXR::request_ext("XR_META_boundary_visibility");
162    BackendOpenXR::request_ext("XR_META_colocation_discovery");
163    BackendOpenXR::request_ext("XR_META_detached_controllers");
164    BackendOpenXR::request_ext("XR_META_face_tracking_visemes");
165    BackendOpenXR::request_ext("XR_META_feature_fidelity");
166    BackendOpenXR::request_ext("XR_META_foveation_eye_tracked");
167    BackendOpenXR::request_ext("XR_META_hand_tracking_microgestures");
168    BackendOpenXR::request_ext("XR_META_headset_id");
169    BackendOpenXR::request_ext("XR_META_passthrough_color_lut");
170    BackendOpenXR::request_ext("XR_META_passthrough_layer_resumed_event");
171    BackendOpenXR::request_ext("XR_META_passthrough_preferences");
172    BackendOpenXR::request_ext("XR_META_performance_metrics");
173    BackendOpenXR::request_ext("XR_META_recommended_layer_resolution");
174    BackendOpenXR::request_ext("XR_META_simultaneous_hands_and_controllers");
175    BackendOpenXR::request_ext("XR_META_spatial_entity_discovery");
176    BackendOpenXR::request_ext("XR_META_spatial_entity_group_sharing");
177    BackendOpenXR::request_ext("XR_META_spatial_entity_mesh");
178    BackendOpenXR::request_ext("XR_META_spatial_entity_persistence");
179    BackendOpenXR::request_ext("XR_META_spatial_entity_sharing");
180    BackendOpenXR::request_ext("XR_META_touch_controller_plus");
181    BackendOpenXR::request_ext("XR_META_virtual_keyboard");
182    BackendOpenXR::request_ext("XR_META_vulkan_swapchain_create_info");
183
184    // Magic Leap extensions
185    BackendOpenXR::request_ext("XR_ML_ml2_controller_interaction");
186
187    // Monado and MNDX extensions
188    BackendOpenXR::request_ext("XR_MND_headless");
189    BackendOpenXR::request_ext("XR_MND_swapchain_usage_input_attachment_bit");
190    BackendOpenXR::request_ext("XR_MNDX_ball_on_a_stick_controller");
191    BackendOpenXR::request_ext("XR_MNDX_egl_enable");
192    BackendOpenXR::request_ext("XR_MNDX_force_feedback_curl");
193    BackendOpenXR::request_ext("XR_MNDX_hydra");
194    BackendOpenXR::request_ext("XR_MNDX_oculus_remote");
195    BackendOpenXR::request_ext("XR_MNDX_system_buttons");
196    BackendOpenXR::request_ext("XR_MNDX_xdev_space");
197
198    // Oculus extensions
199    BackendOpenXR::request_ext("XR_OCULUS_common_reference_spaces");
200
201    // OPPO extensions
202    BackendOpenXR::request_ext("XR_OPPO_controller_interaction");
203
204    // Valve extensions
205    BackendOpenXR::request_ext("XR_VALVE_analog_threshold");
206}