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

OpenGL Discussion :

preobleme reactualisation affichage wxwidgets


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut preobleme reactualisation affichage wxwidgets
    Bonjour a tous,


    voila je suis en train de faire un visualisateur de volume bianaire aui affiche des volumes chargés a partir d'un fichier. Jusqu ici tou va bien mais j aurai aimé implementer une espece de trackball en enregistrant l deplacement de la souris et en le convertissant en rotation. bref ca aussi marche plutot bien (les valeurs changent bien dans ma fonction mouvement) mais ma fonction d'affichage ne se reactualise pas!! il fau que je sorte ma fenetre et que je la remette sur le bureau pour que la reactualisation se realise?? J ai du oublié une fonction de reactualisation mais laquelle???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    //ca c est ma fonction de rendu
     
    void TestGLCanvas::Render()
    {
        wxPaintDC dc(this);
     
    #ifndef __WXMOTIF__
        if (!GetContext()) return;
    #endif
     
        SetCurrent();
        if (!m_init)
        {
            InitGL();
            m_init = true;
        }
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
     
         glPushMatrix();
     
     
    //ca c etai pour voir si les valeur changeai mais ici rien
    	wxString text;
    	text = _T("rotation 1 = ") + wxString::Format("%f",rotationCam[0]);
    	FramePrincipale->GetStatusBar()->SetStatusText(text,0);
     
    	text = _T("rotation 2 = ") + wxString::Format("%f",rotationCam[1]);
    	FramePrincipale->GetStatusBar()->SetStatusText(text,1);
     
     
    //les transfo que j aimerai afficher en "temps reel"
    	glRotatef(rotationCam[1], 0,1,0);
    	glRotatef(rotationCam[0], 1,0,0);
    	glTranslatef(-0 , -0 , -100);
    //ici normalement y a mes fonction d affichage (un peu long)
     
    	glPopMatrix();
     
     
        glFlush();
        SwapBuffers();
    }
     
     
    //et ca c es tma fonction mouvement qui enregistre le deplacement de la souris
     
    inline void TestGLCanvas::OnMouseMove(wxMouseEvent& event)
    {	
     
    	//si on peut bouger la camera
    //dans cette fonction, les parametres rotation change bien en "temps reel" ce qui n est pas le cas dans la fonction d affichage
    	if (m_bRotateCam)
    	{
    	rotationCam[0] =  rotationCam[0]+(float)(m_nMouseY-event.GetY())*0.2;
    	rotationCam[1] =  rotationCam[1]+(float)(m_nMouseX-event.GetX())*0.2;
     
    	m_nMouseX=event.GetX();
    	m_nMouseY=event.GetY();
     
    	}
     
    }
    Si quelqu un a une idee c est cool.
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 58
    Par défaut
    T'as vérifié si y'avais pas une erreur avec les pushmatrix et pop mal placé ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    ben franchement je crois pas. Les pop et push matrix encadre mes fonctions d affichage (les elements sur lesquls je veu faire les rotate et translate). Ce serai pas uin pb au niveau de la fonction mouvement?

  4. #4
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 573
    Par défaut
    je ne connais pas wxWidgets mais j'ai déjà vu un problème similaire au tiens sur le forum
    tu dois faire un Refresh (ou je ne sais pas quelle autre fonction) pour demander à wxWidget de raffraichir ton affichage (dans ta fonction de capture des événements souris)

    ps: c'est bien un wxGlCanvas que tu utilises pour afficher opengl ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    merci merci!!!

    Lol ouai fo juste faire un Refresh(true);
    dans la fonctoin mouvement de la souris. Merci encore car pour un non specialiste ca c est super bien passé. Ouai j utilise wxGlCanvas pour se qui est de l'affichage openGl.

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

Discussions similaires

  1. Affichage des VBO avec wxWidget
    Par .tony. dans le forum OpenGL
    Réponses: 15
    Dernier message: 15/09/2010, 19h19
  2. Réponses: 1
    Dernier message: 30/06/2008, 12h54
  3. Problème affichage application wxWidgets
    Par AuraHxC dans le forum wxWidgets
    Réponses: 33
    Dernier message: 26/02/2007, 18h32
  4. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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