Files
skate-3-rust-engine/Cargo.toml
T
Hails 3d485c8dfa Input: SDL3 gamepad backend with XInput fallback
Implements issue #14. A dedicated thread owns SDL3 (3.4.16, statically
linked via sdl3 =0.20.0) and publishes per-slot snapshots re-expressed as
the XInput-shaped XboxState, so the TU3 conversion in skate-core is
unchanged. Conversions are exact for XInput-backed pads (stick Y via
bitwise NOT, trigger round-to-nearest). SKATE3_INPUT=xinput selects the
original transport, which is also the fallback if SDL fails to start.
Optional settings/controller.json maps paddles to XInput buttons.

Build: scripts/Ensure-CMake.ps1 locates CMake (PATH or Visual Studio's
copy) for the SDL source build. sdl3-sys is vendored with a build.rs
patch setting CMAKE_MSVC_RUNTIME_LIBRARY from crt-static, because SDL's
CMake (policy CMP0091) ignores cmake-rs' -MT and the static-CRT release
build failed with unresolved __imp_* symbols.

See docs/hails-additions/03-sdl3-gamepad-input.md and vendor/README.md.
2026-09-30 19:26:50 -06:00

31 lines
754 B
TOML

[workspace]
members = ["crates/skate-core", "crates/skate-data", "crates/skate-game", "crates/skate-dynamics", "crates/skate-mods", "crates/skate-net", "crates/skate-steam-relay"]
resolver = "3"
[workspace.package]
version = "0.1.0"
edition = "2024"
publish = false
[workspace.dependencies]
bevy = { version = "=0.18.1" }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
skate-core = { path = "crates/skate-core" }
skate-data = { path = "crates/skate-data" }
[profile.dev]
opt-level = 3
[profile.release]
debug = 1
strip = false
[profile.dev.package."*"]
opt-level = 3
[patch.crates-io]
bevy_pbr = { path = "vendor/bevy_pbr" }
bevy_core_pipeline = { path = "vendor/bevy_core_pipeline" }
sdl3-sys = { path = "vendor/sdl3-sys" }