如何在Linux中使SDL窗口居中显示?

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上实现这个功能?


为什么要这样做呢?如果你想让用户拥有窗口,就让他随意放置窗口。 - nothrow
把窗口放在屏幕中央是个好主意。另外,当我制作类似于启动画面的东西时,让它随机出现在屏幕上并不是一个好选择。 - Mertcan Ekiz
2个回答

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

2

谢谢,但我收到了“SDL_VIDEO_CENTERED未声明”的错误。我需要包含额外的内容吗? - Mertcan Ekiz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接