IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ SDL

FAQ SDLConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 67, création le 10 mai 2013 

 
OuvrirSommaireFenêtres

Lorsque l'on travaille en mode fenêtré (par exemple X11 ou Windows), il est possible de changer le titre de la fenêtre et de l'icône tout simplement en faisant :

 
Sélectionnez
SDL_WM_SetCaption("Nom de ma fenêtre !", "Nom de mon icône");

Il est ensuite possible de récupérer ces informations avec la fonction GetCaption() comme ceci :

 
Sélectionnez
char* Title;
char* Icon;

SDL_WM_GetCaption(&Title, &Icon);
printf("Titre : %s - Icône : %s", Title, Icon);
Créé le 16 mars 2006  par Fiquet

SDL permet aussi d'ajouter une icône à notre programme si l'on utilise bien sûr une fenêtre. Pour cela, il suffit de lui passer le pointeur d'une SDL_Surface en paramètre, par exemple depuis une image BMP :

 
Sélectionnez
SDL_WM_SetIcon(SDL_LoadBMP("monicone.bmp"), NULL);

Le deuxième paramètre sert à définir un masque de transparence ; mais si votre surface est de 256 couleurs et possède une couleur de transparence (voir https://jeux.developpez.com/faq/sdl/?page=2d#2D_colorkey), SDL se chargera pour vous de définir le masque.

Note : cette fonction doit être appelée avant la création de la fenêtre avec SDL_SetVideoMode().

Créé le 16 mars 2006  par Fiquet

Depuis la version 1.2.10 de SDL, il est indiqué dans la documentation, qu'il est possible de passer d'un mode à l'autre avec le code suivant :

Changement du mode fenêtré au mode plein écran
Sélectionnez
Uint32 flags = SDL_SWSURFACE; /* Initialise les paramètres de la fenêtre */
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 32, flags); /* Ouvre une fenêtre avec les paramètres voulus */
 
flags = screen->flags; /* Sauvegarde les paramètres actuellement utilisés en cas d'échec du changement d'état */
screen = SDL_SetVideoMode(0, 0, 0, screen->flags ^ SDL_FULLSCREEN); /* Passe en mode plein écran */
if(screen == NULL) screen = SDL_SetVideoMode(0, 0, 0, flags); /* Si le changement échoue, réinitialise la fenêtre avec la configuration précédente */
if(screen == NULL) exit(1); /* Si la réinitialisation échoue, alors c'est un échec total */

De plus, il existe la fonction SDL_WM_ToggleFullScreen() qui prend en paramètre la surface principale, mais ce n'est supporté qu'avec X11, donc plus portable.

Créé le 16 mars 2006  par Fiquet, LittleWhite

Pour modifier la position de la fenêtre par défaut, on peut ajouter ce code :

Le changement de position de la fenêtre
Sélectionnez
#include <SDL/SDL_getenv.h>

putenv("SDL_VIDEO_WINDOW_POS=center"); //pour centrer la fenêtre
putenv("SDL_VIDEO_WINDOW_POS=0,0");    //pour placer en x,y (ici 0,0)

Attention, ceci ne fonctionnera pas avec tous les systèmes d'exploitation, mais il fonctionne normalement au moins sous Windows et Linux.

Créé le 3 mai 2007  par fearyourself

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006-2012 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.