feat(core): unified input state (keyboard/mouse/scroll)

Add InputState (DRAFT Etapes 15, sous-volt 15.B): pressed/held/released
semantics via HashSet rotation, mouse position/delta/scroll accumulators.
Wire it into App (pub field), forward winit WindowEvents in the event
handler, and begin_frame/end_frame around AppHandler::update.

Handleable key/mouse/scroll logic extracted into private helpers so all
five unit tests avoid constructing winit KeyEvent (private fields).
This commit is contained in:
Jérôme Bousquié
2026-09-20 07:57:26 +02:00
parent 4da89c7178
commit b41f7e259e
3 changed files with 314 additions and 1 deletions
+2
View File
@@ -11,9 +11,11 @@
pub mod context;
pub mod frame;
pub mod input;
pub mod renderer;
// Re-exports
pub use context::Context;
pub use frame::Frame;
pub use input::InputState;
pub use renderer::Renderer;