Banjo API 0.0.1
Multi-purpose C99 API
|
High-level and low-level time management utilities, including thread sleeping, time counters, and a simple stopwatch abstraction. More...
Data Structures | |
struct | bj_stopwatch |
Structure representing a simple stopwatch. More... | |
Typedefs | |
typedef struct bj_stopwatch | bj_stopwatch |
Structure representing a simple stopwatch. | |
Functions | |
void | bj_sleep (int milliseconds) |
Suspends the current thread for a specified duration. | |
double | bj_get_time (void) |
Gets the current time in seconds since Banjo initialization. | |
uint64_t | bj_get_time_counter (void) |
Returns the current high-resolution time counter. | |
uint64_t | bj_get_time_frequency (void) |
Returns the frequency of the high-resolution counter. | |
void | bj_stopwatch_reset (bj_stopwatch *p_stopwatch) |
Resets the stopwatch to the current time. | |
void | bj_stopwatch_step (bj_stopwatch *p_stopwatch) |
Records a step/checkpoint in time. | |
double | bj_stopwatch_elapsed (const bj_stopwatch *p_stopwatch) |
Returns the elapsed time in seconds since the stopwatch was reset. | |
double | bj_stopwatch_delay (const bj_stopwatch *p_stopwatch) |
Returns the time in seconds since the last step. | |
double | bj_stopwatch_step_delay (bj_stopwatch *p_stopwatch) |
Steps the stopwatch and returns the delay since the previous step. | |
struct bj_stopwatch |
A stopwatch records the time it was last reset and the time of the last step. It computes elapsed time since reset, and delay since the last step. A zero-initialized stopwatch is valid and will auto-reset on first use.
Data Fields | ||
---|---|---|
uint64_t | last_tick | Time of last step/checkpoint. |
uint64_t | start_counter | Time when stopwatch was last reset. |
typedef struct bj_stopwatch bj_stopwatch |
A stopwatch records the time it was last reset and the time of the last step. It computes elapsed time since reset, and delay since the last step. A zero-initialized stopwatch is valid and will auto-reset on first use.
double bj_get_time | ( | void | ) |
This function returns the time in seconds since bj_begin was called. It is suitable for general-purpose timing, but not for high-resolution use.
uint64_t bj_get_time_counter | ( | void | ) |
This value is in platform-dependent ticks and is suitable for precise timing and performance measurements. To convert ticks to seconds, divide by the result of bj_get_time_frequency.
uint64_t bj_get_time_frequency | ( | void | ) |
This is the number of ticks per second returned by bj_get_time_counter. Use this to convert tick counts to seconds.
void bj_sleep | ( | int | milliseconds | ) |
This function puts the current thread to sleep for at least the specified number of milliseconds. The actual sleep duration may be longer depending on the system.
milliseconds | Number of milliseconds to sleep. |
double bj_stopwatch_delay | ( | const bj_stopwatch * | p_stopwatch | ) |
If the stopwatch has never been used, it will be reset automatically on first use. This function does not modify the stopwatch state.
p_stopwatch | Pointer to the stopwatch. |
double bj_stopwatch_elapsed | ( | const bj_stopwatch * | p_stopwatch | ) |
If the stopwatch has never been explicitly reset, it will be reset automatically on first use.
p_stopwatch | Pointer to the stopwatch. |
void bj_stopwatch_reset | ( | bj_stopwatch * | p_stopwatch | ) |
Records the current time as both the reset point and last step. Clears any prior timing information.
p_stopwatch | Pointer to the stopwatch. |
void bj_stopwatch_step | ( | bj_stopwatch * | p_stopwatch | ) |
Updates the internal step timestamp. This does not affect the reset time, but is used to measure time deltas via bj_stopwatch_delay or bj_stopwatch_step_delay.
p_stopwatch | Pointer to the stopwatch. |
double bj_stopwatch_step_delay | ( | bj_stopwatch * | p_stopwatch | ) |
Equivalent to calling bj_stopwatch_delay followed by bj_stopwatch_step, but more efficient and concise.
p_stopwatch | Pointer to the stopwatch. |