Steve Harris (S.W.Harris(a)ecs.soton.ac.uk):
On Wed, Sep 25, 2002 at 06:12:31 +0200, Tim Goetze
wrote:
> I
seem to remeber that on the Amiga and in GL I could issue a call to wait
> for the next vertical blank, forcing the redraw to be in sync with the
> video hardware. Is there an equivalent in FLTK or X?
>
> How do other people get round this?
i'd look at the GL kernel support sites, they might have a patch that
creates some sort of a '/dev/retrace', or add it to GLX. with vanilla
linux/X there's no way to do this except busy-wait reading inb
(0x3da) afaik.
There is a copy-on-next-vert-refresh call in X, I think. Part of the
dbe extension.
I don't think so. X tears all the time. I think that DBE does
something else, the main X server doesn't page flip.
I dont think I can use it with FLTK though, as I
can't find a way of
drawing onto an non-screen surface and then using the dbe.
Its probably just a bad choice of toolkit. GDK and SDL seem to be able
to do it.
Nope, SDL applications tear all the time also.
The reason is that to handle the vertical interrupt, you need to have
a kernel driver that provides it/does the right thing. nVidia's binary
driver does it for GL games in fullscreen. No DRI drivers can do it,
which is why and DRI-based GL driver tears like mad even fullscreen.
Michel Danzer has just donne a patch to export an ioctl for the retrace
interrupt on the Radeons though, but that's a new development.
For video overlay surfaces it's a bit easier: most cards can page flip
their overlay surfaces easily. So, you won't see tearing with
XVideo-based apps in general.
HTH,
--
Billy Biggs
vektor(a)dumbterm.net