Screen manager refactoring, preparation for running the game behind the pause screen #18511
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This rearchitects how we handle rendering the game behind the pause screen, and in general how "screens" are layered.
Now it's the actual EmuScreen rendering in a special mode, previously we had some custom code just to blit the image.
This is necessary preparation for showing the pause menu without stopping emulation (#17275) which has been requested a lot since it's very bad that the game stops running when you open that menu during multiplayer games, it often leads to an instant desync. Doesn't actually implement that, but makes it possible to do in a followup PR.
There shouldn't be much of a perceptible difference from this PR alone. I've tested that the display layout screen and other special cases seem to work OK.
There will be some followup PRs, both performing more cleanup and actually implementing not pausing the game behind the menu.