bevy/crates/bevy_input/src
Alice Cecile 5d514fb24f Reduce internal system order ambiguities, and add an example explaining them (#7383)
# Objective

- Bevy should not have any "internal" execution order ambiguities. These clutter the output of user-facing error reporting, and can result in nasty, nondetermistic, very difficult to solve bugs.
- Verifying this currently involves repeated non-trivial manual work. 

## Solution

- [x] add an example to quickly check this
- ~~[ ] ensure that this example panics if there are any unresolved ambiguities~~
- ~~[ ] run the example in CI 😈~~

There's one tricky ambiguity left, between UI and animation. I don't have the tools to fix this without system set configuration, so the remaining work is going to be left to #7267 or another PR after that.

```
2023-01-27T18:38:42.989405Z  INFO bevy_ecs::schedule::ambiguity_detection: Execution order ambiguities detected, you might want to add an explicit dependency relation between some of these systems:
 * Parallel systems:
 -- "bevy_animation::animation_player" and "bevy_ui::flex::flex_node_system"
    conflicts: ["bevy_transform::components::transform::Transform"]
  ```

## Changelog

Resolved internal execution order ambiguities for:
1. Transform propagation (ignored, we need smarter filter checking).
2. Gamepad processing (fixed).
3. bevy_winit's window handling (fixed).
4. Cascaded shadow maps and perspectives (fixed).

Also fixed a desynchronized state bug that could occur when the `Window` component is removed and then added to the same entity in a single frame.
2023-01-31 01:47:00 +00:00
..
axis.rs add Axis::devices to get all the input devices (#5400) 2023-01-06 18:00:22 +00:00
gamepad.rs Fix small typo in gamepad.rs docs (#7411) 2023-01-29 20:11:46 +00:00
input.rs Added Ref to allow immutable access with change detection (#7097) 2023-01-11 15:41:54 +00:00
keyboard.rs Fix minor typos in code and docs (#7378) 2023-01-27 12:12:53 +00:00
lib.rs Reduce internal system order ambiguities, and add an example explaining them (#7383) 2023-01-31 01:47:00 +00:00
mouse.rs Added Ref to allow immutable access with change detection (#7097) 2023-01-11 15:41:54 +00:00
touch.rs Derive Reflect + FromReflect for input types (#6232) 2022-10-26 19:52:20 +00:00