J'ai dans un de mes programmes une fenetre de visualisation 3D.
Cette fenetre a besoin d'un appel a "DrawFrame" pour dessiner son contenu (3D temps reele).
Autrement dit le frame rate de ce moteur 3D depends de la frequence d'appel a "DrawFrame".
Dans les tutos de ce moteurt 3D (TrueVision 3D) il est preconisé de faire appel a cette methode dans l'evenement "OnIdle" avec le parametre "Done" a false pour qu'elle ne s'execute pas qu'une seule fois mais en boucle.
Grace a cet evenement on peut atteindre avec un monde vierge un framerate de 700/800 fps.
Mon souci c'est que des que l'on deplace la fenetre, l'appel a on Idl ne se fait plus donc le moteur 3D n'evolue plus. Il se fige en attandant que la sourie soit relachee.
De meme, lorsqu'un bout la le fenetre passe hors ecran, on a la partie hors ecran qui s'efface pour la belle couleur clBtnFace par defaut
Le seul moyen actuelement trouvé est de passer par un timer avec un interval de 1ms (minimum possible).
Mais la le frame rate tombe a 70fps max ....
Une solution pour garder le fps de Application.onIdle tout en gardant conservant les appels lors de deplacement ou autres ?
Partager