SDL Library Documentation
Prev |  | Next

# SDL_ListModes

## Name

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

## Synopsis

    #include "SDL.h"

``SDL_Rect **SDL_ListModes`(SDL_PixelFormat *format, Uint32 flags);`

## 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

    SDL_Rect **modes;
    int i;
    .
    .
    .

    /* Get available fullscreen/hardware modes */
    modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE);

    /* Check is there are any modes available */
    if(modes == (SDL_Rect **)0){
      printf("No modes available!\n");
      exit(-1);
    }

    /* Check if our resolution is restricted */
    if(modes == (SDL_Rect **)-1){
      printf("All resolutions available.\n");
    }
    else{
      /* Print valid modes */
      printf("Available Modes\n");
      for(i=0;modes[i];++i)
        printf("  %d x %d\n", modes[i]->w, modes[i]->h);
    }
    .
    .

## See Also

`SDL_SetVideoMode`, `SDL_GetVideoInfo`, SDL_Rect, SDL_PixelFormat

Prev | Home | Next
SDL_VideoDriverName | Up | SDL_VideoModeOK