-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert App::run()
behavior/Remove winit
specific code from bevy_app
#10389
Conversation
I'm down for this. Can someone test if this still removes the black frames on iOS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sadly we haven't been able to recruit an iOS tester to check the black frame issue. I think these are the right changes for 0.12.1, even if we regress the black frame on iOS. However based on my understanding, this should still fix it.
Bevy introduced unintentional breaking behaviour along with the v0.12.0 release regarding the `App::set_runner` API. See: #10385, #10389 for details. We weren't able to catch this before release because this API is only used internally in one or two places (the very places which motivated the break). This commit adds a regression test to help guarantee some expected behaviour for custom runners, namely that `app::update` won't be called before the runner has a chance to initialise state.
…app` (#10389) # Objective The way `bevy_app` works was changed unnecessarily in #9826 whose changes should have been specific to `bevy_winit`. I'm somewhat disappointed that happened and we can see in #10195 that it made things more complicated. Even worse, in #10385 it's clear that this breaks the clean abstraction over another engine someone built with Bevy! Fixes #10385. ## Solution - Move the changes made to `bevy_app` in #9826 to `bevy_winit` - Revert the changes to `ScheduleRunnerPlugin` and the `run_once` runner in #10195 as they're no longer necessary. While this code is breaking relative to `0.12.0`, it reverts the behavior of `bevy_app` back to how it was in `0.11`. Due to the nature of the breakage relative to `0.11` I hope this will be considered for `0.12.1`.
…app` (bevyengine#10389) # Objective The way `bevy_app` works was changed unnecessarily in bevyengine#9826 whose changes should have been specific to `bevy_winit`. I'm somewhat disappointed that happened and we can see in bevyengine#10195 that it made things more complicated. Even worse, in bevyengine#10385 it's clear that this breaks the clean abstraction over another engine someone built with Bevy! Fixes bevyengine#10385. ## Solution - Move the changes made to `bevy_app` in bevyengine#9826 to `bevy_winit` - Revert the changes to `ScheduleRunnerPlugin` and the `run_once` runner in bevyengine#10195 as they're no longer necessary. While this code is breaking relative to `0.12.0`, it reverts the behavior of `bevy_app` back to how it was in `0.11`. Due to the nature of the breakage relative to `0.11` I hope this will be considered for `0.12.1`.
…#10609) Bevy introduced unintentional breaking behaviour along with the v0.12.0 release regarding the `App::set_runner` API. See: bevyengine#10385, bevyengine#10389 for details. We weren't able to catch this before release because this API is only used internally in one or two places (the very places which motivated the break). This commit adds a regression test to help guarantee some expected behaviour for custom runners, namely that `app::update` won't be called before the runner has a chance to initialise state.
Objective
The way
bevy_app
works was changed unnecessarily in #9826 whose changes should have been specific tobevy_winit
.I'm somewhat disappointed that happened and we can see in #10195 that it made things more complicated.
Even worse, in #10385 it's clear that this breaks the clean abstraction over another engine someone built with Bevy!
Fixes #10385.
Solution
bevy_app
in Prevent black frames during startup #9826 tobevy_winit
ScheduleRunnerPlugin
and therun_once
runner in fix run-once runners #10195 as they're no longer necessary.While this code is breaking relative to
0.12.0
, it reverts the behavior ofbevy_app
back to how it was in0.11
.Due to the nature of the breakage relative to
0.11
I hope this will be considered for0.12.1
.