HELLO LE MONDE!
Accrochez-vous car c'est pas du tout facile!!!!
Je souhaiterais savoir comment dessiner en permanence (ou à un interval spécifié) dans la fenetre d'une application de type : "MFC Single document".
Je me suis donc tourné vers OnDraw(pDC) dans laquelle je place mon code d'affichage des graphismes. Mais celle-ci n'est pas appellé tout le temps!!
Elle est appellé simplement quand la fenetre a besoin d'être redessinée.
Or, je fait une appli. OpenGL qui se limite pour l'instant à un cube tournant sur lui-même.... donc il faut dessiner en permanence. Oh! à 20ms près quoi.
Mon idée était ALORS, de créer une fonction timer et de l'appeler toutes les 20ms.
Dans cette fonction j'écrivais : OnDraw( GetDC() ); + un SetTimer(20ms)
Pour relancer la procédure 20ms après donc.
OR! => quand je lance mon application des fois mon cube tourne, des fois il tourne pas !!
Il faut que je force moi même, donc manuellement, l'affichage en bougeant la fenêtre ou en la redimensionnant....et encore!!
sitôt la fenetre bougée l'animation s'arrête encore des fois, etc.... jusqu'à ce que j'enclenche un processus "invisible" qui ENFIN, fait boucler l'animation sans que la fenêtre ne soit rafraichi manuellement par mes soins.
Et quand bien même je rebouge la fenêtre lorsque le cube tourne tout seul, il arrive, je dit bien il arrive, que celle ci ne soit pas redessiné (rafraichi) donc l'animation s'arrête comme précédemment!!
Pire encore !!
ET LA C'EST VRAIMENT BIZZARE VOIRE INCROYABLE :
Il suffit que je rajoute n'importe quoi dans OnDraw() ou autres d'ailleurs, comme fopen() ou un GetDC() dans le vide, ou un truc que ne fait RIEN dans mon programme pour que l'animation tourne tout d'un coup. Incroyable mais VRAI !!
Un problême de Device Context (DC) passé à mon objet CGluEngine (au début quand la fenetre vient juste d'être créée) qui gère le dessin du cube dans une de ses méthodes peut-être ??
Je ne pense pas.... le DC Ecran que je passe à mon objet au début est donné grâce à GetDC(). ce pointeur serait il temporaire, ce qui explique l'appli. ne fonctionne pas tout le temps à coup sûr ????
Voila c'est fini. Si vous pouvez m'aporter vos lumières sur ce problême, limite impossible, je suis ouvert à toutes remarques.
Séb.
Partager