move steam deck hack to sdl/sdl.cpp
This commit is contained in:
parent
993b705d8b
commit
5b8e932509
|
@ -734,17 +734,7 @@ bool VulkanContext::init()
|
|||
if (!SDL_GetDisplayDPI(SDL_GetWindowDisplayIndex(sdlWin), nullptr, &hdpi, &vdpi))
|
||||
settings.display.dpi = roundf(std::max(hdpi, vdpi));
|
||||
|
||||
#ifdef __linux__
|
||||
// Fixing Steam Deck's incorrect 60mm * 60mm EDID
|
||||
if (settings.display.dpi > 500)
|
||||
{
|
||||
int displayIndex = SDL_GetWindowDisplayIndex(sdlWin);
|
||||
SDL_DisplayMode mode;
|
||||
SDL_GetDisplayMode(displayIndex, 0, &mode);
|
||||
if ( displayIndex == 0 && (strcmp(SDL_GetDisplayName(displayIndex), "ANX7530 U 3\"") == 0 || strcmp(SDL_GetDisplayName(displayIndex), "XWAYLAND0 3\"") == 0) && mode.w == 1280 && mode.h == 800 )
|
||||
settings.display.dpi = 206;
|
||||
}
|
||||
#endif
|
||||
sdl_fix_steamdeck_dpi(sdlWin);
|
||||
#elif defined(_WIN32)
|
||||
vk::Win32SurfaceCreateInfoKHR createInfo(vk::Win32SurfaceCreateFlagsKHR(), GetModuleHandle(NULL), (HWND)window);
|
||||
surface = instance->createWin32SurfaceKHRUnique(createInfo);
|
||||
|
|
|
@ -663,3 +663,21 @@ void sdl_window_destroy()
|
|||
SDL_DestroyWindow(window);
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
||||
}
|
||||
|
||||
void sdl_fix_steamdeck_dpi(SDL_Window *window)
|
||||
{
|
||||
#ifdef __linux__
|
||||
// Fixing Steam Deck's incorrect 60mm * 60mm EDID
|
||||
if (settings.display.dpi > 500)
|
||||
{
|
||||
int displayIndex = SDL_GetWindowDisplayIndex(window);
|
||||
SDL_DisplayMode mode;
|
||||
SDL_GetDisplayMode(displayIndex, 0, &mode);
|
||||
if (displayIndex == 0
|
||||
&& (strcmp(SDL_GetDisplayName(displayIndex), "ANX7530 U 3\"") == 0
|
||||
|| strcmp(SDL_GetDisplayName(displayIndex), "XWAYLAND0 3\"") == 0)
|
||||
&& mode.w == 1280 && mode.h == 800)
|
||||
settings.display.dpi = 206;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -9,3 +9,4 @@ void sdl_window_create();
|
|||
void sdl_window_set_text(const char* text);
|
||||
void sdl_window_destroy();
|
||||
bool sdl_recreate_window(u32 flags);
|
||||
void sdl_fix_steamdeck_dpi(SDL_Window *window);
|
||||
|
|
|
@ -85,17 +85,7 @@ bool SDLGLGraphicsContext::init()
|
|||
if (!SDL_GetDisplayDPI(SDL_GetWindowDisplayIndex(sdlWindow), nullptr, &hdpi, &vdpi))
|
||||
settings.display.dpi = roundf(std::max(hdpi, vdpi));
|
||||
|
||||
#ifdef __linux__
|
||||
// Fixing Steam Deck's incorrect 60mm * 60mm EDID
|
||||
if (settings.display.dpi > 500)
|
||||
{
|
||||
int displayIndex = SDL_GetWindowDisplayIndex(sdlWindow);
|
||||
SDL_DisplayMode mode;
|
||||
SDL_GetDisplayMode(displayIndex, 0, &mode);
|
||||
if ( displayIndex == 0 && (strcmp(SDL_GetDisplayName(displayIndex), "ANX7530 U 3\"") == 0 || strcmp(SDL_GetDisplayName(displayIndex), "XWAYLAND0 3\"") == 0) && mode.w == 1280 && mode.h == 800 )
|
||||
settings.display.dpi = 206;
|
||||
}
|
||||
#endif
|
||||
sdl_fix_steamdeck_dpi(sdlWindow);
|
||||
|
||||
INFO_LOG(RENDERER, "Created SDL Window and GL Context successfully");
|
||||
|
||||
|
|
Loading…
Reference in New Issue