Search Issue Tracker
By Design
Votes
0
Found in
2019.4
2021.1
Issue ID
1276548
Regression
No
Toggling between Fullscreen and Windowed mode doesn't preserve native resolution triggering letterboxing
How to reproduce:
1. Open the attached project (link in the description)
2. Open the "SampleScene" Scene -> build and run on UWP
3. Click on the Sprite in the top right corner to expand the application window
4. Click on the Sprite to contract the window -> expand it again
Expected result: No extra space appears below and above the application (see Expected.png)
Actual result: Extra space appears below and above the application (see Actual.png)
Reproducible with: 2019.4.16f1, 2020.1.17f1, 2020.2.0b14, 2021.1.0a9
Notes:
- The issue does not appear on Standalone
- Could not test on 2018.4, because of Player build failing
UPDATE:
The issue, as originally described, is by-design: when using non-native resolutions in FullscreenWindow mode the aspect ratio of the app's display generally won't match the native desktop aspect ratio. To prevent distortion and/or clipping of the app, "letterboxing" is added; the size and orientation of the letterboxing depends on the degree to which the aspect ratios are mismatched.
The actual problem here is the Fullscreen resolution isn't preserved when toggling between Fullscreen and Windowed mode, but changes to the default 1200x900 resolution stored in PlayerPrefs.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Getting a deprecated package for JetBrains Rider pop up when opening or creating a project
- [Android] Volume level of the same audio file is different on Samsung Galaxy Tab A8 between 2023.3.0b3 and 2023.3.0b4
- ‘Expected end of value’ warning occurs when a property declaration includes five or more variable references
- Crash on BurstCompilerService::CompileAsync when entering Play mode in a specific scene
- InvalidOperationException when using Game Camera Preview in Scene window with a custom RenderGraph pass
Resolution Note (2021.2.X):
Switching to fullscreen mode from windowed mode using Screen.fullScreen property has historically respected the current rendering resolution and only changed the window dimensions. If the rendering resolution aspect ratio didn't match the monitor aspect ratio, Unity would introduce letterboxing. Unfortunately, changing this behaviour would break thousands of projects that depend on it.
If you want to avoid letterboxing, use Screen.SetResolution() instead of simply flipping the Screen.fullScreen property.