retrace_proc(3)

NAME
retrace_proc

SYNOPSIS
#include <allegro.h>

extern void (*retrace_proc)();

DESCRIPTION
If the retrace simulator is installed, this function is called during every vertical retrace; otherwise, if the refresh rate is known, the function is called at the same rate (ignoring retraces); otherwise it is called 70 times a second. Set it to NULL to disable the callback. The function must obey the same rules as regular timer handlers (ie. it must be locked, and mustn't call OS or libc functions) but even more so: it must execute very quickly, or it will mess up the timer synchronisation. The only use I can see for this function is for palette manipulations, because triple buffering can be done with the request_scroll() function, and the retrace_count variable can be used for timing your code. If you want to alter the palette in the retrace_proc you should use the inline _set_color() function rather than the regular set_color() or set_palette(), and you shouldn't try to alter more than two or three palette entries in a single retrace.

SEE ALSO
timer_simulate_retrace(3), timer_is_using_retrace(3), retrace_count(3), _set_color(3), ex3buf(3)