SDL_ListModes

Name

SDL_ListModes -- Returns a pointer to an array of available screen dimensions for the given format and video flags

Synopsis

uses
SDL;

function SDL_ListModes( format : PSDL_PixelFormat; flags : UInt32 ) : PPSDL_Rect;

Description

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.

Example

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;
.
.

See Also

SDL_SetVideoMode , SDL_GetVideoInfo , SDL_Rect, SDL_PixelFormat