[SDL] How to get resolution of my SDL window?

voidstar voidstar at tin.it
Wed Dec 5 16:15:12 PST 2007

> No need to use windows-specific functions...
> Just use the SDL_GetVideoSurface() function. It returns a pointer to the 
> current display surface. you can even use it directly:
> int screen_width = SDL_GetVideoSurface()->w; // this gives surface width
> int screen_height = SDL_GetVideoSurface()->h; // this gives surface height
> if you assign it to an existing pointer (screen = SDL_GetVideoSurface();) it 
> will only work until the screen is resized, at which point you must reassign 
> the pointer to the changed video surface. (similar, if not identical, to 
> what you have been describing.)

I've tried to use GetVideoSurface() function, but it doesn't "notice" that my
window has been resized while SDL_VIDEORESIZE events are disabled.

The situation is the following:

When the user keep space-bar pressed, I show a picture and I disable
SDL_VIDEORESIZE events (and mouse events too)

If the user (while pressing space-bar) try to resize the window with the mouse,
SDL doen't receive the resize event, so it doesn't update the screen, but
Windows resize the window (the window is larger/smaller)!

So, when the user release space-bar, I want the window to return to the original
resolution (because this is an invalid resize for my app), but I want to do this
*only* if the user resized the window while pressing space-bar.

To check is the user resized the window while pressing space-bar, I have to
check the new *real* window resolution, and compare it with his resolution
before pressing space-bar.

The problem with SDL_GetVideoSurface is that when the user release space-bar,
SDL_GetVideoSurface()->w and SDL_GetVideoSurface()->h return me the original
resolution, also if the user resized the window while SDL_VIDEORESIZE events
were disabled.

Instead, using GetClientRect I can obtain the new *real* window resolution.

Do you know if there's another way to do this using SDL?

Thanks for you help

More information about the SDL mailing list