delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/11/05/17:46:24

Message-Id: <199811052246.WAA05174@remus.clara.net>
From: "Arthur" <arfa AT clara DOT net>
To: <djgpp AT delorie DOT com>
Subject: RE: Allegro vsync stuff
Date: Thu, 5 Nov 1998 22:46:03 -0000
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2173.0
Importance: Normal
In-Reply-To: <199811051859.NAA21543@indy.delorie.com>
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
Reply-To: djgpp AT delorie DOT com

> At 300 fps, what you could do is check the vsync bit for each frame,
> and only redraw if the bit is set, else if 10 frames go by and you
> don't see the bit, redraw anyway.  Or, use the vsync interrupt to set
> a flag that says "redraw this time" then reset the flag when you
> redraw.  If you recalculate and the flag isn't set, just skip the
> redraw and recalculate again.

I'd always used this method on the Atari ST, but had heard that the PC
didn't allow this technique due to hardware limitations. Can you tell me how
to do this in more detail please, or where to find information on it?

Another method is to link it to a timer. For instance, if you know that your
monitor runs at 60Hz (that is, 60 retraces per second), then use a timer to
tell you when your monitor is nearly about to redraw (for instance at
59/60ths of a second - but fiddle with this value until you get the best
results) and then redraw followed by a vsync().

James Arthur
jaa AT arfa DOT clara DOT net
ICQ#15054819


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019