fix for fs modes on widescreen displays

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8055 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
henry 2002-11-02 18:56:16 +00:00
parent bbdc0c2055
commit e1346b93e1
1 changed files with 13 additions and 4 deletions

View File

@ -700,15 +700,24 @@ static void set_fullmode (int mode) {
screen_surface_h = priv->XHeight; screen_surface_h = priv->XHeight;
} }
else if (mode < 0) { else if (mode < 0) {
int i; int i,j,imax;
mode = 0; // Default to the biggest mode avaible mode = 0; // Default to the biggest mode avaible
if (verbose) for(i=0;priv->fullmodes[i];++i)
printf("SDL Mode: %d: %d x %d\n", i, priv->fullmodes[i]->w, priv->fullmodes[i]->h);
for(i = findArrayEnd(priv->fullmodes) - 1; i >=0; i--) { for(i = findArrayEnd(priv->fullmodes) - 1; i >=0; i--) {
if( (priv->fullmodes[i]->w >= priv->dstwidth) && if( (priv->fullmodes[i]->w >= priv->dstwidth) &&
(priv->fullmodes[i]->h >= priv->dstheight) ) { (priv->fullmodes[i]->h >= priv->dstheight) ) {
mode = i; imax = i;
for (j = findArrayEnd(priv->fullmodes) - 1; j >=0; j--) {
if (priv->fullmodes[j]->w > priv->fullmodes[imax]->w
&& priv->fullmodes[j]->h == priv->fullmodes[imax]->h)
imax = j;
}
mode = imax;
break; break;
} }
} }
if (verbose) printf("SET SDL Mode: %d: %d x %d\n", mode, priv->fullmodes[mode]->w, priv->fullmodes[mode]->h);
priv->fullmode = mode; priv->fullmode = mode;
screen_surface_h = priv->fullmodes[mode]->h; screen_surface_h = priv->fullmodes[mode]->h;
screen_surface_w = priv->fullmodes[mode]->w; screen_surface_w = priv->fullmodes[mode]->w;