You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported in version: 1.2.14 Reported for operating system, platform: Windows Vista, x86
Comments on the original bug report:
On 2009-12-14 20:32:35 +0000, wrote:
Created attachment 464
Simple C++ openGL/SDL program to demonstrate SDL_VIDEORESIZE issue
I've been working on an SDL/OpenGL program, that among other things, must deal
with resizing events in order to adjust the aspect ratio.
It doesn't always seem to get the SDL_VIDEORESIZE event when it should, causing
the aspect ratio to not be adjusted as needed.
I've run it in debug mode and made these observations:
*When it initially starts up, if I maximize the window, it receives the
SDL_VIDEORESIZE event as needed.
*If, after starting up the the application and maximizing the window, I then
restore the window by double clicking the title bar, it does NOT receive the
SDL_VIDEORESIZE event.
*I can repeat the last two steps, and it will get continue to get the
SDL_VIDEORESIZE on the maximize but not get one on the restore.
*If I then do a slight adjustment to the width or height of the window, it will
get the SDL_VIDEORESIZE event.
*From then on, if I do restore operations to the window, the SDL_VIDEORESIZE
event will be caught properly.
I included a simple Open GL rotating pyramid program to demonstrate the
problem, written in Visual C++ 2008 Express. The steps above should produce
the error, in which case you will see an incorrect aspect ratio on the scene.
A Win32 function to create a message box is included at the problem point, but
remarked out. Uncomment it if you wish to use it.
Created attachment 502
Proposed patch for SDL_resize.c
The width and height values stored in SDL_VideoSurface are the sizes of the video surface when it was created. So, when the window is rezised back to its creation size, the following condition will make the SDL_PrivateResize function stop, and the video resize msg won't be queued.
if ( ! SDL_VideoSurface ||
((w == SDL_VideoSurface->w) && (h == SDL_VideoSurface->h)) ) {
return(0);
}
On 2011-12-30 02:59:51 +0000, Sam Lantinga wrote:
I'm okay with applying this patch, but be aware that the expected response to a resize message is that you call SDL_SetVideoMode() again with the new mode. This signals SDL that you're expecting the new size, and there may be other problems if you don't do this.
This bug report was migrated from our old Bugzilla tracker.
These attachments are available in the static archive:
Reported in version: 1.2.14
Reported for operating system, platform: Windows Vista, x86
Comments on the original bug report:
On 2009-12-14 20:32:35 +0000, wrote:
On 2010-03-28 15:15:16 +0000, vgvgf wrote:
On 2011-12-30 02:59:51 +0000, Sam Lantinga wrote:
On 2011-12-30 03:02:27 +0000, Sam Lantinga wrote:
The text was updated successfully, but these errors were encountered: