在Linux上使用SDL2确定最大窗口大小

时间:2019-02-26 18:58:11

标签: c++ linux graphics sdl sdl-2

我想确定初始化期间当前显示器上的最大可能窗口大小,以确定设置是否有效。我能确定的唯一方法是创建一个临时最大化窗口并调用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()

获得的显示器大小。

0 个答案:

没有答案
相关问题