La plupart des programmes sur ce site vont utiliser une collection basique de fonctions basées sur la SDL.
Elle a pour but de simplifier l'utilisation d'un affichage 2D où on peut modifier la couleur de chaque pixel.
Comme vous le verrez ça sera très pratique pour créer des représentations graphiques simples pour expliquer la
plupart des algorithmes.
Vous pouvez télécharger cette bibliothèque de base
ici mais ce n'est pas obligatoire car elle sera inclue dans
la plupart des programmes de ce site.
Voici une explication des fichiers qu'elle contient.
CSDL.cpp & CSDL.h:
Pour garder le code de mes programmes le plus clair possible je veux éviter d'ajouter trop de tests d'erreur dans
le code principal.
Alors cette classe est une simple interface avec la SDL, où chaque fonction appelle la fonction SDL du même nom et
s'occupe d'afficher les messages d'erreurs qui peuvent se produire.
Néanmoins, ces fonctions ne sont pas vouées à être appelées directement dans nos programmes. Elle seront plutôt
utilisées par les autres modules de la lib (Graphics et System).
Graphics.cpp & Graphics.h:
Ce module contient les fonctions principales de la plupart des programmes que vous verrez:
- Color est une simple structure utilisées pour facilement définir une couleur d'après ses composantes
(rouge, vert, bleu et alpha).
- init() initialise la SDL, ouvre une fenêtre avec le titre et la taille donnés, et configure un renderer.
- init2D() alloue une texture et un tableau de structures Color qui représente notre écran 2D.
- clearScreen() remplit l'écran avec une couleur donnée.
- setPixel() change la couleur d'un pixel dans le tableau de Color.
- getPixel() retrouve la couleur d'un pixel.
- render() "affiche" tous les pixels modifiés par setPixel() dans la fenêtre.
- quit() ferme tout avant que vous quittiez le programme.
System.cpp & System.h:
Ces fichiers contiennent les fonctions générales qui ne sont pas en relation avec les graphismes.
Par exemple c'est là qu'on gérera les entrées clavier et souris.
La lib basique contient seulement 3 fonctions:
- wait() pour attendre un nombre donné de millisecondes.
- processEvents() doit être appelé de temps en temps pour gérer les entrées.
- isQuitRequested() renvoie true si l'utilisateur a cliqué sur le bouton de fermeture de la fenêtre.
Vous devez appeler processEvents pour mettre à jour cette valeur.