Wait Vertical Blanking

Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014 - 22 juil. 2012 à 17:28
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 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.

D'avance merci,

Technix59

4 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
25 juil. 2012 à 15:23
Bonjour,

je déplace vers Assembleur


cantador
0
Guilou34 Messages postés 142 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 29 janvier 2016 1
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.
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
16 août 2012 à 20:09
Mieux vaudrait oublier win98.
Windows actuel envoie WM_PAINT message pour gérer les rafraichissements.
0
Technix59 Messages postés 32 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 29 mars 2014
15 oct. 2012 à 19:13
Bonsoir et merci beaucoup pour vos réponses.

Désolé pour mon temps de réaction mais j'ai déménagé peu de temps après mon post.

Encore merci,

Technix59.
0
Rejoignez-nous