Определите максимальный размер окна с помощью SDL2 в Linux - PullRequest
0 голосов
/ 26 февраля 2019

Я бы хотел определить максимально возможный размер окна на текущем дисплее во время инициализации, чтобы определить, действительны ли настройки.Единственный способ сделать это - создать временное развернутое окно и вызвать SDL_GetWindowSize().Это работает, как и ожидалось, в macOS, но не работает в Linux.

Вот мой код:

int max_width, max_height;
SDL_Window* test_window = SDL_CreateWindow( "test_window",
    SDL_WINDOWPOS_CENTERED_DISPLAY( current_display_id ),
    SDL_WINDOWPOS_CENTERED_DISPLAY( current_display_id ),
    20, 10, // No display is this small
    SDL_WINDOW_RESIZABLE | SDL_WINDOW_MAXIMIZED
);

SDL_GetWindowSize( test_window, &max_width, &max_height );

В macOS max_width и max_height правильно установлены на максимальный размер окна.Однако в Linux они установлены на 20 и 10.

Может кто-нибудь сказать мне, почему это не работает в Linux?Есть ли лучший способ сделать то же самое?

Редактировать: Может быть, я не совсем понял, что я имею в виду под максимальным размером окна.Большинство операционных систем имеют своего рода панель задач / док-станцию, которая ограничивает используемую область дисплея, поэтому «максимальный размер окна» не равен размеру дисплея, полученному с помощью SDL_GetDesktopDisplayMode()

...