I’ve been working on our fullscreen windows on the Windows 10 OS, and have found that the ChaingeDisplaySettings() feature always works with the actual real pixel resolution. Unfortunately, CreateWindowEx does not, which makes things kind of funny. For example:
- I change the screen resolution to 800x600.
- The DPI scaling is set to 125%.
- To cover the screen, I have to create a window that is sized 1000x750,
- Now I am working with a swap chain that has 67% more pixels.
- As a result, our application runs slower when the DPI scaling is increased, even though the same screen resolution is used. and the result looks exactly the same. More pixels are being rendered and the the image is being compressed down to the screen resolution.
What is the correct way to deal with this? I ran some tests on DOOM 2016 and it seems like id found a way to solve this, because I did not see any difference in performance when I changed the DPI scaling.