SDL_ListModes

» Name

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

» Synopsis

module "/pliant/SDL/SDL.pli"

function SDL_ListModes format flags -> rect_array
 arg Address format # (SDL_PixelFormat)
 arg uInt flags
 arg Address rect_array #(Pointer:Pointer:SDL_Rect or SDL_Rect **) 
 external sdl_library "SDL_ListModes"

  

» 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

var Address modes
var Int i
.
.
.
#Get available FULLSCREEN/hardware modes:
modes := SDL_ListModes null SDL_FULLSCREEN .or. SDL_HWSURFACE

if modes = null
 console "No modes available" eol
 return -1

if modes = (cast -1 Address)
 console "All resolutions available"

else
 console "Available Modes:" eol
 var SDL_Rect r
 while modes <> null
   r := (modes map SDL_Rect)
   console r:w "x" r:h
   modes := (modes translate SDL_Rect 1)
  

» See Also

SDL_SetVideoMode SDL_GetVideoInfo SDL_Rect SDL_PixelFormat

*Parts extracted and reproduced from official SDL documentation copyrighted by Sam Lantinga, also author of SDL.