Technix59
Messages postés32Date d'inscriptionvendredi 13 décembre 2002StatutMembreDernière intervention29 mars 2014
-
22 juil. 2012 à 17:28
Technix59
Messages postés32Date d'inscriptionvendredi 13 décembre 2002StatutMembreDernière intervention29 mars 2014
-
15 oct. 2012 à 19:13
Bonjour à toutes et tous.
Sous Win98 et versions précédentes, pour réaliser une attente de rafraîchissement d'écran j'utilisais la bonne vieille méthode en assembleur:
PROCEDURE WaitVBL; assembler;
//Pour éviter le scintillement, on attend la fin du balayage de l'écran (Vertical Blanking)
//Ce qui permet de synchroniser l'affichage
//Bonne vieille méthode qui à fait ses preuves depuis bien longtemps
ASM
pop dx
mov dx,3dah;
@l1:in al,dx
test al,8
jnz @l1
@l2:in al,dx
test al,8
jz @l2
push dx
END;
Hors celle-ci ne fonctionne plus sous Delphi sur les versions postérieures à Windows 98 et provoque une exception EPrivilege.
Aucun problème à la compilation mais plantage à l'exécution.
L'un d'entre vous aurait-il un bout de code (sans passer par SDL, ni OpenGL...) ?
A savoir que pour ce que je veux faire le TForm.DoubleBuffered ne fonctionne pas.
Guilou34
Messages postés142Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention29 janvier 20161 2 août 2012 à 13:01
Salut.
Les instructions d'entrées-sorties sont bloquées par XP pour protéger le système. Il faut utiliser une dll comme par exemple:
http://www.vbfrance.com/forum/sujet-IO-DLL-INSTALLATION-UTILISATION_957006.aspx .
Je serais, en outre, surpris si ce qui était valable pour les cartes VGA et SVGA l'est encore aujourd'hui.
Amicalement.