[SUG][PLAYER] "DPI aware" option

Started by namida, May 26, 2020, 09:17:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

See this topic for an example: https://www.lemmingsforums.net/index.php?topic=4874.0

Basically - if NL reports that it's DPI-aware, the OS won't try to scale it to better suit the screen. Downside is that NL must upsize things to fit the screen itself, which can get laggy on particularly high resolutions (on my 6th-gen i7 laptop, this is noticable at 4K but not at 1080p); whereas the OS scaling seems to be far more optimized (likely, it uses the GPU).

The downside is, if the user's scaling is a non-integer value - which in particular, a non-integer value is the default on 1080p laptop screens (even at 15.6"; not sure about 17.3") - this results in NL being blurry.

Given that, I don't want to make NL "always DPI aware". But there's another option here - a user-setting.

In a sense, the user setting already exists, as described near the end of the above topic. But that's an OS setting which some users may not feel comfortable messing with. So instead, I'm thinking that an option could be implemented in NL, that determines whether or not NL reports itself as being DPI-aware. (If it does, the OS won't scale it.) Of course, this would present itself with a less-technical name, perhaps "Disable OS upscaling".

For technical reasons, this will have to be a "you must restart NL when changing this option" setting. It's very messy to switch such a setting on at runtime, and my understanding is that it's outright impossible to turn it off (the Windows API throws an error if you try).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

WillLem