SDL_ListModes
SDL_ListModes -- Retourne un pointeur vers un tableau de dimensions d'écran disponibles pour le format et les flags vidéos donnés
Syntaxe
SDL_Rect** SDL_ListModes(SDL_PixelFormat* format, Uint32 flags);
Description
Le pointeur renvoyé est un tableau de pointeurs de SDL_Rect de dimensions d'écran disponibles pour le format et les flags vidéos donnés. Le tableau n'a aucune garantie d'être trié dans un ordre particulier. La fonction renvoie NULL s'il n'y a aucun mode disponible pour le format donné, ou -1 si n'importe quelle dimension marche pour ce format.
Paramètres
format [in]
Le SDL_PixelFormat du mode à consulter. Si format est NULL, le format actuel du périphérique vidéo est utilisé. Ce dernier est déterminé grâce à SDL_GetVideoInfo.
flags [in]
Le paramètre flags est une combinaison (opérateur |) de flags de surface identiques à ceux utilisés par SDL_SetVideoMode et ils jouent un rôle important dans la décision de la validité ou non d'un mode. Par exemple, si vous passez SDL_HWSURFACE comme flag, seuls les modes qui supportent les surfaces vidéo matérielles seront renvoyés.
Valeur de retour
NULL
- Aucun mode n'est disponible pour le format donné
-1
- Toutes les dimensions fonctionnent pour le format donné
Le pointeur vers le tableau de SDL_Rect*
- En cas de réussite. Le pointeur vers le tableau de dimensions est géré par SDL. L'appelant ne doit pas libérer le pointeur retourné.
Exemple
1 SDL_Rect** modes;
2 int i;
3
4 /* Récupère les modes plein écran et matériel disponibles */
5 modes = SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE);
6
7 /* Vérifie que des modes sont disponibles*/
8 if (modes == (SDL_Rect**)0) {
9 printf("Aucun mode vidéo disponible!\n");
10 exit(-1);
11 }
12
13 /* Vérifie si nos choix de résolutions sont restreints */
14 if (modes == (SDL_Rect**)-1) {
15 printf("Toutes les résolutions sont disponibles.\n");
16 }
17 else{
18 /* Affiche les modes valides */
19 printf("Modes vidéo disponibles\n");
20 for (i=0; modes[i]; ++i)
21 printf(" %d x %d\n", modes[i]->w, modes[i]->h);
22 }
Voir Aussi
SDL_SetVideoMode, SDL_VideoModeOK, SDL_GetVideoInfo, SDL_Rect, SDL_PixelFormat
Requis
Header |
SDL.h |
Version |
1.2.13 |
Shared object |
libSDL.so |
DLL |
SDL.dll |
User comments
From digging through the source: the list returned by this call is statically allocated. You do not need to free it. Now, somebody help me out here for future reference, should I have just assumed that because it wasn't otherwise mentioned or should that sort of thing be documented explicitly?
-- cid 2005-??-??
SDL_ListModes doesn't quite give the list of all the modes that would work (X11). I was briefly filtering the available resolutions based on the values returned and removed it from Quake4 as it was way too restrictive. I don't know if it's a problem with SDL, or with Xxf86vm.
-- TTimo 2006-04-24
