Bonjour,
Je voudrais simuler un effet de clignotement, c'est à dire que j'affiche un carré dans ma fenetre et je veux que toutes les x secondes l'ecran soit effacer.
Ainsi j'aurais un clignotement de mon carré.
Merci de votre aide.
Version imprimable
Bonjour,
Je voudrais simuler un effet de clignotement, c'est à dire que j'affiche un carré dans ma fenetre et je veux que toutes les x secondes l'ecran soit effacer.
Ainsi j'aurais un clignotement de mon carré.
Merci de votre aide.
Sur quelle étape bloques-tu, exactement? Pour effacer l'écran c'est "glClear"
Salut, justement j'effectue glclear mais le carré reste afficher.
si tu travailles en double buffering, c'est le buffer de dessin qui est effacé mais c'est un autre qui reste affiché
il faut donc les swaper
J'effectue bien un glutswapbuffers dans la fonction d'affichage.
Si j'ai bien compris il faudrait que je le fasse dans la fonction glutimer?
Demandes-tu de redessiner après ton changement d'état ?
Donc dans ma fonction
Et dans ma fonction timerCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void drawScene(void) { // Reset de l'affichage glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); switch(CurrentMode) { case 0: form->draw(); break; case 1: form->setColor(0);// La couleur est noir donc on voit rien break; } //glutPostRedisplay(); //glutSwapBuffers(); }
je fais
Code:
1
2
3
4
5
6
7 void clear(int v) { CurrentMode=1; glutSwapBuffers(); glutPostRedisplay(); glutTimerFunc(freq, clear,v); }
[penses au balises [CODE] (bouton #)]
drawScene est appelée dans une boucle de rendu régulièrement ?
[EDIT] : pourquoi avoir commenté glutSwapBuffers ?
C'était un test désolé, j'ai oublié de l'enlever. Actuellement drawscene est appelée comme fonction d'affichage , c'est la fonction d'affichage et la seule.
Ensuite dans drawscene j'ai laissé glutswapbuffers et commenté glutpostredisplay.
Ensuite dans ma fonction du timer je fais un glutpostredisplay.
J'obtiens un clignotement mais il ne respecte pas l'intervalle d'une seconde.
Je désespères ça fait 2 semaines que je suis dessus, je n'obtiens pas le résutat
oublies glutTimer, c'est une très mauvaise idée à mon avis
crées toi plutot un timer "perso" basé sur glutGet(GLUT_ELAPSED_TIME)
et gère le clignotement avec ce timer en affichant ou non l'objet