SDL:在非全屏模式下查找最大窗口大小

时间:2012-06-21 18:42:49

标签: sdl sdl-1.2

我的应用程序无法以全屏模式运行。 在SDL_init之后,我执行SDL_SetVideoMode(0,0,SDL_OPENGL | SDL_HWSURFACE | SDL_ASYNCBLIT)。从我读到的,这应该分配一个最大大小的窗口。 不幸的是,它分配了一个1600x900的窗口:这是监视器的物理大小,而不是监视器上的可用空间(其中一些由菜单行和窗口边框使用)。 我有什么想法可以找到多少空间?

1 个答案:

答案 0 :(得分:-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_SetVideoMode()之前调用SDL_GetVideoInfo()