Today, I coded a patch that adds aspect ratio-correct Ultrawide 21:9 support to ZDoom. This is the ratio used in many new ultrawide monitors, such as the 34" Acer Predator x34. I have tested it at 3440x1440 and it looks great.
Here are some screenshots I took while playing:
http://imgur.com/a/ZV931
The patch has the following features:
- vid_aspect 6 forces 21:9
- 21:9 resolution autodetection works with vid_aspect 0 as expected.
- 21:9 aspect ratio has been added to the menus and modes can be selected
- all of the intermission and end level screens, credits and scrolling screens have been tested and work.
Notes to maintainers:
- This patch was created from HEAD of origin/master today.
- In many places, the test (ratio & 3) showed up in the code. In others, (ratio & 4) was used as a test. This sort of testing no longer works with newer aspect ratio options. Very simple one-line inline functions have been created to perform these tests and all of the bitwise tests have been replaced.
- Special care was taken to not stretch the fullscreen images (credits, title), but instead to apply black bars as expected.
- Tested on a playthrough of all intermission screens in Doom and Doom 2. No known issues.
- It has to draw a lot of pixels! This is taxing for a software renderer, even on a modern machine. It is tractible with a higher end PC today, however.
- Prior to my work, CheckRatio() used "vid_aspect 5" to create a "fakeratio" of 3. Because of this, the 5th entry in BaseRatioSizes has to be padded out and made redundant and the 21:9 aspect ratio has to be "vid_aspect 6". There is a comment to this effect in v_video.cpp.
- 21:9(2.333) is a marketing/public facing term for what is actually 64:27(2.37). The aspect ratio we use is actually 64:27, which is slightly different, but correct. However, all of the user-facing strings say 21:9 because that's what everyone expects.
Today, I coded a patch that adds aspect ratio-correct Ultrawide 21:9 support to ZDoom. This is the ratio used in many new ultrawide monitors, such as the 34" Acer Predator x34. I have tested it at 3440x1440 and it looks great.
Here are some screenshots I took while playing:
http://imgur.com/a/ZV931
The patch has the following features:
- vid_aspect 6 forces 21:9
- 21:9 resolution autodetection works with vid_aspect 0 as expected.
- 21:9 aspect ratio has been added to the menus and modes can be selected
- all of the intermission and end level screens, credits and scrolling screens have been tested and work.
Notes to maintainers:
- This patch was created from HEAD of origin/master today.
- In many places, the test (ratio & 3) showed up in the code. In others, (ratio & 4) was used as a test. This sort of testing no longer works with newer aspect ratio options. Very simple one-line inline functions have been created to perform these tests and all of the bitwise tests have been replaced.
- Special care was taken to not stretch the fullscreen images (credits, title), but instead to apply black bars as expected.
- Tested on a playthrough of all intermission screens in Doom and Doom 2. No known issues.
- It has to draw a lot of pixels! This is taxing for a software renderer, even on a modern machine. It is tractible with a higher end PC today, however.
- Prior to my work, CheckRatio() used "vid_aspect 5" to create a "fakeratio" of 3. Because of this, the 5th entry in BaseRatioSizes has to be padded out and made redundant and the 21:9 aspect ratio has to be "vid_aspect 6". There is a comment to this effect in v_video.cpp.
- 21:9(2.333) is a marketing/public facing term for what is actually 64:27(2.37). The aspect ratio we use is actually 64:27, which is slightly different, but correct. However, all of the user-facing strings say 21:9 because that's what everyone expects.