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

GLUT Discussion :

Arret de IdleFunc


Sujet :

GLUT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 125
    Par défaut Arret de IdleFunc
    Bonjour,

    j'utilise GLUT sous Mac OS X et je me trouve confronté à un problème que je n'avais jamais eu auparavant :

    Quand j'execute une certaine fonction (certes lente mais qui termine quand même !) au sein de ma fonction boucle() argument de glutIdleFunc(), la fonction boucle() ne reboucle pas sur elle-même. Le programme semble s'arreter à la dernière ligne de boucle().
    Par contre, dès qu'il ya un évènement (appui sur une touche, entrée de la souris dans la fenêtre, clic, ...), la boucle reprend comme si de rien n'était pour quelques instants (ou même pendant longtemps si une touche reste appuyée ou si on s'amuse à flirter avec le bord de la fenêtre...).

    Comme j'utilise une temporisation, je me rends également compte que glutGet(GLUT_ELAPSED_TIME) ne tient pas compte de cet arrêt.

    L'énoncé est peut-être obscur mais je serais ravi d'expliciter plus en avant aux personnes intéressées pour m'aider...

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Par défaut
    Salut,

    Un peu de code pour illustrer tout ça stp ?

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 125
    Par défaut
    Je crois bien que j'ai trouvé la source d'erreur (ou en tout cas comment empêcher ça).
    Ca n'a rien à voir avec GLUT mais avec un problème dans l'arborescence de mes #include qui ressemble en gros à ça (la flèche signifie include)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    principal.h
        |       \
        |        \
        |         \
        v          v
       a.h ------>b.h
    et c'était lorsque j'utilisais une fonction de a.h dans une fonction de b.h que le programme s'arretait momentanément...

  4. #4
    Membre éprouvé Avatar de Harooold
    Homme Profil pro
    Ingénieur 3D temps réel
    Inscrit en
    Mars 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 136
    Par défaut
    Normalement tu ne dois pas avoir de schema d'includes dans ce genre, ou alors ton organisation logicielle et mal faite :p

    Dailleur tu devrais avoir des problèmes à la compilation, non ?

    Tu fais bien un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef __MON_HEADER_H_
    #include __MON_HEADER_H_
     
    // blablabla
     
    #endif
    pour chacun de tes headers ? ça permet de détecter et éviter ce genre d'inclusion multiples.

  5. #5
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 125
    Par défaut
    Oui je fais des tests avec #ifndef et tout.
    Il faudrait que je fasse une sorte d'arbre couvrant de mes relations d'include pour lever les ambiguités mais c'est plus clair quand on prend un fichier séparément de voir les headers qu'il utilise...
    Là où c'est chaud, c'est que a.h utilise une structure et certaines fonctions de b.h et que des fonctions de b.h utilise des fonctions de a.h...
    Comme heureusement ces fonctions ne sont pas les mêmes, j'ai pu me débrouiller en plaçant correctement mon include "a.h" au milieu de b.h

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

Discussions similaires

  1. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48
  2. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 21h36
  3. [UDP][Socket] perte de paquets et arret d'ecoute sur port
    Par Guismo1979 dans le forum Développement
    Réponses: 6
    Dernier message: 02/01/2003, 12h13
  4. probleme a l'arret de threads
    Par Sei dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/12/2002, 12h15
  5. Detection arret de windows
    Par philippe30 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 21/09/2002, 18h41

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