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

Add desktop-fullscreen option and optionally decouple aspect ratio from window resolution. #204

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

KurtLoeffler
Copy link

@KurtLoeffler KurtLoeffler commented Apr 3, 2023

This pull request introduces two improvements to the Video Options menu of Ironwail:

  1. Desktop Fullscreen Option:

    • Previously, running Ironwail in desktop fullscreen mode required manually setting a cvar.
    • This update adds a user-friendly option in the Video Options menu to enable desktop fullscreen mode.
  2. Decoupling Aspect Ratio from Window Resolution:

    • Before this update, the window/fullscreen size always dictated the aspect ratio that the game was rendered in.
    • This update decouples the aspect ratio from the window resolution, allowing users to choose a maximum aspect ratio regardless of their display's aspect ratio.
    • A new cvar, vid_maxaspect, has been added, with a default value of 0 (auto, match window/fullscreen aspect ratio).

ironwail_s0PXtGOBr3

…window resolution.

Desktop Fullscreen:
It was previously possible to run ironwail in desktop fullscreen mode, but only by manually setting a cvar. This change adds the ability to pick this display mode within the video settings menu.

Decoupling Aspect Ratio:
Previously in ironwail the window/fullscreen size always dictates the aspect ratio tha the game is renderred in. This is fine for windowed and exclusive fullscreen where you can set the specific resolution you want, however with desktop fullscreen, the window must be the same size that your operating system is outputting. Decoupling the aspect ratio allows the user specify a specific maximum aspect ratio to use in this circumstance. For example 4:3 on a standard 16:9 display, or 16:9 on an ultrawide display. The new vid_maxaspect cvar default to 0, which means auto (match window/fullscreen resolution).
Under some configurations where GL_NeedsSceneEffects and GL_NeedsPostprocess return different values the viewport offset was not configured correctly. This change addresses this issue.
@KurtLoeffler KurtLoeffler changed the title Add desktop fullscreen option to the Video Options menu and (optionally) decoupled aspect ratio from window resolution. Add desktop-fullscreen option and optionally decouple aspect ratio from window resolution. Apr 3, 2023
@KurtLoeffler
Copy link
Author

KurtLoeffler commented Oct 6, 2023

I realize now that the desktop fullscreen feature may not be as important as I originally thought for these reasons:

  • Setting borderless with your native desktop resolution is the same as desktop fullscreen.
  • Deskop fullscreen technically enters exclusive fullscreen at your desktop resolution with OpenGL on Windows. This still allows for quick alt tabbing since the video output mode does not need to change.

There are still advantages of the implementation in this pull request though:

  • More user friendly.
  • Switching between fullscreen and windowed using alt+enter will preserve the windowed resolution and desktop fullscreen resolution, and will also retain your desired fullscreen mode (exclusive or desktop).

If it is preferable to remove the desktop fullscreen part of this pull request and just keep the aspect ratio changes, I can do that.

Controlling aspect ratio independently of fullscreen resolution is desirable because on ultrawide monitors the UI stretches out to the edges and becomes hard to see. You can of course use an exclusive fullscreen mode with a specific resolution at the aspect ratio you desire, but this comes a lot of problems like slow alt+tabbing and possibly messing up other application window positions and sizes in Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant