an attempt to set DPI awareness on Windows

This commit is contained in:
Zeno Rogue 2020-11-19 18:18:24 +01:00
parent 72b7cffcaf
commit deae12dea6
1 changed files with 17 additions and 0 deletions

View File

@ -1083,6 +1083,23 @@ EX void setvideomode() {
#endif
int sizeflag = (vid.full ? SDL_FULLSCREEN : SDL_RESIZABLE);
#ifdef WINDOWS
static bool set_awareness = true;
if(set_awareness) {
set_awareness = false;
HMODULE user32_dll = LoadLibraryA("User32.dll");
if (user32_dll) {
DPI_AWARENESS_CONTEXT (WINAPI * Loaded_SetProcessDpiAwarenessContext) (DPI_AWARENESS_CONTEXT) =
(DPI_AWARENESS_CONTEXT (WINAPI *) (DPI_AWARENESS_CONTEXT))
GetProcAddress(user32_dll, "SetProcessDpiAwarenessContext");
if(Loaded_SetProcessDpiAwarenessContext) {
Loaded_SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
}
FreeLibrary(user32_dll);
}
}
#endif
s = s_screen = SDL_SetVideoMode(vid.xres, vid.yres, 32, flags | sizeflag);