Skip to content

Document DPI awareness quirks on Windows #4908

@flibitijibibo

Description

@flibitijibibo

I keep forgetting to write this down and it came up again today so I'm doing it before I forget one more time...

Other platforms like macOS/iOS/tvOS/Wayland all support high-DPI surfaces by using the ALLOW_HIGHDPI flag, and this can be done on a per-window basis. Windows on the other hand took a slightly several very different approaches that all require some kind of weird process on startup. The ways that I'm aware of:

  • A manifest file next to the exe
  • Calling SetProcessDPIAware
  • Calling a really verbose series of DPI awareness functions that makes the awareness per-monitor (the only code I know of that actually does this is proprietary so I can't cite it even though it's the only way to rationally explain it)

As far as I know, we can't do this in SDL for the developer, but I always forget why we can't do it, both in SDL and SDLmain. It would be nice to have this written down in docs/ somewhere so it's easy to link to, we could possibly include a code snippet for those who don't want to put up with manifest files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions