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

Qt Discussion :

[OpenGL] Mise à jour de l'affichage [2D/3D]


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut [OpenGL] Mise à jour de l'affichage
    Bonjour tous,

    je voudrais savoir juste un petit truc:

    => comment met on à jour l'affichage lorsqu'on a changé quelque chose?

    je croyais que c'etait: "udateGL" mais ça ne marche pas...


    je vous remercie d'avance

  2. #2
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Par défaut
    C'est bien updateGL() => qui fait appelle à glDraw() qui lui même fait appelle à paintGL().

    updateGL()
    Updates the widget by calling glDraw().

    glDraw()
    Executes the virtual function paintGL().
    The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.

    paintGL()
    This virtual function is called whenever the widget needs to be painted. Reimplement it in a subclass.
    There is no need to call makeCurrent() because this has already been done when this function is called.

    Donc dans ton programme tu as un initializeGL() où tu fais toute tes initialisations et après tu mets tes commandes de dessin dans paintGL() qui sera appelé à chaque fois que tu feras appelle à updateGL().

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par AuraHxC Voir le message
    C'est bien updateGL() => qui fait appelle à glDraw() qui lui même fait appelle à paintGL().
    updateGL()
    Updates the widget by calling glDraw().
    glDraw()
    Executes the virtual function paintGL().
    The widget's rendering context will become the current context and initializeGL() will be called if it hasn't already been called.
    paintGL()
    This virtual function is called whenever the widget needs to be painted. Reimplement it in a subclass.
    There is no need to call makeCurrent() because this has already been done when this function is called.
    Donc dans ton programme tu as un initializeGL() où tu fais toute tes initialisations et après tu mets tes commandes de dessin dans paintGL() qui sera appelé à chaque fois que tu feras appelle à updateGL().
    merci beaucoup

    je n'avais pas bien compris comment fonctionnais updateGL(), en fait cette fonction doit etre appelée en dehors de la fonction paintGL() ?

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Oui, la fonction paintGl sera automatiquement appelé par updateGL.

    En pratique, il faut initialiser dans le constructeur (pour les initialisations qui n'ont pas besoin d'un context OpenGL valide) ou dans initializeGL (pour les initialisations qui ont besoin d'un contexte OpenGL), le code de rendu dans paintGl et mettre updateGL dans chaque fonction qui modifie la vue 3D (events clavier et souris, timer pour faire des animations, etc.)

    A relire (ou lire) : Utilisation avancée des processeurs graphiques avec Qt

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    merci de votre aide

    A+

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    en fait mon probleme n'est pas resolu

    => j'ai remarqué que ma figure se mettais bien à jour mais c'est l'affichage qui ne se fait pas.

    En fait mon programme fonctionne très bien lorsque je fais bouger la fenetre, ceci permet de mettre à jour le screen.

    => comment puis je faire automatiquement ? en fait je voudrais que cela se fasse à chaque fois que l'on passe dans la fonction paintGL()

    merci d'avance

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

Discussions similaires

  1. Dessiner en Wpf et mise à jour de l'affichage
    Par Orc_Fayeh dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 11/04/2008, 11h51
  2. Mise à jour de l'affichage des messages
    Par emmy99 dans le forum Langage
    Réponses: 8
    Dernier message: 28/01/2008, 19h36
  3. Mise à jour de l'affichage
    Par piteon dans le forum 2D
    Réponses: 8
    Dernier message: 13/02/2007, 11h59
  4. Mise à jour de l'affichage de la fenêtre
    Par YuGiOhJCJ dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/12/2006, 10h55
  5. [JTree] Mise à jour de l'affichage
    Par freddy766 dans le forum Composants
    Réponses: 3
    Dernier message: 16/10/2006, 10h39

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