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 :

SDL_WaitEvent et délai d'attente


Sujet :

SDL

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut SDL_WaitEvent et délai d'attente
    bonjour,

    n'y a t'il pas moyen de définir un délai a SDL_WaitEvent ou SDL_PollEvent) de la même façon que pour la lecture d'un socket en mode bloquant?

    il y a toujours moyen de faire une boucle avec SDL_PollEvent mais un delai sur SDL_WaitEvent me conviendrai plus.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il me semble que c'est prévu pour SDL 1.3.

    Simple curiosité, pourquoi as-tu besoin d'un délai sur SDL_WaitEvent ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    le contrôle du clavier et l'affichage sont dans le même thread avec ce schéma:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    | si(PollEvent){
    |     traitement
    | }
    | Blit
    | Delay pour ne pas surcharger le processeur(genre 10 ms)
    V
    j'aimerai supprimer le Delay afin de pouvoir traiter un plus grand nombre d'Event mais sans surcharger le processeur.
    il faudrait donc remplacer le PollEvent par un WaitEvent avec un délai de 10 ms, de cette façon, tant qu'il n'y a pas d'event on Blit toutes les 10ms, mais si il y a un event, on le traite, on Blit, et on attend un nouvel event sans attendre.

  4. #4
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Pourquoi ne pas faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (PollEvent)
    {
       faire code
    }
    Blit
    Attendre 10 ms
    Comme ça on traite tous les évènements, puis on blitte.

    A mon avis, c'est mieux de gérer tous les évènements puis de blitter seulement ensuite, que de faire un event, un blit, ...

    Tu peux aussi faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    bool activite = false;
     
    while (PollEvent)
    {
      activite = true;
     ...
    }
    Blit
    if (!activite)
       Delay
    Ca revient au même à peu près que le code précédent.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il y a des solutions plus simples pour garantir un framerate constant / libérer le CPU, pas besoin de s'embêter comme ça avec les évènements. Regarde par exemple du côté de SDL_framerate.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    Il y a des solutions plus simples pour garantir un framerate constant / libérer le CPU, pas besoin de s'embêter comme ça avec les évènements. Regarde par exemple du côté de SDL_framerate.
    je vais regarder, mais c'est pas un problème de frame-rate, j'ai juste besoin de traiter un maximum d'event.

    Citation Envoyé par coyotte507 Voir le message
    Pourquoi ne pas faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (PollEvent)
    {
       faire code
    }
    Blit
    Attendre 10 ms
    Comme ça on traite tous les évènements, puis on blitte.
    Merci, c'est tout bête, je n'y avait pas pensé! ça fonctionne nikel!

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    je vais regarder, mais c'est pas un problème de frame-rate, j'ai juste besoin de traiter un maximum d'event.
    Pourquoi un maximum ? En général on les traite tous.

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    je me suis mal exprimé, je voulais dire "le plus rapidement" ou "un maximum en un minimum de temps"

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/05/2006, 11h39
  2. Délai d'attente expiré !
    Par Le Pharaon dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 22/05/2006, 19h25
  3. "Délai d'attente expiré" aléatoire
    Par denilson74 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/07/2005, 10h48
  4. Délai d'attente expiré
    Par zut94 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/07/2005, 21h50
  5. Délai d'attente expiré
    Par amiral thrawn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 12h04

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