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_runtimeevents viacrate::input::OpenXrInputMapper - keep a dedicated façade object in the same crate (
VrApp) without touchingailloli_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.