2012-06-21 124 views
4

我有一個不能在全屏模式下運行的應用程序。 SDL_init後,我執行SDL_SetVideoMode(0,0,SDL_OPENGL | SDL_HWSURFACE | SDL_ASYNCBLIT)。從我讀到的,這應該分配一個最大尺寸的窗口。 現在不幸的是它分配了一個1600x900的窗口:這是顯示器的物理尺寸,但不是顯示器上的可用空間(有些由菜單行和窗口邊界使用)。 任何想法如何找到有多少空間可用?SDL:在非全屏模式下查找最大窗口大小

+0

您是否在尋找特定於平臺的解決方案或通用解決方案? – Xonar

回答

-2

我有我的程序運行全屏(隱藏菜單,碼頭,板等)的是:

if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { 
    throw SDL_GetError(); 
} 
const SDL_VideoInfo* vidinfo = SDL_GetVideoInfo(); 
int max_w = vidinfo->current_w; 
int max_h = vidinfo->current_h; 
. 
. 
. 
SDL_Surface *screen = SDL_SetVideoMode(max_w,max_h,0,SDL_FULLSCREEN); 

一定要調用SDL_GetVideoInfo()之前 SDL_SetVideoMode()。