diff --git a/Editor/main_SDL2.cpp b/Editor/main_SDL2.cpp index caf806721..53a416229 100644 --- a/Editor/main_SDL2.cpp +++ b/Editor/main_SDL2.cpp @@ -197,7 +197,7 @@ int main(int argc, char *argv[]) "Wicked Engine Editor", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, w, h, - SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE); + SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); if (!window) { throw sdl2::SDLError("Error creating window"); } diff --git a/Tests/main_SDL2.cpp b/Tests/main_SDL2.cpp index fd493e656..43c7fb6ca 100644 --- a/Tests/main_SDL2.cpp +++ b/Tests/main_SDL2.cpp @@ -64,7 +64,7 @@ int main(int argc, char *argv[]) "Wicked Engine Tests", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 800, - SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE); + SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); if (!window) { throw sdl2::SDLError("Error creating window"); } diff --git a/WickedEngine/wiPlatform.h b/WickedEngine/wiPlatform.h index 0f17d6abf..7a77877ad 100644 --- a/WickedEngine/wiPlatform.h +++ b/WickedEngine/wiPlatform.h @@ -38,6 +38,7 @@ typedef void* HMODULE; #ifdef SDL2 #include +#include #include "sdl2.h" #endif @@ -94,8 +95,10 @@ namespace wiPlatform #endif // PLATFORM_UWP #ifdef PLATFORM_LINUX - dest->dpi = 96; // todo - SDL_GetWindowSize(window, &dest->width, &dest->height); + int window_width, window_height; + SDL_GetWindowSize(window, &window_width, &window_height); + SDL_Vulkan_GetDrawableSize(window, &dest->width, &dest->height); + dest->dpi = ((float) dest->width / (float) window_width) * 96.0; #endif // PLATFORM_LINUX } }