gonetz / GLideN64

A new generation, open-source graphics plugin for N64 emulators.
Other
779 stars 181 forks source link

[Feature Request] Fix the 'borderless fullscreen' option #2864

Closed duke912 closed 2 months ago

duke912 commented 3 months ago

The borderless fullscreen, available only in PJ64, simply does nothing, it renders at exclusive fullscreen and some programs, like Lossless Scaling, does not work with it. Please fix it

gonetz commented 2 months ago

Should be fixed with commit 24f7f47cad6. Please check. It works for me. I checked it on my laptop attached to another display. I can use borderless fullscreen mode on any on the screens. There was was a request to run GLideN64 on multiple monitors, but it hardly will be implemented.

GhostlyDark commented 2 months ago

Should be fixed with commit 24f7f47.

I think you meant to reference 7294f02.

duke912 commented 2 months ago

Should be fixed with commit 24f7f47.

I think you meant to reference 7294f02.

Tested with both PJ 3.0.1 and latest dev version and get the same results as before, no difference from exclusive fullscreen, Lossless Scaling only works if it's in window mode

gonetz commented 2 months ago

I think you meant to reference 7294f02

Yes, thanks

gonetz commented 2 months ago

Tested with both PJ 3.0.1 and latest dev version and get the same results as before, no difference from exclusive fullscreen, Lossless Scaling only works if it's in window mode

What is "Lossless Scaling"?

gonetz commented 2 months ago

Well, I agree, it is still not a true borderless fullscreen windowed mode. With "borderless mode" the plugin switches to fullscreen instantly and it uses desktop refresh rate, so I thought it worked properly. However, when in windowed mode, "win+r" should not change window size, but it does.

duke912 commented 2 months ago

Tested with both PJ 3.0.1 and latest dev version and get the same results as before, no difference from exclusive fullscreen, Lossless Scaling only works if it's in window mode

What is "Lossless Scaling"?

A software that comes with a 'frame generation', it creates an overlay that does its 'magic', at the cost of some input lag. The problem is that the game must be running at window mode/borderless fullcreen for it to work, wanna try on some old 30fps locked games.

gonetz commented 2 months ago

@duke912 I tested this feature again. As I understand, if an app is in OpenGL Non-exclusive Fullscreen Mode (A.K.A. Fullscreen Borderless Window), then it remains full-screen when you press alt-tab or win-r. You can switch to some other app with alt-tab, but your app will still run full-screen and the new app will be on top of it. For example, yuzu works like this in OpenGL fullscreen borderless mode. But it is not the case, when I use GLideN64 with old versions of Project64, e.g. Project64 2.3 I tried recent release build "Project64 3.0.1.5664" and GLideN64 borderless mode worked correct with it. I see no difference with yuzu. I even installed "Lossless Scaling" and it works for me too. Scenario: run a game with Project64, run Lossless Scaling (LS), switch GLideN64 to borderless fullcreen, alt-tab to LS, click "Scale", alt-tab to GLideN64. After 5 sec the screen will blink once and LS FPS counter will appear, if you enabled it.

I also tried to capture fullscreen window with OBS. It works as well.

So, please try the recent GLideN64 (I made a small fix a moment ago) with recent Project64 build.

Important notices:

duke912 commented 2 months ago

@duke912 I tested this feature again. As I understand, if the app in OpenGL Non-exclusive Fullscreen Mode (A.K.A. Fullscreen Borderless Window), then it remains full-screen when you press alt-tab or win-r. You can switch to some other app with alt-tab, but your app will still run full-screen and the new app will be on top of it. For example, yuzu works like this in OpenGL fullscreen borderless mode. But it is not the case, when I use GLideN64 with old versions of Project64, e.g. Project64 2.3 I tried recent release build "Project64 3.0.1.5664" and GLideN64 borderless mode works correct with it. I see no difference with yuzu. I even installed "Lossless Scaling" and it works for me too. Scenario: run a game with Project64, run Lossless Scaling (LS), switch GLideN64 to borderless fullcreen, alt-tab to LS, click "Scale", alt-tab to GLideN64. After 5 sec the screen will blink once and LS FPS counter will appear, if you enabled it.

I also tried to capture fullscreen window with OBS. It works as well.

So, please try the recent GLideN64 (I made a small fix a moment ago) with recent Project64 build.

Important notices:

  • switching back to windowed mode may work incorrect when Lossless Scaling is enabled. You need to unscale the window first.
  • If you switch between exclusive fullscreen and borderless fullscreen in the config dialog, you may need to restart emulator for taking effect of this change.

Just tested some games and it's working as it should, both 3.0.1 and latest dev version

gonetz commented 2 months ago

Just tested some games and it's working as it should, both 3.0.1 and latest dev version

Good. Can we close the issue then?

duke912 commented 2 months ago

Just tested some games and it's working as it should, both 3.0.1 and latest dev version

Good. Can we close the issue then?

Yes