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