Barroud Posté(e) le 9 janvier 2006 Posté(e) le 9 janvier 2006 Bonjour, J'essaye de coder un graphique pour visualiser une voie d'acquisition en temps réel mais mon graphique n'apparait pas dès que j'insére mon code dans une boucle à 1-10Hz. Alors qu'il fonctionne trés bien si je le lance une seule fois... glClear(GL_ACCUM_BUFFER_BIT); glClearColor( 0.0, 0.0, 0.0, 0.0); glColor3f(1,0,1); glBegin(GL_LINES); glVertex2i(5,10); glVertex2i(395,10); glEnd(); glBegin(GL_LINES); glVertex2i(10,5); glVertex2i(10,145); glEnd(); glBegin(GL_LINES); glVertex2i(5,140); glVertex2i(10,145); glEnd(); glBegin(GL_LINES); glVertex2i(15,140); glVertex2i(10,145); glEnd(); glBegin(GL_LINES); glVertex2i(390,15); glVertex2i(395,10); glEnd(); glBegin(GL_LINES); glVertex2i(390,5); glVertex2i(395,10); glEnd(); TabGraph[ptrTabGraph]=Acqui->pos_dir_f; if (ptrTabGraph<99) ptrTabGraph++; else ptrTabGraph=0; for(i=0;i<100;i++) { glBegin(GL_LINES); glVertex2i(4*i,OLDY); glVertex2i(4*(i+1),TabGraph[i]); glEnd(); OLDY=TabGraph[i]; } x=15; y=130; s="Graph OpenGL en cours de developpement"; longueur=strlen(s); glRasterPos2i(x,y); for(i=0;i<longueur;i++) glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12,s[i]); glFlush(); MyGLCanvas->SwapBuffers(); J'arrive pas à saisir le problème puisque comme, je disais, le code fonctionne correctement en le lancant par l'appui sur un bouton mais pas en l'englobant dans une boucle à 10Hz... Une idée peut être?
Barroud Posté(e) le 9 janvier 2006 Auteur Posté(e) le 9 janvier 2006 Il fallait que j'intégre ce code dans le onpaint de ma frame et que je fasse un ->refresh() de la frame à chaque execution de ma boucle...
tsubasaleguedin Posté(e) le 9 janvier 2006 Posté(e) le 9 janvier 2006 Ba eu oui sa marche comme ca opengl. Ta une fonction init, une fonction redraw (ou tu boucle dessus), et optionnellement un resize/reshape. Opengl dessine image par image les animations (meme si c'est fixe). C'est dur a croire vu les puissance des machines actuels =) Pareil pour la lumiere, je te conseil de bien te documenté sur celle ci ( FAQ opengl), car si tu les declare dans l'init tu risque d'avoir des surprise quand tu fera des glrotate ...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.