Utilizzando SDL 1.3 voglio creare falsi SDL_Window fullscreen sotto linux. È facile se ho un solo display. Ho appena ottenuto la modalità di visualizzazione corrente e ho creato una finestra.SDL modalità a schermo intero falso sulla configurazione a doppio monitor sotto 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);
Ma quando ho due schermi, le cose si complicano. La finestra si estende su più monitor. SDL vede solo un display virtuale di dimensioni doppie.
ho provato con questo codice
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;
}
uscita:
display 0: x,y,w,h(0, 0, 2960, 1050)
Ma ho due schermi (1680x1050 e 1280x1024).
come forzare la finestra di rimanere su una sola (assumere principale) Display?
+1 interessante. Questo mi sembra una scelta del sistema operativo e io non sono sicuro che si può fare nulla al riguardo . – karlphillip
Quale metodo particolare stai usando per multimonitor Xinerama Xrandr Nvidia TwinView defs schermo separato nel vostro xorg.conf – genpfault
@genpfault:????.? sto usando Fedora 15 le impostazioni di default (con gnome-shell) è. xrandr probabilmente (io non sono un esperto di Linux ancora). Ma dovrebbe funzionare su altre macchine pure. – Frizi