How can I see my window in the center of the screen?
tnx
NighTiger wrote:
How can I see my window in the center of the screen?
tnx
SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl
Try this:
void CenterWindow()
{
SDL_Surface *screen=SDL_GetVideoSurface();
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
if ( SDL_GetWMInfo(&info) > 0 ) {
#ifdef __unix
if ( info.subsystem == SDL_SYSWM_X11 ) {
info.info.x11.lock_func();
int w = DisplayWidth(info.info.x11.display,
DefaultScreen(info.info.x11.display));
int h = DisplayHeight(info.info.x11.display,
DefaultScreen(info.info.x11.display));
int x = (w - screen->w)/2;
int y = (h - screen->h)/2;
XMoveWindow(info.info.x11.display,
info.info.x11.wmwindow, x, y);
info.info.x11.unlock_func();
}
#endif // unix
#ifdef WIN32
{
RECT rc;
HWND hwnd = info.window;
int w=GetSystemMetrics(SM_CXSCREEN);
int h=GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(hwnd, &rc);
int x = (w - (rc.right-rc.left))/2;
int y = (h - (rc.bottom-rc.top))/2;
SetWindowPos(hwnd, NULL, x, y, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}
#endif
}
}
I am not sure what to do in the case of Macs or general other systems.
Or try this:
#include <stdlib.h>
putenv(“SDL_VIDEO_CENTERED=1”);
In Linux, it centers the window every time SDL_SetVideoMode() is called.
In Windows, it centers the window upon program invocation, but not for
subsequent SDL_SetVideoMode() calls (within the same run).
SteveOn May 12, 2004 05:30 pm, TomT64 wrote:
NighTiger wrote:
How can I see my window in the center of the screen?
tnx
SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdlTry this:
void CenterWindow()
{
SDL_Surface *screen=SDL_GetVideoSurface();
SDL_SysWMinfo info;SDL_VERSION(&info.version); if ( SDL_GetWMInfo(&info) > 0 ) { #ifdef __unix if ( info.subsystem == SDL_SYSWM_X11 ) { info.info.x11.lock_func(); int w = DisplayWidth(info.info.x11.display,
DefaultScreen(info.info.x11.display)); int h =
DisplayHeight(info.info.x11.display,
DefaultScreen(info.info.x11.display)); int x = (w - screen->w)/2;
int y = (h - screen->h)/2;
XMoveWindow(info.info.x11.display,
info.info.x11.wmwindow, x, y);
info.info.x11.unlock_func();
}
#endif // unix
#ifdef WIN32
{
RECT rc;
HWND hwnd = info.window;
int w=GetSystemMetrics(SM_CXSCREEN);
int h=GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(hwnd, &rc);
int x = (w - (rc.right-rc.left))/2;
int y = (h - (rc.bottom-rc.top))/2;
SetWindowPos(hwnd, NULL, x, y, 0, 0,
SWP_NOSIZE|SWP_NOZORDER); }
#endif
}
}I am not sure what to do in the case of Macs or general other
systems.
SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl