eb3087f230
* config: add use_passthrough * do not use ALPHA_BLEND if passthrough is off * keyboard.yaml auto_labels * OSC: Finish XSOverlay parity (#124) * osc-battery - utilise match return value to set parameter this just lets parameter be a `&str` instead of a `String`, and reduces repetition. * osc-battery - fix error where trackers were 1-indexed instead of 0-indexed * osc-battery: xsoverlay parity! add average tracker and controller battery parameters. this should now be in parity with xsoverlay's parameters. gone back to 1-indexing trackers because it's more user-friendly, so other programs can standardise more easily. * osc battery: ...that was not 1-indexed. no idea how I made that mistake but the sent tracker parameters were actually still 0-indexed. * Update Envision section (#123) add directions for appimage autostart * Add Flatpak instructions (#127) * Add Flatpak instructions fix small inconsistencies between instructions * Clarify Flatpak Steam setup for SteamVR and Monado/WiVRn users * Additional instructions * default AltLayout is None * WayVR: IPC [1]: Local socket server, handshake receiver * WayVR : IPC [2]: `ListDisplays`, `GetDisplay` commands * WayVR: IPC [3]: `ListProcesses`, `TerminateProcess` commands * WayVR: IPC [4]: Minor refactoring * WayVR: Move IPC to separate Git repository * Restore default features in Cargo.toml * WayVR: Implement `WvrDisplayCreate`, Implement `WvrProcessLaunch`, Refactoring * WayVR: Dashboard toggle support, minor refactoring * Update Cargo.toml * fix formatting for openxr_actions.json5 --------- Co-authored-by: galister <22305755+galister@users.noreply.github.com> Co-authored-by: Jay <157681441+cubee-cb@users.noreply.github.com> Co-authored-by: Marcus Howser <mhowser.git@mailbox.org> Co-authored-by: Joshua Vandaële <joshua@vandaele.software>
34 lines
1.0 KiB
Rust
34 lines
1.0 KiB
Rust
use glam::Vec3A;
|
|
use once_cell::sync::Lazy;
|
|
use std::sync::Arc;
|
|
|
|
use crate::backend::overlay::{OverlayData, OverlayState, RelativeTo, Z_ORDER_ANCHOR};
|
|
use crate::config::{load_known_yaml, ConfigType};
|
|
use crate::gui::modular::{modular_canvas, ModularUiConfig};
|
|
use crate::state::AppState;
|
|
|
|
pub static ANCHOR_NAME: Lazy<Arc<str>> = Lazy::new(|| Arc::from("anchor"));
|
|
|
|
pub fn create_anchor<O>(state: &mut AppState) -> anyhow::Result<OverlayData<O>>
|
|
where
|
|
O: Default,
|
|
{
|
|
let config = load_known_yaml::<ModularUiConfig>(ConfigType::Anchor);
|
|
|
|
Ok(OverlayData {
|
|
state: OverlayState {
|
|
name: ANCHOR_NAME.clone(),
|
|
want_visible: false,
|
|
interactable: false,
|
|
grabbable: false,
|
|
z_order: Z_ORDER_ANCHOR,
|
|
spawn_scale: config.width,
|
|
spawn_point: Vec3A::NEG_Z * 0.5,
|
|
relative_to: RelativeTo::Stage,
|
|
..Default::default()
|
|
},
|
|
backend: Box::new(modular_canvas(&config.size, &config.elements, state)?),
|
|
..Default::default()
|
|
})
|
|
}
|