Return a pointer to an array of available screen dimensions for the given format and video flags, sorted largest to smallest. Returns NULL if there are no dimensions available for a particular format, or -1 if any dimension is okay for the given format.
If format is NULL , the mode list will be for the format returned by SDL_GetVideoInfo()->vfmt. The flag parameter is an OR'd combination of surface flags. The flags are the same as those used SDL_SetVideoMode and they play a strong role in deciding what modes are valid. For instance, if you pass SDL_HWSURFACE as a flag only modes that support hardware video surfaces will be returned.
modes : PPSDL_Rect;
i : integer;
.
.
.
// Get available fullscreen/hardware modes
modes := SDL_ListModes( nil, SDL_FULLSCREEN or SDL_HWSURFACE );
// Check is there are any modes available
if (modes = PPSDL_Rect( 0 ) ) then
begin
WriteLn( 'No modes available!' );
halt(-1);
end;
// Check if or resolution is restricted
if ( modes = PPSDL_Rect(-1) ) then
begin
WriteLn( 'All resolutions available.' );
end
else
begin
// Print valid modes
WriteLn( 'Available Modes' );
for i := 0 to modes[i] - 1 do
WriteLn( Format( ' %d x %d', [ modes[i].w, modes[i].h ] ) );
end;
.
.