4

フルスクリーン モードで実行されないアプリケーションがあります。SDL_init の後、SDL_SetVideoMode(0, 0, SDL_OPENGL | SDL_HWSURFACE | SDL_ASYNCBLIT) を実行します。私が読んだことから、これは最大サイズのウィンドウを割り当てるはずです。残念なことに、1600x900 のウィンドウが割り当てられます。これはモニターの物理サイズですが、モニターの空き領域ではありません (その一部はメニュー行とウィンドウ境界で使用されます)。利用可能なスペースの量を見つける方法はありますか?

4

1 に答える 1

-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()を呼び出してください.

于 2013-05-30T16:46:51.993 に答える