如何在Linux中居中SDL窗口?

时间:2012-08-16 11:54:17

标签: c++ linux sdl

我试图找到一种方法来创建一个以屏幕为中心的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中做到这一点?

2 个答案:

答案 0 :(得分:5)

在初始化SDL并创建窗口之前使用putenv()

#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.
    ...
}

答案 1 :(得分:2)

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

  

SDL_VIDEO_CENTERED

     

如果设置,则在X11窗口中运行时尝试使SDL窗口居中   模式,或使用Cyber​​Grafix驱动程序。

可以帮到你