Relojes
Control del tiempo.
Funciones
Clock* | clock_create (...) |
void | clock_destroy (...) |
bool_t | clock_frame (...) |
void | clock_reset (...) |
real64_t | clock_elapsed (...) |
Sencillos objetos que nos permiten, de forma cómoda, medir el lapso de tiempo acaecido entre dos instantes. También son útiles para lanzar eventos a intervalos regulares de tiempo (Listado 1).
- Utiliza clock_create para crear un reloj.
- Utiliza clock_reset para poner a cero el reloj.
- Utiliza clock_elapsed para medir el tiempo transcurrido.
1 2 3 4 5 6 7 8 9 |
Clock *clock = clock_create(.04); for (;;) { ... if (clock_frame(clock) == TRUE) listener_event(transition, ekGUI_EVENT_ANIMATION, NULL, params, NULL, void, EvTransition, void); ... } clock_destroy(&clock); |
clock_create ()
Crea un reloj.
Clock* clock_create(const real64_t interval);
interval | Intervalo de tiempo para control de animaciones (en segundos). |
Retorna
El nuevo reloj.
clock_destroy ()
Destruye el reloj.
void clock_destroy(Clock **clk);
clk | Reloj. Será puesto a |
clock_frame ()
Detecta si ha vencido una nueva secuencia en una animación.
bool_t clock_frame(Clock *clk, real64_t *prev_frame, real64_t *curr_frame);
clk | Reloj. |
prev_frame | Marca temporal del instante anterior. Solo relevante si retorna |
curr_frame | Marca temporal del instante actual. Solo relevante si retorna |
Retorna
TRUE
si ha llegado el momento para lanzar un nueva secuencia. FALSE
si hay que esperar.
clock_reset ()
Pone a 0.0 el reloj.
void clock_reset(Clock *clk);
clk | Reloj. |
clock_elapsed ()
Obtiene el tiempo transcurrido desde la creación del objeto o desde la última llamada a clock_reset.
real64_t clock_elapsed(Clock *clk);
clk | Reloj. |
Retorna
El número de segundos (con precisión de micro-segundos 0.000001).