4

画面の中央にSDLウィンドウを作成する方法を見つけようとしていたところ、このコードが見つかりました

#ifdef WIN32
#include <SDL_syswm.h>
SDL_SysWMinfo i;
SDL_VERSION( &i.version );
if ( SDL_GetWMInfo ( &i) ) {
HWND hwnd = i.window;
SetWindowPos( hwnd, HWND_TOP, x, y, width, height, flags );
}
#endif // WIN32

ただし、これはWindows専用です。Linuxでこれを行うにはどうすればよいですか?

4

2 に答える 2

5

putenv()SDLを初期化してウィンドウを作成する前に使用します。

#include <SDL.h>
#include <SDL_getenv.h>

int main( int argc, char* argv[] )
{
    putenv("SDL_VIDEO_CENTERED=1"); 
    // init SDL, create window, main loop, etc.
    ...
}
于 2012-08-16T14:53:18.377 に答える
2

http://www.libsdl.org/docs/html/sdlenvvars.html

SDL_VIDEO_CENTERED

設定されている場合、X11ウィンドウモードで実行しているとき、またはCyber​​Grafixドライバーを使用しているときに、SDLウィンドウを中央に配置しようとします。

あなたを助けるかもしれません

于 2012-08-16T11:57:30.610 に答える