Personnalisons notre fenêtre
En effet, vous venez de créer votre premier programme fenêtré réagissant aux événements!
Mais comme vous pouvez le constater, cette fenêtre:
est celle par défaut. Grâce à la SDL, nous pouvons la personnaliser. Par exemple nous pouvons changer son titre, lui mettre un icône, faire du plein écran, ne pas mettre de bordure, etc...
On n'y go!
Le titre
Par défaut, la fenêtre se nomme SDL_app. Mais je pense que vous avez envie de remplacer ce texte par le titre de votre choix
Pour cela, il vous faut utiliser la fonction:
SDL_WM_SetCaption("TITRE", NULL);
Où "TITRE" est une chaine de caractère. Le deuxième paramètre ne sert à rien (enfin si, à donner un nom à l'icône de la fenêtre. Mais personne ne l'utilise jamais

). Mettez donc à NULL ce paramètre.
Donc si vous souhaitez appeler votre fenêtre "tuto SDL" il vous suffit d'écrire ceci
SDL_WM_SetCaption("tuto SDL", NULL);
Ce qui donnera:
C'est déjà mieux

Voyons maintenant comment modifier la taille de la fenêtre.
La taille de la fenêtre
Nous avons dis précédemment que pour créer la fenêtre, nous utilisons la fonction SDL_SetVideoMode.
SDL_SetVideoMode(TAILLE_FENETRE_X, TAILLE_FENETRE_Y, 32, SDL_HWSURFACE);
Comme indiqué ci-dessus, il vous suffit de mettre les valeurs (en pixels) correspondant aux mesures voulues de votre fenêtre.
Maintenant si vous souhaitez la mettre en plein écran, ne vous amusez pas à calculer la longueur de votre écran puisqu'en plus il change quasiment pour chaque personne

Pour faire du plein écran il vous suffit juste de rajouter le flag SDL_FULLSCREEN dans les options avec le signe | (que l'on fait avec Alt Gr+6) comme ceci:
SDL_SetVideoMode(TAILLE_FENETRE_X, TAILLE_FENETRE_Y, 32, SDL_HWSURFACE | SDL_FULLSCREEN);
Et votre application est en plein écran! Mais du coup vous n'avez plus la barre de titre avec la croix et le reste, d'où l'utilité de maîtriser les événements
Le double buffering
Si vous souhaitez créer des jeux vidéo (qu'il soit en 2D ou en 3D) vous aurez forcément besoin de ceci: le double buffering.
Mais qu'est-ce que le double buffering?
Prenons un exemple qui permet de bouger un personnage sur un fond avec les touches fléchées. Si vous codez cela sans le double buffering, vous allez, à chaque nouvelle mise à jour de l'écran, percevoir un infime "scintillement" qui sera à peine perceptible mais bien embêtant pour le joueur.
Le double buffering permet de pallier ce problème.
Il s'agit en fait d'une sorte de "fonction" qui dessine, dans la mémoire vive de l'ordi, l'image qui sera à afficher la prochaine fois.
Comme cela, au lieu que le programme calcule la nouvelle image, lorsque l'on en a besoin, cela créer ce scintillement. Mais grâce au double buffering ... plus de scintillements!
En plus, une fois choisi, le double buffering n'influence en rien les fonctions de votre programme! Voyez par vous-même:
Il suffit de rajouter le flag SDL_DOUBLEBUF à la fonction SDL_SetVideoMode pour qu'il soit activé! C'est tout! Bien pratique quand même
Les bordures
Si vous ne souhaitez pas mettre de bordure à votre application pour une raison X ou Y, il vous suffit de rajouter le flag:
SDL_NOFRAME
à SDL_SetVideoMode tout simplement

Attention toute fois au fait que vous ne pourrez plus, du coup, fermer la fenêtre grâce à la croix rouge mais grâce aux événements
Mettre un icône sur la fenêtre
Vous avez peut-être remarqué qu'une fenêtre SDL avait, à gauche du titre, un icône par défaut comme le montre l'image ci-dessous:
Ça vous dirait de pouvoir le modifier? Et bien en tout cas c'est possible!

Pour cela, il faut écrire la ligne suivante
avant la création de l'écran par SDL_SetVideoMode:
SDL_WM_SetIcon(SDL_LoadBMP("icon.bmp"), 0 );
Cette fonction ne peut afficher que des .bmp! Mais nous verrons dans quelques chapitres qu'il est possible de prendre n'importe quelle autre image
Je ne vous explique pas ce code car il faut avant cela comprendre comment afficher des images et nous verrons cela très bientôt
Voilà! Vous savez personnaliser à fonc votre fenêtre avec la SDL! Nous allons voir dans le chapitre suivant la notion qui est à mon avi la plus importante de la SDL: les surfaces.
Vous allez voir ce n'est pas du tout compliqué et c'est super utile
Les événements avec la SDL Les surfaces et la création de couleur