The painted host Linux, Windows and Android share is exact-painted; the
Linux-only parts now live in exact-linux (host/linux), which depends on
it as exact-windows does: the DRM/KMS display, evdev input, the VNC
server, and the entry that reads the environment and runs headless or on
the display (run, run_composed, run_with_hatches,
run_with_content_region, run_config). Linux apps, the update store, the
game SDK's Linux shell and `exact new`'s Linux crate depend on both.
What the display reached inside the shared crate is public now:
Presenter's compat(), hosts() and set_frame_period(), display_frame,
display_complete, display_input_mapping, dispatch_press,
contact_position, row_reuse_from_env, and SubmittedFrame with its
pixels. The flip state takes any frame owner that is AsRef<Pixmap>, so
its tests still run on macOS with a bare picture. The WASD test that
drove evdev's keyboard into a canvas now feeds the presenter the keys
evdev reports, on every platform, and the Linux input tests check that
mapping.
android.rs, android_hint.rs, com.rs and picker_windows.rs stay in
exact-painted: its own code calls each (android_hint through its
canvas_jni! macro), and there is no crate below it to hold them.
Closes issues/closed/20261110-the-shared-painting-host-is-the-crate-named-exact-linux.md.
Co-Authored-By: Claude Opus 5.5 <[email protected]>