Logo creanet 2.0
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:
 
sdl fenetre

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 choixSmiley rigole

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 jamaisSmiley souris). 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:
 
sdl fenetre 2

C'est déjà mieuxSmiley souris 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 personneSmiley souris
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énementsSmiley souris

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.
Smiley souris
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!Smiley rigole

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êmeSmiley rigole


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 simplementSmiley souris 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énementsSmiley souris


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:
 
icone sdl fenetre


Ça vous dirait de pouvoir le modifier? Et bien en tout cas c'est possible!Smiley souris 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 imageSmiley souris

Je ne vous explique pas ce code car il faut avant cela comprendre comment afficher des images et nous verrons cela très bientôtSmiley souris




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 utileSmiley souris






Les événements avec la SDL                                         Les surfaces et la création de couleur





 
 
 



Créer un site
Créer un site