24Fermer26
djflexLe 12/02/2008 à 13:08
Le programme est un poil plus facile à écrire (franchement, pas beaucoup ), mais moins agréable pour l'utilisateur: même si certaines personnes y sont moins sensibles que d'autre, ne pas faire des affichages synchrones se voit habituellement assez facilement à l'oeil nu.

Si je comprends bien même avec FastScreenCopy, ce problème n'est pas résolu.
L'idéal serait que les traitements de ton programme soient suffisamment découpables pour que tu puisses écrire GrayDBufToggleSync et GrayWaitNSwitches inline, en remplaçant l'attente active "while(__switch_cnt<__w);" par "while(__switch_cnt<__w ) { /* un petit bout du traitement */ };".


en fait c'est presque un algorithme de jeu vidéo classique ce dont tu parles.
ça pourrait se résumer ainsi :

Tant que Temps_non_écoulé
Executer_Traitements();
Fin
Affichage();


Sachant que Temps_non_écoulé représenterait ici le temps de l'attente entre 2 switches. Mais, à moins que je ne me trompe, ce temps restant avant le prochain cycle ne sera pas toujours le même lorsqu'on atteindra la fonction Executer_Traitements(). Ce qui signifie que de manière aléatoire, cette fonction pourra être executée 1 fois, 5 fois, 10 fois, x fois, en fonction du temps restant avant le prochain cycle.
On risque donc d'avoir un programme saccadé non ?