SDK Multiplataforma en C logo

SDK Multiplataforma en C

Relojes

❮ Anterior
Siguiente ❯

Control del tiempo.


Funciones

Clock*clock_create (...)
voidclock_destroy (...)
bool_tclock_frame (...)
voidclock_reset (...)
real64_tclock_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).

Listado 1: Animación a 25fps.
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 NULL tras la destrucción.


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 TRUE.

curr_frame

Marca temporal del instante actual. Solo relevante si retorna TRUE.

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).

❮ Anterior
Siguiente ❯