Module openxr_runtime

Source
Expand description

OpenXR runtime scaffolding for Ailloli UI.

This module focuses on reusable integration points while keeping host-specific session policy outside the framework:

  • host can build their own OpenXR session loop
  • map controller/hand sample input into ailloli_ui_runtime events via crate::input::OpenXrInputMapper
  • keep a dedicated façade object in the same crate (VrApp) without touching ailloli_ui_winit.

The production OpenXR path owns XR lifecycle here, while ailloli_ui_render_vulkan owns Vulkan/SPIR-V UI drawing.

Re-exports§

pub use composer::OpenXrCurvedLayerBackend;
pub use composer::OpenXrCurvedScreenOptions;
pub use composer::OpenXrQuadComposer;
pub use composer::OpenXrQuadFrameLoopOptions;
pub use composer::OpenXrQuadLayerOptions;
pub use composer::OpenXrRenderVulkanFrameLoopOptions;
pub use composer::OpenXrResolvedScreenBackend;
pub use composer::OpenXrScreenComposer;
pub use composer::OpenXrScreenLayer;
pub use composer::OpenXrScreenLayerOptions;
pub use composer::OpenXrScreenSurfaceMode;
pub use composer::OpenXrUiFrameLoopOptions;
pub use error::OpenXrRuntimeError;
pub use external_host::OpenXrExternalUiHost;
pub use external_host::OpenXrExternalUiHostFrame;
pub use external_host::OpenXrExternalUiHostFrameParts;
pub use external_host::OpenXrExternalUiHostFrameResult;
pub use external_host::OpenXrExternalUiHostOptions;
pub use external_host::OpenXrExternalUiHostRayOptions;
pub use input::OpenXrActionInput;
pub use input::OpenXrActionInputFrame;
pub use input::OpenXrInputCapabilities;
pub use input::OpenXrInputHand;
pub use input::OpenXrInputSourceInfo;
pub use input::OpenXrInputSourceKind;
pub use input::OpenXrPointerSelectionPolicy;
pub use input::OpenXrUiInputOptions;
pub use instance::OpenXrInstance;
pub use panel::apply_pointer_depth_delta;
pub use panel::face_user_yaw_only;
pub use panel::face_user_yaw_pitch_clamped;
pub use panel::logical_point_to_panel_local;
pub use panel::panel_local_to_world;
pub use panel::vec3_from_xr;
pub use panel::OpenXrPanelFacingMode;
pub use panel::OpenXrPanelFacingOptions;
pub use panel::OpenXrPanelGrabState;
pub use panel::PanelDepthUpdate;
pub use panel::DEFAULT_PANEL_PITCH_MAX_RAD;
pub use panel::DEFAULT_PANEL_PITCH_MIN_RAD;
pub use ray_overlay::OpenXrRayHitKind;
pub use ray_overlay::OpenXrRayOverlay;
pub use ray_overlay::OpenXrRayOverlayOptions;
pub use ray_overlay::OpenXrRaySample;
pub use ray_overlay::OPENXR_RAY_MAX_LENGTH_METERS;
pub use ray_overlay::OPENXR_RAY_MIN_LENGTH_METERS;
pub use ray_overlay::OPENXR_RAY_TEXTURE_HEIGHT;
pub use ray_overlay::OPENXR_RAY_TEXTURE_WIDTH;
pub use ray_overlay::OPENXR_RAY_WIDTH_METERS;
pub use session_loop::OpenXrRuntime;
pub use session_loop::OpenXrRuntimeOptions;
pub use session_loop::ReferenceSpacePreference;
pub use smoke::run_openxr_smoke;
pub use smoke::OpenXrSmokeExitReason;
pub use smoke::OpenXrSmokeOptions;
pub use smoke::OpenXrSmokeResult;
pub use swapchain::OpenXrAcquiredImage;
pub use swapchain::OpenXrQuadSwapchain;
pub use swapchain::OpenXrSwapchainFormat;
pub use ui_layer::OpenXrExternalHostFrame;
pub use ui_layer::OpenXrExternalVulkanContext;
pub use ui_layer::OpenXrQuadPointerMapper;
pub use ui_layer::OpenXrUiLayer;
pub use ui_layer::OpenXrUiLayerOptions;
pub use vulkan::OpenXrVulkanContext;

Modules§

composer
Composition-layer geometry and frame-loop option types.
error
Failures produced while initializing or driving OpenXR and Vulkan.
external_host
Reusable UI, input, swapchain, and ray composition for an external frame loop.
input
OpenXR actions, controller and hand rays, source selection, and frame polling.
instance
OpenXR loader, extension negotiation, system selection, and runtime identity.
panel
Panel-facing, stable-grab, logical/world conversion, and depth-drag geometry.
ray_overlay
Vulkan-backed, alpha-blended ray visualization as an OpenXR quad layer.
session_loop
OpenXR/Vulkan initialization, session events, and built-in frame loops.
smoke
Built-in interactive OpenXR smoke scene and movable/resizable panel demo.
swapchain
OpenXR Vulkan swapchain allocation, acquisition, views, and frame targets.
ui_layer
Headless Ailloli runtime/layout/paint orchestration over Vulkan frame targets.
ui_loop
Built-in OpenXR loop that owns Ailloli layout, input routing, paint, and render.
vulkan
Vulkan objects created through OpenXR’s Vulkan-enable2 extension.

Structs§

VrApp
VR-friendly facade hook for external loops.