1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Host backends — adapters between fluor's [`Compositor`](crate::Compositor) and the platform's window/framebuffer system.
//!
//! Per `## API / Implementation Separation` in AGENT.md, hosts are interchangeable: the same `Compositor` API drives the desktop winit+softbuffer host, the future ferros bare-metal framebuffer host, and anything else. Each host is gated by a Cargo feature so consumers compile in only what they need.
// chrome + icon are gated on `icon` (vsf + rav1d app-icon decode) — rav1d can't build for wasm32,
// and headless paint/text consumers (toka's browser renderer) never draw window chrome. Every real
// host feature (host-winit / host-softbuffer / host-android) implies `icon`, so hosts see no change.
pub use EventResponse;
pub use ;
pub use WindowHandle;
// chrome_widget (DefaultChrome + ChromeButton) speaks fluor-native event types ([`crate::event`]) in its capability-trait impls. Still gated on `text` since the chrome paints title glyphs, plus `icon` for the app-icon orb. Available on every supported host now (host-winit, host-android) once the host translates platform input to fluor events at the boundary.
// `app` contains the `FluorApp` trait + `Context` + (gated below) `DesktopShell`. The trait and Context compile on any host with `text` + `winit` (data types only — see Cargo.toml's host-android comment); DesktopShell + run_app stay host-winit-only.
// Widget abstraction (Container, Widget, Click, Key, Focus, Hover capability traits). Available on any host with `text` because the capability traits speak fluor-native events now — apps build their widget tree against this regardless of which host (winit/android/future) is driving the event loop.
/// macOS renderer — wgpu/Metal with PostMultiplied alpha for transparent corners.
/// Winit ↔ fluor event translation helpers. Used by host-winit's `DesktopShell` to translate at the event-loop boundary, and by consumers that still receive winit-shaped events from `FluorApp::on_event` while the trait migration is in flight.
/// macOS click-thru: global NSEvent monitor for re-entry detection.
pub
/// Windows present path: layered-window per-pixel alpha + click-thru via UpdateLayeredWindow.
pub