IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Question boucle evenementielle


Sujet :

SDL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 38
    Points
    38
    Par défaut Question boucle evenementielle
    Bonjour,
    Voila j'ai deux petites questions, la premiere concerne la boucle evenementielle,
    je voudrais savoir la difference entre ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
    Et celui la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(!fini)
    {
        while(SDL_PollEvent(&event))
        {
    	switch(event.type)
    	{
    En gros la difference entre SDL_PollEvent et SDL_WaitEvent dans la boucle évenementielle.

    Et ma deuxieme question est la suivante : Ma SDL_Surface ecran dois-je la supprimer par SDL_FreeSurface a la fin de mon programme car je n'ai vu que la suppression de Surface autres que celle de l'ecran mais jamais celle la.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    La fonction SDL_WaitEvent est bloquante, c'est à dire que cette fonction attend qu'un évènement est lieu pour finir. Tu peux la comparer un peu à un scanf en C.

    La fonction SDL_PollEvent n'est pas bloquante, même si aucun évènement à lieu, elle ressort.

    en plus clair : http://www.libsdl.org/intro.fr/usingeventsfr.html

    Sinon pour ce qui est de la surface à desalloué, utilise un système relativement simple, tous ce que tu alloue d'un coté, tu le désalloue de l'autre, généralement ça te permet d'éviter quelques pertes mémoires.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    Okay donc si j'ai bien compris, il est preferable dans un jeu (type FPS) par exemple d'utiliser SDL_PollEvent car elle n'est pas bloquante et donc n'attends pas un evenement pour pouvoir lire le reste du code. Concernant l'allocation-désallocation cest ce que je fais mais je voulais savoir s'il y avait une raison spéciale pour que je ne la vois jamais supprimer ^^.

    En tout cas, je te remercie de ta réponse

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    En regardant la documentation de SDL, tu trouve ceci pour la fonction SDL_SetVideoMode :

    ...
    Return Value
    The framebuffer surface, or NULL if it fails. The surface returned is freed by SDL_Quit() and should nt be freed by the caller.
    ...
    Donc en gros tu t'occupe pas de désallouer cette surface, c'est géré dans SDL_Quit().

    bonne continuation.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup pour tes réponses claire, nette et précise

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions : Boucle de jeu avec un OnClik au milieu
    Par abrindoul dans le forum Android
    Réponses: 2
    Dernier message: 11/06/2014, 10h16
  2. Question boucle while/else
    Par Stoos dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2012, 20h36
  3. [Débutant] Questions boucle
    Par Invité dans le forum VB.NET
    Réponses: 5
    Dernier message: 01/07/2011, 19h37
  4. Question boucle for et nom de variable
    Par taumyy dans le forum MATLAB
    Réponses: 2
    Dernier message: 24/05/2011, 12h22
  5. Question: Boucle ré-entrante
    Par Gilles BILLARD dans le forum Visual Studio
    Réponses: 0
    Dernier message: 10/02/2010, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo