使用SDL 1.3我想在linux下創建假全屏SDL_Window。如果我只有一個顯示器很容易。 我剛剛獲得當前顯示模式並創建了一個窗口。SDL假全屏模式在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)
但是我有兩個顯示器(1680×1050 1280×1024和)。
如何強制窗口停留在只有一個(假設主)顯示?
+1有趣。這似乎是在操作系統的選擇,我不知道你可以做任何事情。 – karlphillip
你使用多種監視器的方法是什麼?Xinerama?Xrandr?Nvidia twinview?在你的xorg.conf文件中單獨顯示屏幕? – genpfault
@genpfault:我在默認設置下(使用gnome-shell)使用fedora 15。 xrandr可能(我不是linux專家),但它也可以在其他機器上工作 – Frizi