Поддельный полноэкранный режим SDL при настройке двух мониторов под Linux

Используя 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).

Как заставить окно оставаться только на одном (предположим, основном) дисплее?

8
задан Frizi 28 October 2011 в 14:02
поделиться