Date: Mon, 24 Feb 2003 16:31:25 -0500
From: Ragnvald "Despair" Maartmann-Moe IV Subject: SDL x11 video mode selection bug Hi, I've found an oddity with video mode selection. I recently added a bunch of oddball video modes to my XF86Config, to support weird resolutions xine & mplayer need if I don't want to beat my cpu up with video scaling. Since adding them, SDL started picking the biggest video mode it could find that matched the height constraint. Getting a narrow vertical strip of QuakeForge (I code for the project, so needless to say it's my favorite test) in the middle of an 800x480 screen, instead of the 640x480 I asked for annoys me tremendously. So here's a patch that tries a bit harder to get an exact match. I didn't touch the XiG section, since I can't test that, but I'd bet a similar patch would prevent similar problems there. --Ragnvald "Despair" Maartmann-Moe IV --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40605
This commit is contained in:
parent
53598ce435
commit
bb0214c5a3
1 changed files with 6 additions and 0 deletions
|
@ -112,11 +112,17 @@ static void set_best_resolution(_THIS, int width, int height)
|
|||
modes[i]->hdisplay, modes[i]->vdisplay);
|
||||
}
|
||||
#endif
|
||||
for ( i = nmodes-1; i > 0 ; --i ) {
|
||||
if ( (modes[i]->hdisplay == width) &&
|
||||
(modes[i]->vdisplay == height) )
|
||||
goto match;
|
||||
}
|
||||
for ( i = nmodes-1; i > 0 ; --i ) {
|
||||
if ( (modes[i]->hdisplay >= width) &&
|
||||
(modes[i]->vdisplay >= height) )
|
||||
break;
|
||||
}
|
||||
match:
|
||||
if ( (modes[i]->hdisplay != mode.hdisplay) ||
|
||||
(modes[i]->vdisplay != mode.vdisplay) ) {
|
||||
SDL_NAME(XF86VidModeSwitchToMode)(SDL_Display, SDL_Screen, modes[i]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue