Используя SDL 1.3, я хочу создать поддельное полноэкранное окно SDL_Window под Linux. Это легко, если у меня есть только один дисплей. Я только что получил текущий режим отображения и создал окно.
SDL_GetDesktopDisplayMode(0, &mode);
SDL_Window *win = SDL_CreateWindow("my window",
0,0,mode.w, mode.h,
SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS );
Но когда у меня два дисплея, все становится сложнее. Окно распространяется на несколько мониторов. SDL видит только один виртуальный дисплей двойного размера.
Я тестировал его с помощью этого кода
int num = SDL_GetNumVideoDisplays();
for( int i=0; i < num; i++ )
{
SDL_Rect displayRect;
SDL_GetDisplayBounds( i, &displayRect );
std::cout
<< "display " << i << ": x,y,w,h("
<< displayRect.x << ", "
<< displayRect.y << ", "
<< displayRect.w << ", "
<< displayRect.h << ")"
<< std::endl;
}
вывода:
display 0: x,y,w,h(0, 0, 2960, 1050)
Но я иметь два дисплея (1680x1050 и 1280x1024).
Как заставить окно оставаться только на одном (предположим, основном) дисплее?