Closed as not planned
2 of 3 issues completedDescription
A few shortcuts were taken in #10702 in order to merge it in a reasonable amount of time.
This issue serves to :
- coordinate addressing those follow-ups
- offer a place to discuss the winit update
- mentoring opportunities
Feel free to create or ask a dedicated issue for any listed task, if you feel like it's worth it.
Known regressions (important follow ups?)
⚠️ Fix big problem in event loop Winit 0.29 follow up #11052 (comment)- Preformance fix in Fix perf degradation on web builds #11227
- more eventloop cleanups : https://github.com/bevyengine/bevy/pull/11227/files?diff=unified&w=1#diff-b1447f30819280931099e7498b2ced388a98de5cda1b631b493107bb96193cc0R806
-
⚠️ UpdateMode::Reactive
is broken - Provide an API for reacting when a specific key from current layout was released.
- possible solutions: use winit::Key from winit::KeyEvent ; mapping between KeyCode and Key ; or retrieve exact layout.
- We don't receive characters through alt+numpad (e.g. alt + 151 = "ù") anymore ; reproduced on winit example "ime". maybe related to Pressing
Alt
on Windows discards key information rust-windowing/winit#2945 - (windows) Window content doesn't refresh at all when resizing. By reading EventLoop 3.0 Changes rust-windowing/winit#2900 ; I suspect we should just fire a
window.request_redraw();
fromAboutToWait
, and handle actual redrawing withinRedrawRequested
. I'm not sure how to move all that code so I'd appreciate it to be a follow up. - (windows) unreleased winit fix for using set_control_flow in AboutToWait Windows: set_control_flow has no effect from AboutToWait event rust-windowing/winit#3215
- Fixed in winit 0.29.4
Follow up
I'd like to avoid bloating this PR, here are a few follow up tasks worthy of a separate PR, or new issue to track them once this PR is closed, as they would either complicate reviews, or at risk of being controversial:
- Cleanup
CanvasParentResizePlugin
(Update winit dependency to 0.29 #10702 (comment))- Remove
CanvasParentResizePlugin
Remove CanvasParentResizePlugin #11057 - Allow to set canvas properties Winit 0.29 follow up #11052 (comment) ; Remove CanvasParentResizePlugin #11057 (comment)
- Remove
- avoid mentionning explicitly winit in docs from bevy_window ?
-
NamedKey
integration on bevy_input: Revise Key, KeyCode enums rust-windowing/winit#3143 introduced a new NamedKey variant. I implemented it only on the converters but we'd benefit making the same changes to bevy_input. - Add more info in
KeyboardInput
Update winit dependency to 0.29 #10702 (review)- Done: Add logical key data to KeyboardInput #11400
- Update examples to use that feature (context: Add logical key data to KeyboardInput #11400 (comment))
- macOS Sonoma (14.0) / Xcode 15.0 — Compatibility Fixes + Docs #9905 added a workaround on a bug allegedly fixed by winit 0.29. We should check if it's still necessary.
- update to raw_window_handle 0.6
RenameKeyCode
toPhysicalKeyCode
Update winit dependency to 0.29 #10702 (comment)dropped: RenameKeyCode
toPhysicalKey
#11692
- remove
instant
dependency, replaced byweb_time
), we'd need to update to fastrand >= 2.0.- With the asset rework we don't depend on fastrand anymore.
- Verify license, see discussion
- we might be missing a short notice or description of changes made
- Consider using https://github.com/rust-windowing/cursor-icon directly rather than vendoring it in bevy.
- investigate this unwrap (
winit_window.canvas().unwrap();
) - Call
pre_present_notify
Winit 0.29 follow up #11052 (comment) - Use more good things about winit's update
Sub-issues
Metadata
Assignees
Labels
Player input via keyboard, mouse, gamepad, and morePlatform-agnostic interface layer to run your app inA new feature, making something new possibleAn issue that collects information about a broad development initiativeRequires deep knowledge in a given domainA "normal" level of difficulty; suitable for simple features or challenging fixes