2012-08-16 104 views
4

我試圖找到一種方法來創建中心屏幕上的SDL窗口,我發現這個代碼如何在Linux中居中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中執行此操作?

+0

你爲什麼要這麼做?如果你想讓用戶有窗戶,讓他把窗戶放在任何地方。 – nothrow 2012-08-16 11:55:58

+0

在窗口中央有窗口很高興。另外,當我做一個閃屏類的東西,它不會是一個隨機的位置飛濺 – 2012-08-16 11:57:29

回答

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

這是一種魅力,謝謝! – 2012-08-16 16:19:11

2

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

SDL_VIDEO_CENTERED

如果置位,試圖居中SDL窗口在X11上運行時窗 模式,或使用Cyber​​Grafix驅動程序。

可以幫助你

+0

謝謝,但我得到SDL_VIDEO_CENTERED沒有宣佈錯誤。我必須包括一些額外的東西嗎? – 2012-08-16 12:01:17