Skip to content

Commit 1b33341

Browse files
committed
Consolidate input types to avoid portability hazards
The following types have been moved from game_activity/input.rs to input.rs so they can be shared by both backends: Axis, ButtonState, EdgeFlags, KeyAction, KeyEventFlags, Keycode, MetaState, MotionAction, MotionEventFlags This addresses a portability hazard whereby code (such as Winit) would inadvertently use the `ndk` type which works OK with the native-activity backend but then wouldn't compile against the game-activity backend. The alternative of consolidating on the `ndk::events` types instead was considered but we've repeatedly needed to diverge from the `ndk` API for the sake of maintaining a consistent input API across the `game-activity` and `native-activity` backends (input is an area where the backends differ significantly in their implementation) and so it generally seems slightly preferable to consolidate on types from this crate (though it shouldn't make much difference for these types which are almost direct bindings from ndk_sys). The types can be converted to their `ndk::events` counterpart via the `From` trait. For now some of the `From` trait implementations rely on `try_from().unwrap()` but the intention is to replace these with infallible implementations once we bump the MSRV > 1.66 where we can use `num_enum::FromPrimitive` after adding a catch-all `Other(u32)` to these enums.
1 parent 535994f commit 1b33341

File tree

6 files changed

+696
-623
lines changed

6 files changed

+696
-623
lines changed

0 commit comments

Comments
 (0)