(cross)
Je continue, n'hésitez pas à arrêtez les dégats s'il le faut

- un module est un objet
- il récupère des inputs (souris, clavier)
- il affiche un rendu à l'écran
Chaque module a donc :
- getEvents(), qui lit et traite les évènements comme lui seul sait le faire
- makePlane(), qui prépare une frame (objet avec ses dimensions, l'adresse de l'image créée, sa position sur l'écran (ça fait peut-être pas tout l'écran))
- dispPlane(), qui affiche la frame préparée, après, par exemple, un évènement de synchro
getEvents() renvoie une valeur (MODULE_TRUC, MODULE_MACHIN)
la boucle du programme principale appellera le destructeur du module si la valeur de retour est différente de la valeur du module courant, puis appellera le nouveau module le cas échéant.
makePlane() s'occupe de construire une frame en fonction des objets graphiques présents dans l'objet module (chaque objet sait s'il doit s'afficher, où et comment)
dispPlane() est très simple, ça consiste à recopier sur l'écran physique la frame préparée auparavant
Chaque module est donc une dérivation d'une classe module de base (???)