iw3: desktop: Add fullscreen display mode switching to LocalViewer#657
iw3: desktop: Add fullscreen display mode switching to LocalViewer#657IkariDevGIT wants to merge 1 commit into
Conversation
|
Do you mean you want to display 32:9 on a display different from the capture target? |
Virtual Desktop does that, if I remember correctly.
No, please take a look at the code. It changes the screen resolution of the monitor the local viewer is on to 2x the total size if available.
That's not what I was going for. If you have a better method than my idea, please let me know. |
|
Please briefly describe the problem and the proposed solution. |
|
This PR is meant to solve a LocalViewer-specific fullscreen resolution problem. When viewing content like full-SBS in LocalViewer, going fullscreen still leaves the image limited by the current resolution of the monitor the viewer is on. So even in fullscreen, the viewer may not be able to show the content at the resolution it should. This change adds an optional feature: when LocalViewer enters fullscreen, it can temporarily switch that monitor to a higher resolution if one is available, then restore the original resolution when fullscreen is exited. It is off by default and only affects the monitor hosting the LocalViewer window. |
|
Thanks for the explanation. I understand that our basic understanding is aligned.
The source of confusion seems to be the following conditions:
My question is why the following is not sufficient:
Since I do not use Virtual Desktop or Local Viewer, I may not be aware of issues related to them. |
Welp my displaying monitor only supports full hd. But it supports rendering 4k and downscaling the video output to full hd.
Thats not really possible.. at least i dont see a reason why someone would do that. This PR is basically just to make life easier, sure i could go into my setting every time to change it before starting it, but thats very very annoying to do. |
if the same monitor is used, my understanding is that changing the resolution for the local viewer would also change the captured resolution. I am not very familiar with the exact behavior here, but wouldn't this effectively be the same as changing the resolution in advance? |
|
@nagadomi |
|
That's right. That is why I wrote
There must be at least two monitors, and the monitor used for capture and the monitor used for fullscreen display of the local viewer must be different. Each monitor can be set to a different resolution, so it is not necessary to argue about using the same monitor. I was not certain about this, so I wrote more than necessary. So my final point is simply this.
Personally, I think this is something that could be solved by creating a dedicated virtual monitor once. However, is there a reason preventing this, such as the monitor used for the Local Viewer being a physical monitor that is also used for other purposes rather than a virtual one? |
|
OH, i get what you mean now, i do not know if thats possible on windows. I did not consider this idea at all! I would greatly appriciate you jumping in on this @nagadomi. |
|
I am not very familiar with it, but I once set up a virtual display on Windows using Virtual Display Driver for testing, and it was possible. I recall that it did not work with the latest version, so I installed a version that worked. |
|
@nagadomi could you please merge my other 2 PR's, they are very pesky bugs that make everything basically unwatchable. |
|
@nagadomi Could we merge this until we have a solution with Virtual displays? |
Adds an optional fullscreen display mode feature for LocalViewer.
The reason for this feature is that Full SBS and similar methods take up half of the screen, which effectively halves the resolution available to the video because it is being rendered on a lower resolution display mode. This makes it render at the resolution it should have.
When --local-viewer-fullscreen-display-mode is enabled, entering fullscreen with F11 switches the monitor hosting the LocalViewer window to a larger display mode. Leaving fullscreen or closing the viewer restores the original mode.
Includes crash recovery via a detached guard process, adds the PyMonCtl dependency, and documents the Linux X11/xrandr limitation.
Tested on Windows. Linux/X11 support is implemented but not verified locally.