So, I have a game I want to run hitting the following properties:
- The game should only render 1920x1080. This keeps fps around 30.
- The game should cover my whole screen.
- Running the game should not resize all my other open windows.
All of these seem like stupid-obvious goals, but there doesn't seem to be a way to get them all. The game itself offers fullscreen (which automatically resizes my other open windows, when the game resolution is lower than the desktop resolution -- I don't understand this ridiculous anti-feature, but it doesn't seem to be configurable), and windowed mode where the window occupies a range of pixels equal to the game resolution (which is a really small window, and really hurts enjoyment of the game). I've tried sending win32 messages [well, SetWindowLong; I think "messages" are something different] to a 1920x1080 game window to expand its rectangle, but the game just starts rendering higher-resolution images for the bigger window -- even though it's configured for 1920x1080 -- dropping the frame rate.
Are you saying there's a way for me to scale this window to get the behavior I want? (Render a 1920x1080 image, then paint it over the 3840x2160 desktop.) What is it?
In that case, instead of physically changing your monitor's resolution when entering (true) fullscreen mode, the GPU should simply rescale the game output as required to match your regular resolution.
ehhhhhh.....
> It works pretty well in Linux, but given the mess that is Linux UI toolkits, not all applications will scale properly.
Yep, exactly.
Running a 4k monitor at 1920x1080 looks like crap. Running a 4k monitor with 200% UI scaling gets you the same dimensions but glorious smooth fonts.