mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
Don't add duplicate resolutions to r_availableModes
SDL can give the same resolution with different refresh rates. The refresh rate isn't used, so only add resolution to mode list once.
This commit is contained in:
parent
9fbbf4214d
commit
24923615b7
1 changed files with 13 additions and 2 deletions
|
@ -128,7 +128,7 @@ GLimp_DetectAvailableModes
|
|||
*/
|
||||
static void GLimp_DetectAvailableModes(void)
|
||||
{
|
||||
int i;
|
||||
int i, j;
|
||||
char buf[ MAX_STRING_CHARS ] = { 0 };
|
||||
SDL_Rect modes[ 128 ];
|
||||
int numModes = 0;
|
||||
|
@ -158,6 +158,17 @@ static void GLimp_DetectAvailableModes(void)
|
|||
if( windowMode.format != mode.format )
|
||||
continue;
|
||||
|
||||
// SDL can give the same resolution with different refresh rates.
|
||||
// Only list resolution once.
|
||||
for( j = 0; j < numModes; j++ )
|
||||
{
|
||||
if( mode.w == modes[ j ].w && mode.h == modes[ j ].h )
|
||||
break;
|
||||
}
|
||||
|
||||
if( j != numModes )
|
||||
continue;
|
||||
|
||||
modes[ numModes ].w = mode.w;
|
||||
modes[ numModes ].h = mode.h;
|
||||
numModes++;
|
||||
|
@ -173,7 +184,7 @@ static void GLimp_DetectAvailableModes(void)
|
|||
if( strlen( newModeString ) < (int)sizeof( buf ) - strlen( buf ) )
|
||||
Q_strcat( buf, sizeof( buf ), newModeString );
|
||||
else
|
||||
ri.Printf( PRINT_WARNING, "Skipping mode %ux%x, buffer too small\n", modes[ i ].w, modes[ i ].h );
|
||||
ri.Printf( PRINT_WARNING, "Skipping mode %ux%u, buffer too small\n", modes[ i ].w, modes[ i ].h );
|
||||
}
|
||||
|
||||
if( *buf )
|
||||
|
|
Loading…
Reference in a new issue