Wait Vertical Blanking

Signaler
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014
-
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014
-
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

Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
13
Bonjour,

je déplace vers Assembleur


cantador
Messages postés
142
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
29 janvier 2016
1
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.
Messages postés
559
Date d'inscription
jeudi 28 novembre 2002
Statut
Non membre
Dernière intervention
27 octobre 2020
2
Mieux vaudrait oublier win98.
Windows actuel envoie WM_PAINT message pour gérer les rafraichissements.
Messages postés
32
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
29 mars 2014

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.