Librairie SDL et gestion des évènements

Utilisateur anonyme -  
 loupius -
Salut à tous ^^

Comme j'ai dit dans le titre, j'ai un problème en ce qui concerne une fonction SDL pour la gestion des évènements....
En fait j'apprends avec le site du zero ^^

Dans le tutoriel, il est indiqué que pour la gestion des évènements, il faut faire une boucle infinie :

int continuer = 1;
while (continuer)
{
/* Traitement des évènements */
}

Et ensuite, on peut (dans le while) utiliser des fonctions, comme SDL_WaitEvent .
D'après la description du tutoriel, cette fonction "attend qu'un évènement se produise. Cette fonction est dite bloquante car elle suspend l'exécution du programme tant qu'aucun évènement ne s'est produit."

Mais alors, si elle est si bloquante que sa ;-), pourquoi a-t'on besoin d'une boucle while ?
Ne pourrait-on pas juste mettre SDL_WaitEvent et ensuite faire un switch pour connaitre l'evenement qui a eu lieu ?
A voir également:

1 réponse

loupius
 
Je ne connais pas SDL, mais c'est toujours pareil avec la programmation événementielle.
Oui la fonction 'SDL_WaitEvent' est bloquante (Wait Event = attendre événement) et pourtant on la met dans une boucle infinie, pourquoi ?
1) on attend qu'un événement se produise (de toute façon, en général, on a rien à faire pendant ce temps-là, sinon il faut utiliser une autre fonction d'attente)
2) on traite l'événement qui s'est produit et retour en 1)
Tu vas me dire: on n'en sort jamais ?
Eh oui tu as raison, on n'en sort jamais... sauf quand l'utilisateur le demandera et qu'en traitant l'événement associé à cette demande, on sort de la boucle (break ou return ou exit).
0