sdl: don't rely on event to get window size when processing resize event
window size may be different from drawable size if high-dpi is enabled. Fixes wayland resize with scale factor > 100%.
This commit is contained in:
parent
d9c08bd081
commit
0b6c09da02
|
@ -292,26 +292,17 @@ void input_sdl_handle()
|
||||||
|| event.window.event == SDL_WINDOWEVENT_MINIMIZED
|
|| event.window.event == SDL_WINDOWEVENT_MINIMIZED
|
||||||
|| event.window.event == SDL_WINDOWEVENT_MAXIMIZED)
|
|| event.window.event == SDL_WINDOWEVENT_MAXIMIZED)
|
||||||
{
|
{
|
||||||
if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED
|
|
||||||
&& event.window.data1 != 0 && event.window.data2 != 0)
|
|
||||||
{
|
|
||||||
settings.display.width = event.window.data1;
|
|
||||||
settings.display.height = event.window.data2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
#ifdef USE_VULKAN
|
#ifdef USE_VULKAN
|
||||||
if (windowFlags & SDL_WINDOW_VULKAN)
|
if (windowFlags & SDL_WINDOW_VULKAN)
|
||||||
SDL_Vulkan_GetDrawableSize(window, &settings.display.width, &settings.display.height);
|
SDL_Vulkan_GetDrawableSize(window, &settings.display.width, &settings.display.height);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
if (windowFlags & SDL_WINDOW_OPENGL)
|
if (windowFlags & SDL_WINDOW_OPENGL)
|
||||||
SDL_GL_GetDrawableSize(window, &settings.display.width, &settings.display.height);
|
SDL_GL_GetDrawableSize(window, &settings.display.width, &settings.display.height);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
SDL_GetWindowSize(window, &settings.display.width, &settings.display.height);
|
SDL_GetWindowSize(window, &settings.display.width, &settings.display.height);
|
||||||
}
|
|
||||||
GraphicsContext::Instance()->resize();
|
GraphicsContext::Instance()->resize();
|
||||||
}
|
}
|
||||||
else if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED)
|
else if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED)
|
||||||
|
|
Loading…
Reference in New Issue