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 :

Mon callback de dessinae ne s'execute qu'une seul fois


Sujet :

GLUT

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Mon callback de dessinae ne s'execute qu'une seul fois
    Bonjour a tous,
    Alors voila, jai une question.

    je donne comme callback a openGl via glutDisplayFunc(*func) une fonction que Glut appelle chaque fois qu'il doit redessiner.
    LE seul probleme, c'est que cette fonction ne dessine qu'une seul fois (comme il faut), et ne dessine plus apres! en fait, il n'acceded meme plus a la fonction !(jai placer un 'cout' qui dit chaque fois que la fonction est executer , au debut de celle-ci).

    Pour etre plus clair:
    ---
    void Display(void)
    {
    cout << "Dans le module DISPLAY"<<endl;
    efface le backbuffer ....
    dessine...dessine...dessine...
    glutSwapBuffers();
    }
    Donc la premiere fois, tout marche bien et se dessine parfaitement, mais aucun refresh n'es fait, execepté si japelle 'glutPostRedisplay ();' apres le glutSwapbuffers(), ce qui fait marcher le programme correctement...mais c'est quand meme pas tres tres propre tout sa...kkun pourrait méclairer sur le pourquoi est-ce que mon callback est executer une seul fois quand l'appelle a glutPostRedisplay() est abscente?

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par pepsidrinker Voir le message
    Donc la premiere fois, tout marche bien et se dessine parfaitement, mais aucun refresh n'es fait, execepté si japelle 'glutPostRedisplay ();' apres le glutSwapbuffers(), ce qui fait marcher le programme correctement...mais c'est quand meme pas tres tres propre tout sa...kkun pourrait méclairer sur le pourquoi est-ce que mon callback est executer une seul fois quand l'appelle a glutPostRedisplay() est abscente?
    Parce que Glut décide quand il faut redessiner ou pas, par défaut, il ne redessinera pas ou du moins souvent possible. Si tu veux faire un jeu avec des animations ou autre, il faut mettre un glutPostRedisplay quelque part dans le code. Généralement, je le met dans la fonction Idle à la place. C'est plus propre.

    Jc

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Re:
    Et c'est normal d'avoir a appeler glutPostRedisplay() absolument?

    Dans aucun tutorial je n'ai vu sa!!!
    Glut n'Est pas supposer d'appeller le callback sans avoir a lui dire????

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par pepsidrinker Voir le message
    Et c'est normal d'avoir a appeler glutPostRedisplay() absolument?

    Dans aucun tutorial je n'ai vu sa!!!
    Glut n'Est pas supposer d'appeller le callback sans avoir a lui dire????
    Il le fait lorsqu'il pense qu'il faut redessiner mais pas sinon. C'est comme pour l'API 2D de Java -> ils font le rendu au minimum pour aller plus vite. Du coup, tu demandes de faire un affichage.

    Si ce type d'architecture ne te convient pas, je te conseille de regarder la SDL, tu géres l'affichage toi-même ;-)

    Jc

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Re:
    MErci bcp de votre temps!

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

Discussions similaires

  1. Executer job une seule fois ?
    Par Moostiq dans le forum SQL
    Réponses: 6
    Dernier message: 19/12/2011, 11h51
  2. Ma requete s'execute qu'une seule fois dans mon curseur
    Par remyescof dans le forum Développement
    Réponses: 5
    Dernier message: 21/03/2008, 09h03
  3. Ma requete s'execute qu'une seule fois dans mon curseur
    Par remyescof dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/03/2008, 09h03
  4. Executer mon application qu' une seul fois
    Par touf35 dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/12/2007, 05h37
  5. Deux passages dans mon "execute" pour une seule soumission
    Par fabricew59 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2006, 14h24

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