Skip to content
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

Make the pause screen "transparent" #16404

Merged
merged 2 commits into from
Nov 21, 2022
Merged

Make the pause screen "transparent" #16404

merged 2 commits into from
Nov 21, 2022

Conversation

hrydgard
Copy link
Owner

@hrydgard hrydgard commented Nov 20, 2022

When paused (ESC or back), you now see the paused game below, darkened, instead of the usual menu background.

Not enabled in VR mode for now because it could get weird. Also not trivial in skip-buffered mode (would require taking a screenshot) so disabled in that case too.

Part of #13016

EDIT: Hm, there's a weird issue where resizing the window during the pause screen doesn't work properly in this mode...

image

When paused (ESC or back), you now see the paused game below, darkened,
instead of the usual menu background.

Not enabled in VR mode for now because it could get weird.
Also not trivial in skip-buffered mode (would require taking a screenshot) so
disabled in that case too.
@hrydgard hrydgard added the User Interface PPSSPP's own user interface / UX label Nov 20, 2022
@hrydgard hrydgard added this to the v1.14.0 milestone Nov 20, 2022
@iota97
Copy link
Contributor

iota97 commented Nov 20, 2022

Just a note about this approach: it won't allow to have the game scene as a background of different screen (or even better of a sub region of the screen).

Not a big deal per se, but might be worth considering a common way to do this and #16228.

Copy link
Collaborator

@unknownbrackets unknownbrackets left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On resize, won't we throw away framebuffers? Maybe we need to avoid that sometimes so people can change resolution and things? Hmm.

-[Unknown]

UI/EmuScreen.cpp Show resolved Hide resolved
@hrydgard
Copy link
Owner Author

Yeah, good points @iota97 . But this way does have the advantage that we re-run the post processing chain every frame, which means that we can add a mode to interactively tweak and instantly preview post processing, which will make it a lot more fun to work on post shaders, I think. As for #16228, we might be able to do something similar with some parameter to CopyDisplayToOutput().

As for framebuffers getting deleted on some kinds of resize, yeah, might have to do something about that... Will do some testing of important cases.

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 20, 2022

The throwing away of framebuffers isn't that bad, if you change render resolution, what happens is that we do indeed throw away the framebuffers so we'll render black or whatever data is behind in VRAM as an image.. Well, not great but no disaster.

We could of course force the emulation of a single frame when returning from settings to solve this... Might cause an audio glitch though unless we work around that, too, and might annoy the user slightly that they'll be resuming from one frame later. Not sure what's best here but probably not this.

Actually best is probably to just delay the dropping of framebuffers until resume. I'll look into that. We'll still have issues I guess with task switching on Android, hm..

@hrydgard
Copy link
Owner Author

I'm just gonna get this in as-is, and do followups, as it's not too bad already.

@hrydgard hrydgard merged commit f67ef7a into master Nov 21, 2022
@hrydgard hrydgard deleted the transparent-pause-screen branch November 21, 2022 13:28
hrydgard added a commit that referenced this pull request Nov 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
User Interface PPSSPP's own user interface / UX
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants