FreeBSD Manual Pages
AG_TIME(3) BSD Library Functions Manual AG_TIME(3) NAME AG_Time -- agar time interface SYNOPSIS #include <agar/core.h> DESCRIPTION These functions provide a low-level interface to monotonically increasing time sources. Different time backends may be implemented (see INTERNAL API below). Agar provides the following backends: agTimeOps_dummy No-op, timers will be unavailable. agTimeOps_posix Monotonic clock using clock_gettime() interface agTimeOps_gettimeofday Traditional gettimeofday() interface. agTimeOps_win32 Windows winmm API. agTimeOps_renderer Monotonic clock which stops while graphical ren- dering is performed. This is useful for appli- cations performing offline rendering, where the outcome may be influenced by different threads relying on Agar timers or AG_Delay() calls. INTERFACE Uint32 AG_GetTicks(void) void AG_Delay(Uint32 t) void AG_SetTimeOps(const AG_TimeOps *ops) The AG_GetTicks() function returns the current time in ticks. One tick usually corresponds to one millisecond. The AG_Delay() function blocks the current thread, waiting at least t ticks before returning. The exact amount of time which AG_Delay() waits is backend-dependent. The AG_SetTimeOps() function selects a time backend (see below). BACKEND INTERFACE The argument to AG_SetTimeOps() should point to the following structure: typedef struct ag_time_ops { const char *name; void (*Init)(void); void (*Destroy)(void); Uint32 (*GetTicks)(void); void (*Delay)(Uint32); } AG_TimeOps; Init() performs any necessary initialization. Destroy() cleans up any allocated resources. The GetTicks() operation is the backend to AG_GetTicks() and Delay() is the backend to AG_Delay(). EXAMPLES The following code fragment selects the rendering-aware time backend, agTimeOps_renderer, if it is available: #include <agar/config/have_clock_gettime.h> #include <agar/config/have_pthreads.h> #if defined(HAVE_CLOCK_GETTIME) && defined(HAVE_PTHREADS) AG_SetTimeOps(&agTimeOps_renderer); #endif SEE ALSO AG_Intro(3), AG_Timer(3) HISTORY The AG_Time interface first appeared in Agar 1.3.4 BSD August 29, 2009 BSD
NAME | SYNOPSIS | DESCRIPTION | INTERFACE | BACKEND INTERFACE | EXAMPLES | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_Time&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>